Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Дополнительные поля при добавлении комментариев

Дополнительные поля при добавлении комментариев


     31.07.2013    Дополнительные поля, Добавление комментариев    Все вопросы » Общие вопросы по PHP    4499

вопрос
Всем привет!

В addcomments.tpl добавил следующий код:



    Ваша оценка приложению
    
    Положительная
    Нейтральная
    Отрицательная



Файл /modules/addcomments.php:

В запросе на добавление комментария добавил ... ( ... ,type) values ( ... ,'{$_POST['type']}')

В итоге из селекта как не крути ничего не уходит в базу. Все файлы облазил уже, не могу найти где поймать переменную, ибо раньше всё это делалось в addcomments.php, а сейчас он тупо игнорирует, даже если вписывать в аддкомментс.пхп эту строку:

$type = $db->safesql( $parse->process( trim( $_POST['type'] ) ) );


Не понимаю, почему он в упор не видит информацию из селекта?

Ответа пока нет


12 комментариев

TheImDim
Юзер

TheImDim - 31 июля 2013 17:17 -

В запросе на добавление комментария добавил ... ( ... ,type) values ( ... ,'{$_POST['type']}')


Во первых, это хорошая дыра для SQL инъекции

Во вторых, какой код добавили в addcomments.tpl? Вижу парсер порезал все.

Попробуйте так:


[b]addcomments.tpl[/b]

<select size="3" multiple name="my_rating">
    <option disabled>Ваша оценка приложению</option>
    <option selected value="0">Нейтральная</option>
    <option value="1">Положительная</option>
    <option value="2">Отрицательная</option>
</select>

[b]/modules/addcomments.php[/b]

$my_rating = intval( $_POST['my_rating'] );

далее в запрос добавляем:

( ... ,type) values ( ... ,'$my_rating')


okeeee
Юзер

okeeee - 31 июля 2013 17:42 -

Попробовал так, всёравно в базу не уходят данные из селекта, вообще не понимаю почему

На счёт $_POST согласен, это для теста, просто даже напрямую данные не идут

okeeee
Юзер

okeeee - 31 июля 2013 18:36 -

Любой сторонний POST из формы добавления комментария не передаётся, не понятно почему

TheImDim
Юзер

TheImDim - 31 июля 2013 18:49 -

Советую почитать про формы
Нужно <select> поместить в форму

TheImDim
Юзер

TheImDim - 31 июля 2013 18:51 -

engine/modules/comments.php
строка ~ 105

okeeee
Юзер

okeeee - 31 июля 2013 19:19 -

Следовательно шаблон добавления комментариев обрабатывается файлами comments.php и show.full.php, следовательно занося select либо input в шаблон добавления - он выводится именно в форме.

Но всёравно не понятно, почему не передаются новые поля и информация из POST

okeeee
Юзер

okeeee - 31 июля 2013 18:57 -

В том то и дело,что DLE где-то обрабатывает шаблон addcomments.tpl таким образом, что содержимое шаблона заносится в форму. Не могу понять принцип работы, наворотили непойми что...

Раньше - залез в файл, добавил нужные поля и всё. Сейчас же еще кучу длешных файлов надо перерыть, чтобы что-то самому сделать в нужной форме.

Почему из шаблона другие поля работают, а если добавлять новые то нет?
Я уже и function перерыл и ajax и класс - нигде ничего нет. Но форма то где-то должна быть..

okeeee
Юзер

okeeee - 31 июля 2013 19:01 -

И кстати обрабатывает её show.full.php (форма в нём)

okeeee
Юзер

okeeee - 31 июля 2013 21:06 -

Любые попытки передачи сторонних данных игнорирует, работают иключительно стандартные

okeeee
Юзер

okeeee - 4 августа 2013 15:04 -

Может дело в ajax?

Попробуйте кто нибудь добавить новое поле при добавлении комментария

swart
Юзер

swart - 24 июня 2015 15:36 -

так никто и не разобрался с этим?

Mandrill API
Юзер

Mandrill API - 6 октября 2020 00:43 -

Правьте /engine/classes/js/dle.js
Приблизительно 18 строка в версии 14.1
$.post(dle_root+"engine/ajax/controller.php?mod=addcomments",{post_id:a.post_id.value,

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх