<?
function rrb(){
srand((double) microtime()*1000000);
$random=rand();
$path="random.dat";
$base=fopen($path,"w+") or die("Error!!! write to file");
$random=strip_tags($random);
fputs($base, "$random");
fclose($base);
return $random;
}
function htmlcolor($img,$color){
sscanf($color, "%2x%2x%2x", $red, $green, $blue);
return ImageColorAllocate($img,$red,$green,$blue);
return($c);
}
$FONT=4;
$font_w=ImageFontWidth($FONT);
$font_h=ImageFontHeight($FONT);
$dx=1;
$dy=0;
$text=rrb();
header ("Content-type: image/png");
#$im=imagecreatetruecolor(60, 15);
$im=imagecreate(60,15);
#$ink=imagecolorallocate($im, 255, 255, 200);
$ink=htmlcolor($im,"D6D3D6");
$color_t=imagecolorallocate($im, 0, 0, 0);
ImageString($im, $FONT, $dx, $dy, $text, $color_t);
imagepng($im);
imagedestroy($im);
?>
Как защитить свою обратную связь
Или что бы нельзя отсылать подряд несколько сообщений, только через определенное время, как на rapidshare !
Благодарю Вас за поддержку !
1)Про "ввод символов с картинки" почитай здесь: http://www.captcha.ru/
2)Защиту от нескольких сообщений подряд можно сделать по-разному. Например, проверяя IP клиентской машины.
Цитата:
Или что бы нельзя отсылать подряд несколько сообщений, только через определенное время, как на rapidshare !
Записывай IP отправителя, сверяй, если не прошел таймаут - кикай :)
IP передается в $_SERVER['REMOTE_ADDR']
В случае с картинками необходим скрипт генерации того самого текста, с пляжа приду, может чего кину.
Написал через if? если символы совпадают с картинки от письмо отправляется!
А с генерацией самой картинки и способом хранения строчного представления изображения (строки для ввода) проблем не возникает?
Впрочем, как порекомендовал shine, ознакомься с готовыми решениями на http://www.captcha.ru/
я реализоувал так (паламерски но пашет):
Это довольно неразумно. Теперь представь, что если двое будут одновременно писать комменты (использовать капчу)?
:) Типа не станет ли файлику "не по себе" при одновременном обращении на запись?
Мне лично религия вполне позволяет использовать для этих целей БД, чего и всем рекомендую... хотя многим может показаться нерациональным.
Цитата: shaelf
Это довольно неразумно. Теперь представь, что если двое будут одновременно писать комменты (использовать капчу)?
это да.... но тока тогда падумал об этом когда уже написал :) да и писал это для локалки - так что вероятность одновременного использования пользователями была невелика, поэтому так и оставил.....
1. Пользователь видит код (при этом код уже записан в файл).
2. Заходит второй пользователь.
3. Код в файлике переписывается.
4. Первый пользователь идёт лесом, т.к. код останется неверным в любом случае.
Если взять средние 2 минуты на заполнение, да ещё прибавить на прочтение материала (в некоторых случаях), то интервал этого "одновременно" может доходить до 20 минут.
Странная система.
Я бы записывал в файлик пары, например - уникальный хэш и строковое значение картинки, юзверю в браузер давал бы картинку и хэш-значение (в скрытом поле), далее само собой по отправке искать в файле строковое представление картинки соответствующее отправленному в скрытом поле значению, сравнивать с тем, что ввел пользователь... ну и.т.д. вообщем.
Для себя так и делаю, только, как уже говорил юзаю БД.
Хотя, зачем в обратной связи такой изврат как картинки с циферками? Банально проверка по IP, не более 1 сообщения в 15 минут.