Установка капчи

blzin107

Новичок
Помогите установить капчу, не могу реализовать проверку капчи.
Вообщем есть форма :
HTML:
<form name="comment" action="comment.php" method="post">
  <p>
    <label>Имя:</label>
    <input type="text" name="name" />
  </p>
  <p>
    <label>Комментарий:</label>
    <br />
    <textarea name="t_comment" cols="100" rows="10"></textarea>
  </p>
  <p>
    <input type="hidden" name="page_id" value="1" />
<h5>Проверчный код</h5>
  <img src = "captcha.php" /><br>
  <input type = "text" name = "kapcha" />
    <input type="submit" value="Отправить" />
  </p>
</form>

Код Captcha.php
PHP:
?php
    session_start();
    $string = "";
    for ($i = 0; $i < 5; $i++)
        $string .= chr(rand(97, 122));
 
    $_SESSION['rand_code'] = $string;

    $dir = "fonts/";

    $image = imagecreatetruecolor(170, 60);
    $black = imagecolorallocate($image, 0, 0, 0);
    $color = imagecolorallocate($image, 200, 100, 90);
    $white = imagecolorallocate($image, 255, 255, 255);

    imagefilledrectangle($image,0,0,399,99,$white);
    imagettftext ($image, 30, 0, 10, 40, $color, $dir."verdana.ttf", $_SESSION['rand_code']);

    header("Content-type: image/png");
    imagepng($image);
?>
Хочу установить капчу на ввод коментариев, соответстенно если капча введена правильно, то комментарий заполняется в БД и выводится ниже формы. Если нет, то выходит сообщение о неправильной капче.
В моем случае, правильно или неправильно введена капча коммент. записывается в БД и выводится. К
Как реализовать проверку конкретно на моем коде?
В инструкции написано, то проверка реализуется в comment.php
if($_POST['kapcha'] != $_SESSION['rand_code']) echo "Капча введена неверно";
else echo "Капча введена верно";
Напишите, пожалуйста, как это реализовать?


comment.php
PHP:
<?php
session_start(); // проверка капчи
if($_POST['kapcha'] != $_SESSION['rand_code']) echo "Капча введена неверно" exit();
else echo "Капча введена верно";
  /* Принимаем данные из формы */
  $name = $_POST["name"];
  $page_id = $_POST["page_id"];
  $t_comment = $_POST["t_comment"];
  $date = date('Y-m-d-H-i-s');
  $name = htmlspecialchars($name);// Преобразуем спецсимволы в HTML-сущности
  $t_comment = htmlspecialchars($t_comment);// Преобразуем спецсимволы в HTML-сущности
  $mysqli = new mysqli("bmw.ins", "root", "1234", "comment");// Подключается к базе данных
  $mysqli->query("INSERT INTO `coment` (`name`, `page_id`, `t_comment` , `date`) VALUES ('$name', '$page_id', '$t_comment', '$date')");// Добавляем комментарий в таблицу
  header("Location: ".$_SERVER["HTTP_REFERER"]);// Делаем реридект обратно
?>
 
Последнее редактирование:

blzin107

Новичок
Поправил, спасибо, помощь не требуется, решение нашлось. Новичек в php, поэтому возникли недопонимания.
Правильно будет так:
PHP:
<?php
session_start(); // проверка капчи
if($_POST['kapcha'] == $_SESSION['rand_code']) {
  /* Принимаем данные из формы */
  $name = $_POST["name"];
  $page_id = $_POST["page_id"];
  $t_comment = $_POST["t_comment"];
  $date = date('Y-m-d-H-i-s');
  $name = htmlspecialchars($name);// Преобразуем спецсимволы в HTML-сущности
  $t_comment = htmlspecialchars($t_comment);// Преобразуем спецсимволы в HTML-сущности
  $mysqli = new mysqli("bmw.ins", "root", "1234", "comment");// Подключается к базе данных
  $mysqli->query("INSERT INTO `coment` (`name`, `page_id`, `t_comment` , `date`) VALUES ('$name', '$page_id', '$t_comment', '$date')");// Добавляем комментарий в таблицу
  header("Location: ".$_SERVER["HTTP_REFERER"]);}// Делаем реридект обратно
else { header ('Refresh: 3; URL=index.php');
?>
 
Сверху