Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Форма с защитой от спама на PHP

Пример по созданию формы отправки письма(обратная связь) с антиспамом, каждый раз на картинке будет выводится новое число. Пока пользователь не введёт цифры в поле, которые написаны на картинке письмо не будет отправлено вам на почтовый ящик.

Создайте файл code.php, который будет генерировать число, которое пользователю нужно будет ввести в поле. И вставьте в него следующий код:


<?php
Header
("Pragma: no-cache");
$fp fopen('code.txt','w');
fclose($fp);
$fp fopen('code.txt','a');
$code="";
for (
$i=1;$i<5;$i++)

fwrite($fp,mt_rand(0,9));
fclose($fp);
$fp fopen('code.txt','r');
$code fread($fp,4);
fclose($fp);
$pic ImageCreateFromgif(dirname(__FILE__) . "/antispam.gif");
Header("Content-type: image/gif");
$color=ImageColorAllocate($pic000);
ImageString($pic,5,70,60,$code,$color);

Imagegif($pic);
ImageDestroy($pic);
?>
Скопировать в буфер

Затем создайте файл code.txt в который будет записываться и читаться код. В него ничего не надо вставлять. Когда загрузите его к себе на сервер поставьте ему CHMOD 777 или 0777.
После этого нам нужна форма из, которой будет происходить отправка письма на e-mail, для этого создайте файл, например: antispam2.php и вставьте в него следующий код:


<?php
Header
("Pragma: no-cache");
echo 
"<form action=antispam2.php method=POST>";

echo 
"<textarea rows=4 cols=40 name=message>Текст письма</textarea>";
echo 
"<p><img src=code.php><p>";
echo 
"Введите цифры с картинки: <input type=text value='0000? name=code><p>";

echo 
'<p><input type=\'submit\'>';
echo 
'</form>';
if (isset(
$_POST['message']))
{
$fp fopen('code.txt','r');
$realcode fread($fp,4);

fclose($fp);
if (
$_POST['code'] === $realcode)
{
mail('admin@yandex.ru','yandex.ru',$_POST['message']);
echo 
"Ваше письмо было успешно отправлено";
$fp fopen('code.txt','w');
for (
$i=1;$i<5;$i++)
fwrite($fp,mt_rand(0,9));

fclose($fp);
}
else
echo 
"<br>Неверный код!<br>";
}
?>
Скопировать в буфер

Осталось только вставить изображение на котором будет выводится код. Я взял вот такое изображение(первое попавшиеся мне под руку), взять его можно здесь. Изображение должно быть с расширением gif, если вам нужно другое расширение или название, вам нужно открыть файл code.php и найти там строчку


<?php
$pic 
ImageCreateFromgif("antispam.gif");
Header("Content-type: image/gif");
?>
Скопировать в буфер

И соответственно поменять на нужные вам параметры
antispam.gif - название файла
image/gif - поменяйте только второе значение
Не забудьте картинке тоже поставьте CHMOD 777 или 0777
В этом примере вместо gif файла у меня png файл:


<?php
$pic 
ImageCreateFromPNG("image.png");
Header("Content-type: image/png");
?>
Скопировать в буфер
квартира на сутки, жилье.
скачать ключи к nod32

© Copyright 2008-2012 by KDG