[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод случайной картинки или Защита от ботов
Mastodont
Какими функциями следует воспользоваться, чтобы создать для Гостевой книги (или чего-то *цензура*ожего) защиту от ботов путем требования от пользователя ввести код, показанный на картинке?



Спустя 13 дней, 14 минут, 46 секунд (15.10.2006 - 18:45) white phoenix написал(а):

Спустя 8 дней, 19 часов, 36 минут, 57 секунд (24.10.2006 - 14:22) REZISTOR написал(а):
Привет всем можно напивать такой код и без никакой графической библиотеки привожу ниже исходник написан мной и он работет на моём сайте <br>
 
<?php
$r1=rand(1,1000000);
$r2=rand(1,1000000);
$r3=rand(1,1000000);
$r4=rand(1,1000000);
if($r2<100)
{
$r2=rand(1,1000000);
};
if($r3<1000)
{
$r3=rand(1,1000000);
};
if($r4<10000)
{
$r4=rand(1,999999);
};
$vuvod1=substr($r1,0,1);
$vuvod2=substr($r2,1,1);
$vuvod3=substr($r3,2,1);
$vuvod4=substr($r4,4,1);
$fon=rand(21,26);
print <<<here
<center><table width="203" height="66" border="0" cellpadding="1" cellspacing="1">
  <tr>
    <td width="195" height="62" bordercolor="black" border="0" background="img_new/$fon.JPG">&nbsp;
// если вы хотите чтобы цыфры выводились на каком то фоне то создайте рисунки фонов и назовите их от //21.jpg до 25.jpg 
<img src="img_new/$vuvod1.gif">
<img src="img_new/$vuvod2.gif">
<img src="img_new/$vuvod3.gif">
<img src="img_new/$vuvod4.gif">
//если у вас изображения цыфр в формате не gif a jpg то в 4 строках выше поменяйте разширение на jpg 
<input type="hidden"  name="kod" value="$vuvod1$vuvod2$vuvod3$vuvod4">
   </td>
  </tr>
</table></center>
here;
microtime();
?>
 

для работы скрипта необходиммо в файл с скриптом добавить рисунки цыфр
соотвестсвенно цыфру один назвать -- 1.jpg два -- 2.jpg (в моём случае это gif)
где их взять ?? или напишите мне на мыло я вам их вышлю или гугл

Спустя 14 минут, 12 секунд (24.10.2006 - 14:36) md5 написал(а):
а почему бы не открыть исходник страницы, в частности формы (Ctrl + U) и прочитать спрятанное поле kod в котором и есть искомая цифра?

Спустя 50 минут, 18 секунд (24.10.2006 - 15:26) Gandjubas написал(а):
QUOTE(md5)
а почему бы не открыть исходник страницы, в частности формы (Ctrl + U) и прочитать спрятанное поле kod в котором и есть искомая цифра?

робот не может смотреть исходник!
вернее не может адекватно интерпритировать содержание, за исключением того, чему он научен (субмит, текстарея, name, value и т.п.)
Кстати, у меня на гостевой (роботы меня уже зае...) я не делал картинок, а просто текстом объяснил какие цифры надо вводить! Если роботы взломают число - переделаю! Кстати, они мне так счётчик накручивают!!!
В общем, не хило!

Спустя 17 часов, 39 минут, 39 секунд (25.10.2006 - 09:06) md5 написал(а):
а почему бы роботу не искать в странице скрытые поля с именами по ключ. слову kod, code и т.д.?

Спустя 6 часов, 32 минуты, 49 секунд (25.10.2006 - 15:39) REZISTOR написал(а):
Дык можно єти числа не обязательно в скрытое поле втюхивать можно и сразу в пост переменную или еще куда то додуматься я просто пример навёл я не сказал что єто идеал или так должно быть

Спустя 9 минут, 6 секунд (25.10.2006 - 15:48) md5 написал(а):
QUOTE
сразу в пост переменную

всмысле?

Спустя 34 минуты, 23 секунды (25.10.2006 - 16:22) REZISTOR написал(а):
ну с пост переменно й я не знаю как но по наслышке слышал что как то регистрируеться переменная и в неё можно загнать значение и поставить время жизни переменной (но не через сессии)<br>Вот как я только что придумал<br><br>
 
....  продолжение кода
   <td width="195" height="62" bordercolor="black" border="0" background="img_new/$fon.JPG">&nbsp;
// если вы хотите чтобы цыфры выводились на каком то фоне то создайте рисунки фонов и назовите их от //21.jpg до 25.jpg 
<img src="img_new/$vuvod1.gif">
<img src="img_new/$vuvod2.gif">
<img src="img_new/$vuvod3.gif">
<img src="img_new/$vuvod4.gif">
//если у вас изображения цыфр в формате не gif a jpg то в 4 строках выше поменяйте разширение на jpg 
$kod_md="$vuvod1$vuvod2$vuvod3$vuvod4";
$kod_md=md5($kod_md);
<input type="hidden"  name="kod" value="$kod_md">
   </td>
  </tr>
</table></center>
here;
microtime();
?>
 


потом когда проверяем правильность ввода пользователя еще рас кодируем пользовательский код в md5 и сравниваем значение с тем что мы получили с скрытого поля а потом
 
if($user_kod==$_POST['$kod_md'])
{
print"всё ок вы ввели правильный код";
}
else
{
print">>>>> идите пожалуйста лесом";
};
 

Спустя 28 минут, 10 секунд (25.10.2006 - 16:50) md5 написал(а):
обычно пихают в сессию..<br>
$_SESSION['f_ckincode'] = 'AOhgsv78';


но про md5 тоже вариант конечно...

Спустя 4 года, 7 месяцев, 23 дня, 19 часов, 34 минуты, 29 секунд (19.06.2011 - 12:25) B.A.R.B.O.S.S.A написал(а):
а можно готовый вариант архивчиком?
можно даже без картинок


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.