Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не работает скрипт гостевой книги
Форумы портала PHP.SU » » Если скрипт не работает » Не работает скрипт гостевой книги

Страниц (1): [1]
 

1. SilverSky - 02 Мая, 2018 - 21:33:44 - перейти к сообщению
Здравствуйте!



Код сайта выложен на яндекс диске https://yadi[dot]sk/d/HMRZttf13VBbS9

Форма гостевой простая, но при добавлении имени и комментария всплывает сообщение 'Ошибка при добавлении записи в гостевую книгу', созданное в guestbook.php и подключённое через отдельный файл alert.php Таблица guestbook создана в базе (id, name,comment) В бд данные не сохраняются.
Возможно, дело в переменной addGuestBookComment, но я только начинаю освоение php и не знаю, как правильно вызвать и где print_r хотя бы? Или (скорее всего, ошибка cсинтаксиса где-то?

alert.php

PHP:
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2.     alert ("<?PHP echo $alert;?>");
  3.  
  4. </script>


guestbook.php (blocks)

PHP:
скопировать код в буфер обмена
  1. <h2>Добавить запись</h2>
  2. <form name="guestbook" action="" method="post">
  3. <table>
  4.   <tr>
  5.     <td>Имя:</td>
  6.     <td>
  7.         <input type="text" name="name" />      
  8.     </td>
  9.   </tr>
  10.   <tr>
  11.       <td>Комментарий:</td>
  12.       <td>
  13.         <input type="text" name="comment" />   
  14.       </td>
  15.     </tr>
  16.     <tr>
  17.       <td colspan="2">
  18.     <input type="submit" name="button_guestbook" value="Добавить"/>
  19.       </td>                    
  20.  
  21.     </tr>
  22.      </table>
  23. </form>
  24. <h2>Записи в гостевой книге</h2>
  25.  
  26. <div>
  27.   <?PHP
  28.  
  29.         if (!empty($_POST["button_guestbook"])) {
  30.          $name =  htmlspecialchars ($_POST["name"]);
  31.          $comment = htmlspecialchars ($_POST["comment"]);
  32.         if ((strlen($name) < 3) || (strlen($comment) < 3)) $success = false;
  33.         else $success = addGuestBookComment ($name, $comment);
  34.         if (!$success) {
  35.                 $alert = "Ошибка при добавлении новой записи";
  36.                  include "alert.php";
  37.       }
  38.     }
  39.       $comments = getAllGuestBookComments();
  40.     for ($i = 0; $i < count($comments); $i++) {
  41.        $name = $comments [$i] ["name"];
  42.       $comment = $comments [$i] ["comment"];
  43.       include "blocks/guestbook_comment.php";
  44.      }
  45.   ?>
  46.  
  47. </div>


guestbook_comment.php (в папке blocks)

PHP:
скопировать код в буфер обмена
  1. <p><b><?PHP echo $name;?>:</b><?PHP echo $comment;?></p>
  2.  


function.php

PHP:
скопировать код в буфер обмена
  1. function getAllGuestBookComments () {
  2.                 global $mysqli;
  3.                 connectDB();
  4.                 $result_set = $mysqli->query("SELECT * FROM `guestbook`");
  5.                 closeDB();
  6.                 return resultSetToArray($result_set);
  7.         }
  8.  
  9.          function addGuestBookComment($name, $comment) {
  10.                 global $mysqli;
  11.                 connectDB();
  12. $success = $mysqli->query("INSERT INTO `questbook`(`name`, `comment`) VALUES ('$name', '$comment')");
  13.                 closeDB();
  14.                 return $success;
  15.          }
2. Vladimir Kheifets - 04 Мая, 2018 - 09:12:20 - перейти к сообщению
SilverSky пишет:
Здравствуйте!

Код сайта выложен на яндекс диске https://yadi[dot]sk/d/HMRZttf13VBbS9

Форма гостевой простая, но при добавлении имени и комментария всплывает сообщение 'Ошибка при добавлении записи в гостевую книгу', созданное в guestbook.php и подключённое через отдельный файл alert.php Таблица guestbook создана в базе (id, name,comment) В бд данные не сохраняются.
Возможно, дело в переменной addGuestBookComment, но я только начинаю освоение php и не знаю, как правильно вызвать и где print_r хотя бы? Или (скорее всего, ошибка cсинтаксиса где-то?


Здравствуйте!
Скорее всего у Вас не работает function connectDB() в папке lib
Проверьте, подставили ли Вы вместо "localhost", "root", "", "mysite-local"
данные Вашей БД.
Спойлер (Отобразить)

Удачи!

 

Powered by ExBB FM 1.0 RC1