Добавление новых комментарие

Тема в разделе "SQL", создана пользователем xJlaIIax, 10 июн 2009.

  1. xJlaIIax

    xJlaIIax Гость

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

    1. Я создал в базе денных таблицу из 5 полей под названием "comments":

    [​IMG]

    2. В конце странице написал код, для вывода комментариев из базы данных:

    Код (Text):
    <!--Вывод комментариев из базы данных-->
    <?
    echo "<p class='post'>Коментарии:</p>";

    $result3 = mysql_query ("SELECT * FROM comments WHERE post='fast'",$db);
    if (mysql_num_rows ($result3) > 0)
    {

    $myrow3 = mysql_fetch_array($result3);

    do
    {
    printf ("<div class='post_div'><p class='post_add'>Комментарий добавил(а):
    <strong class='color'>%s</strong> <br> Дата: <f class='color'>%s </p> </f>
    <p class='post_text'>%s</p></div>",$myrow3["author"], $myrow3["date"], $myrow3["text"]);
    }
    while ($myrow3 = mysql_fetch_array($result3));
    }

    $result4 = mysql_query ("SELECT * FROM comments_setting",$db);

    $myrow4 = mysql_fetch_array($result4);

    ?>
    3. В базе данных в ручную заполнил все поля в таблице "comments", для проверке когда для вывода комментариев из базы данных:

    [​IMG]

    4. Проверка прошла успешно, комментарии выводятся.

    [​IMG]

    5. Создал в базе данных таблицу под названием "comments_setting" из 3 полей, для защиты от спама:

    [​IMG]

    6. Заполнил её:

    [​IMG]

    7. Создал форму для добавления новых комментариев с код:

    [​IMG]

    Код (Text):
    <!--Добавление нового комментария-->
    <p class='vaiii_comment'> Добавить Ваш коммментарий:</p>
    <form action="../blocks/comment.php" method="post" name="form_com">
    <p><label>Ваше имя: </label><input name="author" type="text" size="25" maxlength="25"></p>
    <p><label>Текст комментария: <br> <textarea name="text" cols="28" rows="4"></textarea></label></p>

    Введите сумму чисел с картинки:
    <table width="110" border="0">
    <tr>
    <td>
    <img SRC="<? echo $myrow4["img"]; ?>" HSPACE=0 VSPACE=10 >
    </td>
    <td>
    <input name="pr" type="text" size="2" maxlength="5">
    <input name="id" type="hidden" value="<? echo $fast; ?>">
    </td>
    </tr>
    </table>
    <input name="sud_com" type="submit" value="Комментировать">
    </form>
    8. Создал comments.php с кодом:

    Код (Text):
    <? include("../blocks/bd.php"); ?> <!--Подключение к базе-->

    <?
    if (isset($_POST['author']))
    {
    $author = $_POST ['author'];
    }

    if (isset($_POST['text']))
    {
    $text = $_POST ['text'];
    }

    if (isset($_POST['pr']))
    {
    $pr = $_POST ['pr'];
    }

    if (isset($_POST['sud_com']))
    {
    $sud_com = $_POST ['sud_com'];
    }

    if (isset($_POST['fast']))
    {
    $fast = $_POST ['fast'];

    if (isset($sub_com))
    {
    if (isset($author)) {trim($author); }
    else {$author = "";}

    if (isset($text)) {trim($text); }
    else {$text = "";}

    if (empty($author) or empty($text))
    {
    exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input name='back' type='button' value='Вернуться назад' onlick='java script:self.back();' >");
    }

    $author = stripslashes($author);
    $text = stripslashes($text);
    $author = htmlspecialchars($author);
    $text = htmlspecialchars($text);

    $result = mysql_query ("SELECT summa FROM comments_setting",$db);
    $myrow = mysql_fetch_array($result);

    if ($pr == $myrow["summa"])
    {
    $date = date("Y-m-d");
    $result2 = mysql_query ("INSERT INTO comments (post,author,text,date) VALUES ('$fast','$author','$text','$date')",$db);
    }
    else
    {
    exit ("<p>Вы ввели неверную сумму цифр с картинки. <br> <input name='back' type='button' value='Вернуться назад' onlick='java script:self.back();' >"); 
    }

    }

    ?>
    Ну вот и всё, к сожалению функция добавление новых комментариев не работает. Надеюсь вы мне поможите устранить эту ошибку.
     
  2. xJlaIIax

    xJlaIIax Гость

    Я тут эксперементировал и понял что если не много изменить код в файле comment.php то всё заработает!

    Код (Text):
    <? include("../blocks/bd.php"); ?> <!--Подключение к базе-->

    <?

    if (isset($sub_com))
    {
    if (isset($author)) {trim($author); }
    else {$author = "";}

    if (isset($text)) {trim($text); }
    else {$text = "";}
    }

    if (empty($author) or empty($text))
    {
    exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input name='back' type='button' value='Вернуться назад' onlick='java script:self.back();' >");
    }

    $author = stripslashes($author);
    $text = stripslashes($text);
    $author = htmlspecialchars($author);
    $text = htmlspecialchars($text);

    $result = mysql_query ("SELECT summa FROM comments_setting",$db);
    $myrow = mysql_fetch_array($result);

    if ($pr == $myrow["summa"])
    {
    $date = date("Y-m-d");
    $result2 = mysql_query ("INSERT INTO comments (post,author,text,date) VALUES ('fast','$author','$text','$date')",$db);
    }
    else
    {
    exit ("<p>Вы ввели неверную сумму цифр с картинки. <br> <input name='back' type='button' value='Вернуться назад' onlick='java script:self.back();' >"); 
    }

    ?>
    То есть дело было в основном в скобочке "}", её надо было ставить не в конец а после

    Код (Text):
    if (isset($sub_com))
    {
    if (isset($author)) {trim($author); }
    else {$author = "";}

    if (isset($text)) {trim($text); }
    else {$text = "";}
     
Загрузка...

Поделиться этой страницей