yoshkin Опубликовано 12 января, 2016 Жалоба Поделиться Опубликовано 12 января, 2016 Коллеги, нужен совет/пинок. Не понимаю в чем затык.Как можно отследить (вывести дебаг) выполнения запросов? 1. В Апи добавил f.image в оба запроса.2. В FeedbackView.php - добавлен блок загрузки файла, обозначены форматы3. В шаблоне темы добавлен инпут для загрузки файла.4. В конфиге прописан путь для хранения файлов + создана соответствующая директория. Нигде никаких ошибок не выводится, запись в базу добавляется, но поле image остается пустым. Что я мог забыть? Вот так прописал в FeedbackView.php (удаление специально пока закоментировано): else { $this->design->assign('message_sent', true); // Удаление изображения /* if($this->request->post('delete_image')) { $this->feedbacks->delete_image($feedback->id); } */ // Загрузка изображения $image = $this->request->files('image'); if(!empty($image['name']) && in_array(strtolower(pathinfo($image['name'], PATHINFO_EXTENSION)), $this->allowed_image_extentions)) { //$this->feedbacks->delete_image($feedback->id); move_uploaded_file($image['tmp_name'], $this->root_dir.$this->config->feedbacks_images_dir.$image['name']); $this->feedbacks->update_feedback($feedback->id, array('image'=>$image['name'])); } $feedback->ip = $_SERVER['REMOTE_ADDR']; $feedback_id = $this->feedbacks->add_feedback($feedback); // Отправляем email $this->notify->email_feedback_admin($feedback_id); // Приберем сохраненную капчу, иначе можно отключить загрузку рисунков и постить старую //unset($_SESSION['captcha_code']); } Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 12 января, 2016 Жалоба Поделиться Опубликовано 12 января, 2016 (изменено) возможно потому что вы загружаете картинку и обновляете название картинки по АЙДИ фидбека перед тем как добавляете в базу сам фидбек. соответственно делайте выводы. Изменено 12 января, 2016 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 12 января, 2016 Жалоба Поделиться Опубликовано 12 января, 2016 (удаление специально пока закоментировано): не понятно что значит пока? у вас каждый пользователь будет грузить свою картинку и вызывать тут удаление чего-то не уместно. Цитата Ссылка на сообщение Поделиться на другие сайты
yoshkin Опубликовано 12 января, 2016 Автор Жалоба Поделиться Опубликовано 12 января, 2016 возможно потому что вы загружаете картинку и обновляете название картинки по АЙДИ фидбека перед тем как добавляете в базу сам фидбек. соответственно делайте выводы. Честно говоря пробовал по-разному "грузить" изображение в базу после $feedback_id = $this->feedbacks->add_feedback($feedback);и даже "с горя" пробовал выносить за условие "иначе".Результат тот же. var_dump также никак не помог Цитата Ссылка на сообщение Поделиться на другие сайты
yoshkin Опубликовано 12 января, 2016 Автор Жалоба Поделиться Опубликовано 12 января, 2016 не понятно что значит пока? у вас каждый пользователь будет грузить свою картинку и вызывать тут удаление чего-то не уместно.Имел ввиду, что лишнее закоментировано, но потом еще добавлю удаление картинки вместе с удалением фидбека некорретно выразился Цитата Ссылка на сообщение Поделиться на другие сайты
yoshkin Опубликовано 12 января, 2016 Автор Жалоба Поделиться Опубликовано 12 января, 2016 Так в теме картинка загружается: <input class='upload_image' name=image type=file> Цитата Ссылка на сообщение Поделиться на другие сайты
yoshkin Опубликовано 12 января, 2016 Автор Жалоба Поделиться Опубликовано 12 января, 2016 Даже если упростить функцию апдейта записи в базе, ничего не изменится: public function update_feedback($id, $feedback) { $query = $this->db->placehold("UPDATE __feedbacks SET ?% WHERE id=? LIMIT 1", $feedback, intval($id)); $this->db->query($query); return $id; } Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 12 января, 2016 Жалоба Поделиться Опубликовано 12 января, 2016 вы переделали тот участок кода что в первом посте? Цитата Ссылка на сообщение Поделиться на другие сайты
yoshkin Опубликовано 12 января, 2016 Автор Жалоба Поделиться Опубликовано 12 января, 2016 вы переделали тот участок кода что в первом посте? Сейчас вот так (там в том числе поменял $feedback->id на $feedback_id): class FeedbackView extends View { private $allowed_image_extentions = array('png', 'gif', 'jpg', 'jpeg', 'ico'); function fetch() { $feedback = new stdClass; if($this->request->method('post') && $this->request->post('feedback')) { $feedback->name = $this->request->post('name'); $feedback->email = $this->request->post('email'); $feedback->message = $this->request->post('message'); //$captcha_code = $this->request->post('captcha_code'); $this->design->assign('name', $feedback->name); $this->design->assign('email', $feedback->email); $this->design->assign('message', $feedback->message); $this->design->assign('scroll', true); if(empty($feedback->name)) $this->design->assign('error', 'empty_name'); elseif(empty($feedback->email)) $this->design->assign('error', 'empty_email'); elseif(empty($feedback->message)) $this->design->assign('error', 'empty_text'); //elseif(empty($_SESSION['captcha_code']) || $_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) //{ // $this->design->assign('error', 'captcha'); //} else { $this->design->assign('message_sent', true); // Загрузка изображения $feedback->ip = $_SERVER['REMOTE_ADDR']; $feedback_id = $this->feedbacks->add_feedback($feedback); $image = $this->request->files('image'); var_dump($image); if(!empty($image['name']) && in_array(strtolower(pathinfo($image['name'], PATHINFO_EXTENSION)), $this->allowed_image_extentions)) { move_uploaded_file($image['tmp_name'], $this->root_dir.$this->config->feedbacks_images_dir.$image['name']); $this->feedbacks->update_feedback($feedback_id, array('image'=>$image['name'])); } // Отправляем email $this->notify->email_feedback_admin($feedback_id); // Приберем сохраненную капчу, иначе можно отключить загрузку рисунков и постить старую //unset($_SESSION['captcha_code']); } } if($this->page) { $this->design->assign('meta_title', $this->page->meta_title); $this->design->assign('meta_keywords', $this->page->meta_keywords); $this->design->assign('meta_description', $this->page->meta_description); } $body = $this->design->fetch('feedback.tpl'); return $body; } } Цитата Ссылка на сообщение Поделиться на другие сайты
yoshkin Опубликовано 12 января, 2016 Автор Жалоба Поделиться Опубликовано 12 января, 2016 Не работает скорее всего все же из-за того, что var_dump($image); возвращает NULL Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 12 января, 2016 Жалоба Поделиться Опубликовано 12 января, 2016 Возможно, в шаблоне у Вас не хватает у формы enctype="multipart/form-data" Цитата Ссылка на сообщение Поделиться на другие сайты
Решение mishanya Опубликовано 12 января, 2016 Решение Жалоба Поделиться Опубликовано 12 января, 2016 (изменено) Не работает скорее всего все же из-за того, что var_dump($image); возвращает NULL теперь то да, раньше у вас не правильно было через айди и еще форма должна быть <form method=post enctype="multipart/form-data"> также можно обойтись вообще без update_feedback и не делать 2 запроса. просто добавьте $feedback->image = $image['name']; и ниже уже $feedback_id = $this->feedbacks->add_feedback($feedback); Изменено 12 января, 2016 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
yoshkin Опубликовано 12 января, 2016 Автор Жалоба Поделиться Опубликовано 12 января, 2016 Возможно, в шаблоне у Вас не хватает у формы enctype="multipart/form-data" теперь то да, раньше у вас не правильно было через айди и еще форма должна быть <form method=post enctype="multipart/form-data"> также можно обойтись вообще без update_feedback и не делать 2 запроса. просто добавьте $feedback->image = $image['name']; и ниже уже $feedback_id = $this->feedbacks->add_feedback($feedback); Спасибо! с entype все работает)вар_дамп все что надо показывает, изображение сохраняется! Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 12 января, 2016 Жалоба Поделиться Опубликовано 12 января, 2016 (изменено) Спасибо! с entype все работает)вар_дамп все что надо показывает, изображение сохраняется! вообще поставьте еще какое-то ограничение на размер, если на сервере не стоит а то забъют все. Изменено 12 января, 2016 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
yoshkin Опубликовано 12 января, 2016 Автор Жалоба Поделиться Опубликовано 12 января, 2016 вообще поставьте еще какое-то ограничение на размер, если на сервере не стоит а то забъют все.Да, обязательно. Пока все в формате теста делаю. Спасибо еще раз вам и Корсу Цитата Ссылка на сообщение Поделиться на другие сайты
archi07 Опубликовано 22 мая, 2018 Жалоба Поделиться Опубликовано 22 мая, 2018 Да, обязательно. Пока все в формате теста делаю. Спасибо еще раз вам и КорсуНа Simpla хорошо работает, под Okaycms чуть-чуть дополнил удаление, а вот с мультизагрузкой файлов вышел затык. Не подскажите как реализовать загрузку сразу нескольких файлов? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 22 мая, 2018 Жалоба Поделиться Опубликовано 22 мая, 2018 На Simpla хорошо работает, под Okaycms чуть-чуть дополнил удаление, а вот с мультизагрузкой файлов вышел затык. Не подскажите как реализовать загрузку сразу нескольких файлов?Идите на форум вашей CMS и там задавайте вопросы, здесь не приветствуется саппорт кастом (убогих) CMS. Цитата Ссылка на сообщение Поделиться на другие сайты
archi07 Опубликовано 22 мая, 2018 Жалоба Поделиться Опубликовано 22 мая, 2018 Идите на форум вашей CMS и там задавайте вопросы, здесь не приветствуется саппорт кастом (убогих) CMS.Вообще-то в основном я работаю на Modx Revo, но иногда заказчики сами выбирают CMS, но если это Ваш личный форум, то пожалуй буду обходить его стороной - не люблю общаться с закомплексованными. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 22 мая, 2018 Жалоба Поделиться Опубликовано 22 мая, 2018 Вообще-то в основном я работаю на Modx Revo, но иногда заказчики сами выбирают CMS, но если это Ваш личный форум, то пожалуй буду обходить его стороной - не люблю общаться с закомплексованными.Это не мой личный форум (боже упаси), я не понимаю вашей логики, пришли на форум поддержки Simpla CMS и задаёте вопросы касаемо совсем другой системы. На что вы рассчитываете? Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 22 мая, 2018 Жалоба Поделиться Опубликовано 22 мая, 2018 На Simpla хорошо работает, под Okaycms чуть-чуть дополнил удаление, а вот с мультизагрузкой файлов вышел затык. Не подскажите как реализовать загрузку сразу нескольких файлов? Смотрите, как сделано в Simpla в админке на странице товара, и действуйте аналогично. Цитата Ссылка на сообщение Поделиться на другие сайты
archi07 Опубликовано 22 мая, 2018 Жалоба Поделиться Опубликовано 22 мая, 2018 Это не мой личный форум (боже упаси), я не понимаю вашей логики, пришли на форум поддержки Simpla CMS и задаёте вопросы касаемо совсем другой системы.На что вы рассчитываете?Я рассчитывал именно на то, что мне помогут с мультизагрузкой по Simpla и если бы я знал, что для некоторых упоминание Okaycms как красная тряпка для быка, то не стал бы ее упоминать. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 22 мая, 2018 Жалоба Поделиться Опубликовано 22 мая, 2018 (изменено) Я рассчитывал именно на то, что мне помогут с мультизагрузкой по Simpla и если бы я знал, что для некоторых упоминание Okaycms как красная тряпка для быка, то не стал бы ее упоминать.Рассчитывал на одно - написал другое...Кто вам лекарь?P.S. Прежде чем что-либо писать в сети, подумайте что и как вы НАнапишите. Изменено 22 мая, 2018 пользователем Noxter Цитата Ссылка на сообщение Поделиться на другие сайты
niki_tim Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 Здравствуйте! Необходимо вставить модуль обратной связи на главную страницу и добавить возможность загрузки файла до 50мб. Сообщение должно приходить администратору сайта на почту со ссылкой на этот файл. Готов купить эту доработку. Пожалуйста в личку. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.