Список форумов Шадринский форум -> Программирование -> PHP, PERL, HTML, CSS etc -> защита от роботов
Начать новую тему   Ответить на тему   вывод темы на печать

защита от роботов

Автор
Сообщение
Minya
птиСа


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3612
Откуда: я... мня... меня тошнит! тошнит ото всего на свете...

Статус: Offline
СообщениеДобавлено: 2006.05.10 10:09.58
Ответить с цитатой
вобщем генерироваться должно изображение! с цифрами, буквами, помехами и пр.

<?
session_start();

if(isset($_POST['spam'])) {
if(isset($_SESSION['scrt1'])){$secret = $_SESSION['scrt1'];}
else {die("ошибка сессии");};
if(isset($_SESSION['scrt2'])){$secret .= $_SESSION['scrt2'];}
else {die("ошибка сессии");};
if(isset($_SESSION['scrt3'])){$secret .= $_SESSION['scrt3'];}
else {die("ошибка сессии");};
if(isset($_SESSION['scrt4'])){$secret .= $_SESSION['scrt4'];}
else {die("ошибка сессии");};
unset($_SESSION['scrt1']); unset($_SESSION['scrt2']);
unset($_SESSION['scrt3']); unset($_SESSION['scrt4']);
};
$numbers = array('1', '2', '3', '4', '5', '6', '7', '8', '9');
$big_letters = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'j',
'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
$little_letters = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'p', 'q', 'r', 't', 'u', 'v', 'w', 'x', 'y', 'z');
$big_array = array_merge($numbers);

$_SESSION['scrt1'] = $big_array[rand(0, count($big_array)-1)];
$_SESSION['scrt2'] = $big_array[rand(0, count($big_array)-1)];
$_SESSION['scrt3'] = $big_array[rand(0, count($big_array)-1)];
$_SESSION['scrt4'] = $big_array[rand(0, count($big_array)-1)];

session_start();

if(isset($_SESSION['scrt1']))
{ $secret[1] = $_SESSION['scrt1']; } else {exit;};
if(isset($_SESSION['scrt2']))
{ $secret[2] = $_SESSION['scrt2']; } else {exit;};
if(isset($_SESSION['scrt3']))
{ $secret[3] = $_SESSION['scrt3']; } else {exit;};
if(isset($_SESSION['scrt4']))
{ $secret[4] = $_SESSION['scrt4']; } else {exit;};

$image = ImageCreate(200, 75);

$background_color = ImageColorAllocate($image, rand(239, 250),
rand(230, 250), rand(230, 250));

$x = 0; $num = 0;

$font[1] = ("4.ttf");
$font[2] = ("5.ttf");
$font[3] = ("6.ttf");

$gird = imagecolorallocate($image, rand(150, 200),
rand(150, 200), rand(150, 200));
for ($i=0; $i<=200; $i+=10) imageline( $image, $i, 0,$i, 75, $gird);
for ($i=0; $i<=75; $i+=10) imageline( $image, 0, $i, 200, $i, $gird);

do{
$color = ImageColorAllocate($image, rand(0, 200), rand(0, 200), rand(0, 200));
$x = abs($x + rand(30, 50)); $y = rand(40, 65); $num++; $rotate = rand(-20, 20);
ImageTTFText($image, rand(25, 50), $rotate, $x, $y, $color,
$font[rand(1, 3)], $secret[$num]); } while ($num < 4);

$noise = imagecolorallocate($image, rand(0, 200), rand(0, 200), rand(0, 200));

for ($i=0; $i<5; $i++)
imageline($image, rand(0, 200), rand(0, 75), rand(0, 100), rand(0, 75), $noise);

header('Content-type: image/gif');
ImageGIF($image);

?>


в результате Fatal error: Call to undefined function: imagegif() in ... on line 74

т.е. в последней строке!
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2006.05.10 10:11.44
Ответить с цитатой
юзай imagepng
т.к. создание гиф-ок не везде поддерживается
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Minya
птиСа


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3612
Откуда: я... мня... меня тошнит! тошнит ото всего на свете...

Статус: Offline
СообщениеДобавлено: 2006.05.10 11:03.19
Ответить с цитатой
спасибо! работает!
у себя всё нормально! кроме того что не генерируется раз через пять
на хостинге: Fatal error: Call to undefined function: imagettftext()
шрифт один - Arial (Open Type)
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора ICQ Number
Minya
птиСа


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3612
Откуда: я... мня... меня тошнит! тошнит ото всего на свете...

Статус: Offline
СообщениеДобавлено: 2006.05.10 11:05.44
Ответить с цитатой
кстати после ввода цифр всё равно выводится сообщение о неправильности ввода

<? $image_patch = "file.php";
if(defined('SID') && (! isset($_COOKIE[session_name()]))) {
$image_patch .= '?'.SID; };
?>

<img src="<? print $image_patch; ?>" alt="защита от роботов"
name="spam" width="200" height="75" id="spam" />
<input name="spam" type="text" class="spam" id="spam"
size="12" maxlength="4" />
<input type="submit" value="Отправить" /><br>

<? if (! $secret == $_POST["spam"] )
die("Вы непраильно ввели текст с изображения"); ?>
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2006.05.10 11:13.39
Ответить с цитатой
Minya писал(а):
imagettftext()
значит нет такой функции на хостинге. 33738
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Minya
птиСа


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3612
Откуда: я... мня... меня тошнит! тошнит ото всего на свете...

Статус: Offline
СообщениеДобавлено: 2006.05.19 14:20.10
Ответить с цитатой
блин, а есть какая-нибудь подобная функция ?
а то у вебмастера почту отключили
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора ICQ Number
Brain
Писатель


Пол: Пол:Муж.
Зарегистрирован: 01.12.2004
Сообщения: 357


Статус: Offline
СообщениеДобавлено: 2006.05.23 11:48.58
Ответить с цитатой
Minya писал(а):
блин, а есть какая-нибудь подобная функция ?


int imagestring (resource image, int font, int x, int y, string s, int col)
прорисовывает строку горизонтально
Посмотреть профиль Отправить личное сообщение
Страница 1 из 1
Начать новую тему   Ответить на тему   вывод темы на печать
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> PHP, PERL, HTML, CSS etc -> защита от роботов

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы