Ребята, косяк с "самодельной капчой", помогите.
Фишка в том что я ввожу в поле для капчи результат мат. действия, нажимаю submit, Обработчик формы PHP_self, начинаю проверять робот или нет, но после submit капча генерирует уже новое число. а сравнивает его с введенным старым.
Код прилагаю.
Начинаю изучать, где-то я потерял логику или что-то недоучил, подскажите, умные люди...
CODE ( htmlphp):
скопировать код в буфер обмена
<?php $random_img = rand(1, 7); $capcha_result = $random + $random_img; if (isset($_POST['submit'])) { $form = false; $capcha = $_POST['capcha']; if (($capcha != $capcha_result) or (empty($capcha))) { echo '<p class="important">Похоже, что вы робот, попробуйте еще раз</p>'; echo $capcha; echo '<p>'.$capcha_result. '</p>'; $form = true; } echo '<p class="important">Вы не согласились с правилами </p>'; $form = true; } if (!(($capcha != $random + $random_img) or (empty($capcha))) and (!isset($order)) ) { $kategoria = $_POST['kategoria']; $url = $_POST['url']; $name = $_POST['name']; $description = $_POST['description']; $author = $_POST['author']; $email = $_POST['email']; echo 'Все получилось'; } } else { $form = true; } if ($form) { ?> <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST" class="add_site_form"> <p>Выберите категорию сайта:</br> <select size="1" name="kategoria"> <option value='0'> <option value='1'>Аппаратное обеспечение <option value='2'>Программное обеспечение <option value='3'>Интернет <option value='4'>Мобильная связь <option value='5'>Сети <option value='6'>Безопасность <option value='7'>Игры <option value='8'>Ремонт и обслуживание <option value='9'>Интернет-магазины </select> <p>Адрес сайта (без http и www)</br><input name='url' type='text' value='<?php echo $url; ?>'></p> <p>Название сайта (не более 40 символов)<br><input name='name' type='text' value="<?php echo $name; ?>"></p> <p>Описание сайта (не более 500 символов)<br><textarea name='description' rows='4' value="<?php echo $description; ?>"></textarea> <p>Ваше имя<br><input name='author' type='text' value="<?php echo $author; ?>"></p> <p>Ваш email (не публикуется)<br><input name='email' type='text' value="<?php echo $email; ?>"></p> <p>Я согласен с <a href="order.php">правилами каталога</a> <input type="checkbox" name="order"></p> <p> Математический результат: <?php echo $random; ?> + <img src="images/capcha/<?php echo $random_img; ?>.png">= <input name='capcha' type='text' class="capcha"> </p> <p style="text-align: center;"><input name='submit' type='submit' value='Добавить'></p> </form> <?php }
(Отредактировано автором: 16 Октября, 2015 - 15:54:19)
|