Проблема с фото при редактировании резюме в скрипте yanaidu

Статус
В этой теме нельзя размещать новые ответы.

diegos

Постоялец
Регистрация
5 Дек 2008
Сообщения
63
Реакции
12
Помогите пожалуйста разобраться с проблемой отображения фото и файла при редактировании резюме после создания его, пропадают фото и файл резюме.

А также при создании резюме без регистрации - невозможно редактировать его.
И при создании объявления без регистрации - невозможно редактировать его.

Буду очень признателен за помощь в исправлении кода.
 
А с меню Погода,Горсправка,Афиша,Реклама на сайте разобрались?

как погоду вывести?пустая страница.
 
Горсправка и афиша работают и так, просто нужно внимательно прописать разделы в коде (вместо afisha.site.com, я прописывал site.com/afisha), "реклама на сайте" - я вставил свою страницу с информацией и формой связи, погода которая там по умолчанию - для меня лично примитивная, поэтому вставил свою погоду.

А вот с фото замучался немного.. никак не получается разобраться... Кто может подскажите пожалуйста как поправить код в classes/Job/ResumeConcreteModule.php в функции function edit() и function editConfirm() а также Job/ResumeManager.php и ResumeItem.php

Или нужно другие файлы править? Буду признателен за помощь!

Спасибо!
 
Помогите пожалуйста разобраться с проблемой отображения фото и файла при редактировании резюме после создания его, пропадают фото и файл резюме.
А также при создании резюме без регистрации - невозможно редактировать его.
И при создании объявления без регистрации - невозможно редактировать его.
Буду очень признателен за помощь в исправлении кода.
на нашем форуме уже есть ответы на все ваши вопросы -
ищите в поиске темы и читайте форум, больше года назад этот янайду по строчкам разобрали.
 
Я прочитал все темы которые касаются скрипта yanaidu, но не встречал обсуждения и ответа на подобный вопрос. Обсуждалось всё то, что и так работает, а вот данную ошибку в коде ни кто не заявлял на обсуждение либо же под большим хайдом возможно что то рассказывалось..

Если человек, хорошо знает php то ему нужно минут 10 чтобы явно увидеть где касяк и подсказать.

Меня интересует ТОЛЬКО правка редактирования фото и файла вложения - это единственное в чём я не разобрался ещё в скрипте! При создании резюме, всё корректно создаётся и фото и вложение DOC, но как только резюме редактируется, то фото и вложение пропадают (они удаляются из базы почемуто).
 
Я прочитал все темы которые касаются скрипта yanaidu, но не встречал обсуждения и ответа на подобный вопрос. Обсуждалось всё то, что и так работает, а вот данную ошибку в коде ни кто не заявлял на обсуждение либо же под большим хайдом возможно что то рассказывалось..
Если человек, хорошо знает php то ему нужно минут 10 чтобы явно увидеть где касяк и подсказать.
Меня интересует ТОЛЬКО правка редактирования фото и файла вложения - это единственное в чём я не разобрался ещё в скрипте! При создании резюме, всё корректно создаётся и фото и вложение DOC, но как только резюме редактируется, то фото и вложение пропадают (они удаляются из базы почемуто).
если читали хорошо, вопросы надо было там и задавать, быстрее получили бы ответ и насколько я помню в указанных вами функциях ошибок не было.
 
На сегодняшний день те все темы практически безлюдны чтобы у кого то разбирающегося спросить, если и есть кто там, так в основном те, кто спрашивает как настроить погоду, домены и т.д. А здесь нужны грамотные знания php!

Сами функции вероятней всего правильные, но вызываются они неправильно скорее всего. Я заметил, что сам скрипт писался несколькими программистами, и возможно где то кто то недосмотрел вызов этих функций. Например при редактировании объявления (раздел board) без регистрации, не задействуется файл UnauthorizedEditModule.php в classes/Insertion...
 
Проблема в том, что после сохранения редактирования, пропадают пути к загруженным файлам и сами файлы также не обновляются.

Вот содержание файла ResumeConcreteModule.php
PHP:
<?php
require_once(CLASSES_PATH . "Module/Module.php");

class JobResumeConcreteModule extends Module {
    var $id;
    function JobResumeConcreteModule($id) {
        $this->id = $id;
    }
   
    function runAction($action) {
        if ($action == "edit")
            $this->edit();
        elseif ($action == "edit_confirm")
            $this->editConfirm();
        else
            header("Location: " . JOB_PATH . "resume/concrete-" . $this->id . "/");
    }
   

    function view() {
        if (!$this->id) {
            header("Location:" . JOB_PATH);
            return;
        }
        require_once(CLASSES_PATH . "Job/ResumeManager.php");
        $manager = new JobResumeManager();
        $item = $manager->createById($this->id);
        if (!$item) {
            header("Location:" . JOB_PATH);
            return;
        }
        $item->incrementViewsAmount();
        if ($item->allow_comment) {
            require_once(CLASSES_PATH . "Job/ResumeCommentManager.php");
            $manager = new JobResumeCommentManager();
            $comments = $manager->createByParentId($item->record_id);
        } else {
            $comments = array();
        }
        require_once(CLASSES_PATH . "View/Frame/View.php");
        require_once(CLASSES_PATH . "View/Job/Page.php");
        require_once(CLASSES_PATH . "View/Job/ResumeConcrete.php");
        require_once(CLASSES_PATH . "View/Job/ResumeConcretePage.php");
        $frame =& ViewFrame::getInstance();
        $frame->title = htmlspecialchars($item->speciality) . ", ищет работу";
        $frame->main = new ViewJobPage(new ViewJobResumeConcretePage($item, $comments));
        $frame->display();
    }
   
    function edit() {
        if (!$this->id || !SimpleAuth::checkAuth()) {
            header("Location:" . JOB_PATH);
            return;
        }
        require_once(CLASSES_PATH . "Job/ResumeManager.php");
        $manager = new JobResumeManager();
        if (!$this->checkBelonging($item = $manager->createById($this->id))) {
            header("Location: " . JOB_PATH . "resume/concrete-" . $this->id . "/");
            return;
        }
        require_once(CLASSES_PATH . "xajax/xajax.inc.php");
        require_once(CLASSES_PATH . "Job/SpecialityLoader.php");
        $loader = new JobSpecialityLoader();
        $xajax = new xajax();
        $xajax->registerFunction(array("updateList", &$loader, "load"));
        $xajax->processRequests();
       
        require_once(CLASSES_PATH . "View/Frame/View.php");
        require_once(CLASSES_PATH . "View/Job/Page.php");
        require_once(CLASSES_PATH . "View/Job/ResumeEdit.php");
        require_once(CLASSES_PATH . "View/AjaxLoader.php");
        $frame =& ViewFrame::getInstance();
        $frame->head->addWidget(new ViewAjaxLoader($xajax));
        $frame->main = new ViewJobPage(new ViewJobResumeEdit($item));
        $frame->display();
    }
   
    function checkBelonging($item) {
        if (!$item)
            return false;
        $authId = SimpleAuth::getUserId();
        if (!$authId)
            return false;
        if ($item->user_id == $authId)
            return true;
        require_once(CLASSES_PATH . "UserItem.php");
        $ui = UserItem::getInstance($authId);
        return ($ui && $ui->rights);
    }
   
    function editConfirm() {
        if (!$this->id || !SimpleAuth::checkAuth()) {
            header("Location:" . JOB_PATH);
            return;
        }
        require_once(CLASSES_PATH . "Job/ResumeManager.php");
        $manager = new JobResumeManager();
        if (!$this->checkBelonging($item = $manager->createById($this->id))) {
            header("Location: " . JOB_PATH . "resume/concrete-" . $this->id . "/");
            return;
        }
        if (sizeof($errors = $this->assertEdit()))
            mustdie($errors);
        $item = new JobResumeItem($item->record_id, $item->user_id, $_POST["sphere"], $_POST["speciality"], $_POST["education"], $_POST["school"], $_POST["school_speciality"], $_POST["education_addition"], $_POST["experience"], $_POST["stuff"], $_POST["sex"], $_POST["family_state"], $_POST["language"], $_POST["work_location"], $_POST["schedule"], $_POST["addition_info"], $_POST["contact"], $_POST["email"], $_POST["phone"], $_POST["icq"], $item->time, $item->expire, $item->views_amount, isset($_POST["allow_comment"]), $_POST["age"], $_POST["term"], NULL, $_POST["photo"], $_POST["document"]);
        $item->update();

        if (isset($_FILES["photo"]) && $_FILES["photo"]["name"]) {
            $path = ROOT_DIR . $item->getPhotoPath();
            move_uploaded_file($_FILES["photo"]["tmp_name"], $path);
        }

        if (isset($_FILES["document"]) && $_FILES["document"]["name"]) {
            $path = ROOT_DIR . $item->getDocumentPath();
            move_uploaded_file($_FILES["photo"]["tmp_name"], $path);
        }

        header("Location: " . JOB_PATH . "resume/concrete-" . $item->record_id . "/");
    }
   
    function assertEdit() {
        $errors = array();
       
        if (!isset($_POST["sphere"]) || !$_POST["sphere"]) {
            $errors[] = "Сфера не указана";
        } else {
            require_once(CLASSES_PATH . "Job/SphereManager.php");
            $manager = new JobSphereManager();
            if (!$manager->createById($_POST["sphere"]))
                $errors[] = "Сфера не существует";
        }
       
        if (!isset($_POST["speciality"]) || !$_POST["speciality"]) {
            $errors[] = "Специальность не указана";
        } else if (ppc_strlen($_POST["speciality"]) > 255){
            $errors[] = "Специальность слишком длинная";
        }
       
        if (!isset($_POST["age"]) || !intval($_POST["age"])) {
            $errors[] = "Возраст не указан";
        }
       
        if (!isset($_POST["sex"]) || !intval($_POST["sex"])) {
            $errors[] = "Пол не указан";
        }

        if (!isset($_POST["family_state"])) {
            $errors[] = "Семейное положение не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
        }
       
        if (!isset($_POST["education"])) {
            $errors[] = "Образование не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
        }

        if (!isset($_POST["school"])) {
            $errors[] = "Учебное заведение не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
        } else if (ppc_strlen($_POST["school"]) > 255)
            $errors[] = "Название учебного заведения слишком длинное";

        if (!isset($_POST["school_speciality"])) {
            $errors[] = "Специальность по диплому не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
        } else if (ppc_strlen($_POST["school_speciality"]) > 255)
            $errors[] = "Название специальности по диплому слишком длинное";

        if (!isset($_POST["education_addition"])) {
            $errors[] = "Дополнительное образование не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
        } else if (ppc_strlen($_POST["education_addition"]) > 1500)
            $errors[] = "Текст дополнительного образования слишком длинный";
       
        if (!isset($_POST["experience"])) {
            $errors[] = "Опыт работы не указан, пожалуйста не пытайтесь добавлять объявления не с сайта";
        }
       
        if (!isset($_POST["experience"])) {
            $errors[] = "Опыт работы не указан, пожалуйста не пытайтесь добавлять объявления не с сайта";
        }
       
        if (!isset($_POST["stuff"]) || !is_numeric($_POST["stuff"])) {
            $errors[] = "зарлата не указана";
        } /*else if (!$_POST["stuff"] && !isset($_POST["stuff_open"]))
            $errors[] = "Зарплата должна быть задана или установлен флажек \"По договоренности\"";*/
       
        if (!isset($_POST["language"])) {
            $errors[] = "Язык не указан, пожалуйста не пытайтесь добавлять объявления не с сайта";
        }
       
        if (!isset($_POST["schedule"])) {
            $errors[] = "График работы не указан, пожалуйста не пытайтесь добавлять объявления не с сайта";
        }
       
        if (!isset($_POST["work_location"])) {
            $errors[] = "Место работы не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
        }
       
        if (!isset($_POST["addition_info"])) {
            $errors[] = "Дополнительная информация не указана, пожалуйста не пытайтесь добавлять объявления не с сайта";
        }  else if (ppc_strlen($_POST["addition_info"]) > 1500)
            $errors[] = "Дополнительная информация слишком длинная";
       
        if (!isset($_POST["contact"]) || !$_POST["contact"])
            $errors[] = "Контактная информация не указана";
        else if (ppc_strlen($_POST["contact"]) > 255)
            $errors[] = "Контактная информация слишком длинная";
       
        $contacted = false;
        if (isset($_POST["phone"]) && $_POST["phone"]) {
            $contacted = true;
            if (ppc_strlen($_POST["phone"]) > 40)
                $errors[] = "Телефон слишком длинный";
        }
       
        if (isset($_POST["email"]) && $_POST["email"]) {
            $contacted = true;
            if (ppc_strlen($_POST["email"]) > 40)
                $errors[] = "Телефон слишком длинный";
        }
       
        if (isset($_POST["icq"]) && $_POST["icq"]) {
            $contacted = true;
            if (ppc_strlen($_POST["icq"]) > 11)
                $errors[] = "ICQ слишком длинный";
        }
        if (!$contacted)
            $errors[] = "Одно или более полей Телефон, email или ICQ должны быть заполнены";
           
        if (!isset($_POST["term"]))
            $errors[] = "Срок размещения не указан";

        $_POST["photo"] = "";
        if (isset($_FILES["photo"]) && $_FILES["photo"]["name"]) {
            $ext = pathinfo($FILES["photo"]["name"], PATHINFO_EXTENSION);
            if (!in_array($ext, array("png", "jpg", "jpeg", "gif")))
                $errors[] = "Недопустимое расширение фотографии";
            else
                $_POST["photo"] = $ext;
        }

        $_POST["document"] = "";
        if (isset($_FILES["document"]) && $_FILES["document"]["name"]) {
            $ext = pathinfo($FILES["document"]["name"], PATHINFO_EXTENSION);
            if (!in_array($ext, array("doc", "txt", "zip", "rar")))
                $errors[] = "Недопустимое расширение резюме";
            else
                $_POST["document"] = $ext;
        }

        return $errors;
    }
   
}
?>

Если Вы хорошо знаете PHP, подскажите пожалуйста где ошибка?!

СПАСИБО
 
Последнее редактирование:
Посмотрите внимательно на этот код, думаю поймете дальше...
PHP:
$_POST["photo"] = "";
        if (isset($_FILES["photo"]) && $_FILES["photo"]["name"]) {
            $ext = pathinfo($FILES["photo"]["name"], PATHINFO_EXTENSION);
            if (!in_array($ext, array("png", "jpg", "jpeg", "gif")))
                $errors[] = "Недопустимое расширение фотографии";
            else
                $_POST["photo"] = $ext;
        }

        $_POST["document"] = "";
        if (isset($_FILES["document"]) && $_FILES["document"]["name"]) {
            $ext = pathinfo($FILES["document"]["name"], PATHINFO_EXTENSION);
            if (!in_array($ext, array("doc", "txt", "zip", "rar")))
                $errors[] = "Недопустимое расширение резюме";
            else
                $_POST["document"] = $ext;
        }
 
Поправку сделал по этому участку кода, но конечный результат не изменился. Всё также пути с расширением в базу не записываются и сами файлы не обновляются в загруженной директории.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху