Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита формы от роботов
 
 автор: slnr   (05.04.2008 в 12:21)   письмо автору
 
 

Подскажите пожалуйста как сделать картинку с генерирующимися буквами и цифрами для формы? или где можно прочитать про это?
Спасибо

   
 
 автор: Max Vasin   (05.04.2008 в 12:29)   письмо автору
 
   для: slnr   (05.04.2008 в 12:21)
 

ключевое слово для поиска "captcha"))


----
Regards, Max Vasin.

   
 
 автор: ReZiStOr   (05.04.2008 в 13:33)   письмо автору
 
   для: Max Vasin   (05.04.2008 в 12:29)
 

делаешь картинки цыфр от 1 до 0 и генерируешь функцией rand случаййное 4-х значное число после этого присваиваешь цыфре 1 картинку с цыфрой 1 и т д
Выводишь все в 1 ряд

   
 
 автор: webwizard   (05.04.2008 в 13:50)   письмо автору
 
   для: ReZiStOr   (05.04.2008 в 13:33)
 

Можно поступить следующим образом:

нарисовать (ф corele) несколько картинок с цифровыми кодами и использовать код

   
<?php      
         $rand_key 
= array("8642","9753","1086") - числасоответствующие цифрам на картинке;
         
$imag_key = array("8642","9753","1086") - название файла картинки (8642.jpg);
        (
значени двух переменных $rand_key и  $imag_key должны совпадать)
         
$rand rand(0,7);
         
$rnd $rand_key[$rand];
         
$ima $imag_key[$rand];
?>


а вот форма.....


<?php
<form method=post action=script.php>
echo 
"
Введите код:
<img src='secret/
$ima.png' align='middle' width = 62 height = 31 border = 0> <br>

<input type = hidden name = 'rand' value = '
$rnd'>
<input type='text' name ='num' size = 4 maxlength = 4 class = 'edit'>
</form>"
;
?>


В обработчике формы script.php стоит проверять условие:

       
<?php
 $num 
$_POST['num'];
        
$rand $_POST['rand'];

     if (empty(
$num))
      {
         echo 
"<center>
              <font color = 'blue' size = '3' face = 'Tahoma'>
              поле <b>Введите код</b> осталось пустым! Это недопустимо.
              </font>
              </center>"
;
      }

     else
     if (
$num != $rand)
      {
         echo 
"<center>
              <font color = 'blue' size = '3' face = 'Tahoma'>
              <b>Код на картинке не совпадает с введённым Вами</b>! Это недопустимо.
              </font>
              </center>"
;
      }
?>

   
 
 автор: ReZiStOr   (05.04.2008 в 13:54)   письмо автору
 
   для: webwizard   (05.04.2008 в 13:50)
 

Это будет тупо надо на 100 кодов 100 картинок рисовать а в варианте тот что я написал только 10 цыфр а еффект тот же

   
 
 автор: webwizard   (05.04.2008 в 13:59)   письмо автору
 
   для: ReZiStOr   (05.04.2008 в 13:54)
 

Всё верно, Вы говорите, я привёл лишь пример, который отличается от Вашего. К тому же я показал как это практически реализовать.

Я думаю, что от этого будет больше пользы для начинающего, чем теоретические рассуждения

   
 
 автор: slnr   (05.04.2008 в 14:19)   письмо автору
 
   для: webwizard   (05.04.2008 в 13:59)
 

Спасибо огромное

   
 
 автор: mihdan   (05.04.2008 в 20:18)   письмо автору
 
   для: slnr   (05.04.2008 в 12:21)
 

http://www.captcha.ru/

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования