Kors Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Это может значить, что:1. У Вас очень старая версия Simpla (в пути стоит ...\admin\CommentAdmin.php). А судя по содержанию, авторская разработка предназначена для версии 2.2. Ваша версия рассчитана на PHP 5.2, а реально у Вас более свежая. Если хотите ставить это дополнение, то надо каждый момент анализировать и приспосабливать под свою ситуацию... Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 (изменено) версия 2.3.6 , не думаю что старая, php с 5.3 переключил на 5.2 и никаких изменений. Изменено 6 сентября, 2015 пользователем martinways Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 версия 2.3.6 , не думаю что старая, php с 5.3 переключил на 5.2 и никаких изменений.в CommentAdmin.php перед $comment->id = $this->request->post('id', 'integer'); вставьте $comment = new StdClass(); и проверьте какой запрос к базе выполняется при обновлении комментария Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Как проверять запрос к базе не в курсе. Добавил $comment = new StdClass(); , при заходе на страницу редактирования вверху сообщение Strict Standards: Creating default object from empty value in C:\web\OpenServer\domains\evotime\admin\CommentAdmin.php on line 34 После нажатия кнопки СОХРАНИТЬ сообщение ошибки пропадает, ну и все так же ничего не сохраняется. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 версия 2.3.6 , не думаю что старая, php с 5.3 переключил на 5.2 и никаких изменений. В сообщении об ошибке у Вас стоит путь: Strict Standards: Creating default object from empty value in C:\web\OpenServer\domains\evotime\admin\CommentAdmin.php on line 11В стандартной Simpla 2.3.6 НЕ МОЖЕТ быть такого пути (нет папки admin). Видимо, у Вас что-то совсем не так, как Вы говорите. Возможно, переделывалось или обновлялось... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 (изменено) Как проверять запрос к базе не в курсе. Добавил $comment = new StdClass(); , при заходе на страницу редактирования вверху сообщение Strict Standards: Creating default object from empty value in C:\web\OpenServer\domains\evotime\admin\CommentAdmin.php on line 34 После нажатия кнопки СОХРАНИТЬ сообщение ошибки пропадает, ну и все так же ничего не сохраняется. а, да, переставьте $comment = new StdClass(); перед if($this->request->method('POST')) тогда ошибки не будет. чтобы посмотреть запрос, который отправляется, в update_comment функции в api/Comments.php выведите print_r($query); Изменено 6 сентября, 2015 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 В сообщении об ошибке у Вас стоит путь: В стандартной Simpla 2.3.6 НЕ МОЖЕТ быть такого пути (нет папки admin). Видимо, у Вас что-то совсем не так, как Вы говорите. Возможно, переделывалось или обновлялось... это симпла нуленная у него. там такой путь. Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 а, да, переставьте $comment = new StdClass(); перед if($this->request->method('POST')) тогда ошибки не будет. чтобы посмотреть запрос, который отправляется, в update_comment функции в api/Comments.php выведите print_r($query); Да, ошибка пропала, но ниче не заработало. Куда добавлять print_r($query); ? // Изменение комментария public function update_comment($id, $comment) { $date_query = ''; if(isset($comment->date)) { $date = $comment->date; unset($comment->date); $date_query = $this->db->placehold(', date=STR_TO_DATE(?, ?)', $date, $this->settings->date_format); } $query = $this->db->placehold("UPDATE __comments SET ?% $date_query WHERE id in(?@) LIMIT 1", $comment, (array)$id); $this->db->query($query); return $id; } Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Да, ошибка пропала, но ниче не заработало. Куда добавлять print_r($query); ? перед $this->db->query($query); Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Получаю сообщение UPDATE s_comments SET id='50', name='Алексей', email='', type='product', object_id='241', approved='1', text='ну так все же сколько будет отдельно один ремешок ', otvet='' WHERE id in('50') LIMIT 1 Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Получаю сообщение UPDATE s_comments SET id='50', name='Алексей', email='', type='product', object_id='241', approved='1', text='ну так все же сколько будет отдельно один ремешок ', otvet='' WHERE id in('50') LIMIT 1 А поля вы добавили в базу? otvet и email Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 (изменено) нет, я хотел только редактирование комментария реализовать, а это обязательно надо? может в этом причина Изменено 6 сентября, 2015 пользователем martinways Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 нет, я хотел только редактирование комментария реализовать, а это обязательно надо? может в этом причина при обновлении комментария эти поля передаются в функцию, которая пытается записать их в базу, а там их нет. соотвественно возникает ошибка записи в базу. вам нужно либо удалить $comment->email = $this->request->post('email'); $comment->otvet = $this->request->post('otvet'); либо добавить в s_comments эти два поля.дальше все должно работать, даже если вы не хотите выводить ответ от администратора. Цитата Ссылка на сообщение Поделиться на другие сайты
Sageron Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Все ок, только в логах ошибки пишет что в файле CommentAdmin.php ошибки в строчках $comment->id = $this->request->post('id', 'integer'); и $comment->id = $this->request->get('id', 'integer'); соответственно при открытии и изменении комментария Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Спасибо, удалил строчки и все заработало. Цитата Ссылка на сообщение Поделиться на другие сайты
Sageron Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Я не уверен что их надо было именно удалять, но если после этого реально все работает и ошибки в логе не появляются это замечательно)) Первую строчку точно можно дельнуть я думаю $comment->id = $this->request->post('id', 'integer'); А вот вторая, как мне кажется, это важная часть кода. Возможно тогда нужно удалить всю команду целиком else { $comment->id = $this->request->get('id', 'integer'); $comment = $this->comments->get_comment(intval($comment->id)); } Надеюсь знающие люди подскажут. Но ,повторюсь, если все же все работает и ошибок не выдает то возможно стоит так и оставить. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Я не уверен что их надо было именно удалять, но если после этого реально все работает и ошибки в логе не появляются это замечательно)) Первую строчку точно можно дельнуть я думаю $comment->id = $this->request->post('id', 'integer'); А вот вторая, как мне кажется, это важная часть кода. Возможно тогда нужно удалить всю команду целиком else { $comment->id = $this->request->get('id', 'integer'); $comment = $this->comments->get_comment(intval($comment->id)); } Надеюсь знающие люди подскажут. Но ,повторюсь, если все же все работает и ошибок не выдает то возможно стоит так и оставить. по айди выбирается и обновляется комментарий. а какую ошибку выдавало? после удаления полей email и otvet Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Все ок, только в логах ошибки пишет что в файле CommentAdmin.php ошибки в строчках $comment->id = $this->request->post('id', 'integer'); и $comment->id = $this->request->get('id', 'integer'); соответственно при открытии и изменении комментария Спасибо, удалил строчки и все заработало. Очень странно. Не должно работать при таком удалении. Разве что Вы еще чего наизменяли... Цитата Ссылка на сообщение Поделиться на другие сайты
Sageron Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Очень странно. Не должно работать при таком удалении. Разве что Вы еще чего наизменяли... Я вот тоже так подумал) А почему в этих строчках ошибки могут выводится? Но при этом все работает. Цитата Ссылка на сообщение Поделиться на другие сайты
Sageron Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 по айди выбирается и обновляется комментарий. а какую ошибку выдавало? после удаления полей email и otvet error_log PHP Warning: Creating default object from empty value in *путь к файлу*/simpla/CommentAdmin.php on line 40PHP Warning: Creating default object from empty value in *путь к файлу*/simpla/CommentAdmin.php on line 11 Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 error_log PHP Warning: Creating default object from empty value in *путь к файлу*/simpla/CommentAdmin.php on line 40 PHP Warning: Creating default object from empty value in *путь к файлу*/simpla/CommentAdmin.php on line 11$comment = new stdClass(); Цитата Ссылка на сообщение Поделиться на другие сайты
Sageron Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 $comment = new stdClass();Это надо добавить в CommentAdmin.php чтобы ошибка не возникала? Цитата Ссылка на сообщение Поделиться на другие сайты
Sageron Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 (изменено) Я добавил в начало и в середину код и ошибка исчезла <?PHP require_once('api/Simpla.php'); class CommentAdmin extends Simpla { public function fetch() { if($this->request->method('POST')) { $comment = new stdClass(); $comment->id = $this->request->post('id', 'integer'); $comment->name = $this->request->post('name'); $comment->email = $this->request->post('email'); $comment->date = $this->request->post('date'); else { $comment = new stdClass(); $comment->id = $this->request->get('id', 'integer'); $comment = $this->comments->get_comment(intval($comment->id)); } Изменено 6 сентября, 2015 пользователем Sageron Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Это надо добавить в CommentAdmin.php чтобы ошибка не возникала? или можно добавить было один раз перед if($this->request->method('POST')) как я писал выше на странице 2 Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 6 сентября, 2015 Жалоба Поделиться Опубликовано 6 сентября, 2015 Достаточно было прописать в начало функции fetch, как подчеркнул Мишаня. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.