Делаем защиту от спама и флуда на 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(”image.gif”);
Header(”Content-type:image/gif”);
$color=ImageColorAllocate($pic, 0, 0, 0);
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(’flashripper@yandex.ru’,"FlashRipper.Net’,$_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 и найти там строчку
$pic = ImageCreateFromgif(”image.gif”);
Header(”Content-type:image/gif”);
И соответственно поменять на нужные вам параметры
image.gif - название файла
image/gif - поменяйте только второе значение
Не забудьте картинке тоже поставьте CHMOD 777 или 0777
В этом примере вместо gif файла у меня png файл:
$pic = ImageCreateFromgif(”image.png”);
Header(”Content-type:image/png”);
Дополнительно:
Делаем открытие нового окна(popup) с нужным размером с помощью JS+Html
Например, вам нужно вывести информацию об авторских правах или еще что-то, и показать данную информацию надо в маленьком окошечки, которое будет с нужным вам размером. Пример можно посмотреть тут.Для начала создадим файл index.htm и вставьте в него следую ...

Скрипт формы отправки сообщения на e-mail с сайта v1.1 Скрипт формы отправки сообщения на e-mail с сайта v1.1
В данной версии были исправлены ошибки, которые были допущены в версии 1.0, а именно такие как:Проблемы с кодировкой, в некоторых броузерах отображалось места текста квадратикиПапки examples больше нету, она теперь называется forma(вы можете ее назвать ка ...

Подсветка кода с помощью стандартной функции PHP
Во многих WEB приложениях требуется подсветить php код, такая задача возникает при динамическом отображении php скриптов на странице сайта, в форумам посвящённых php и.т.п. Подсветка осуществляется при помощи стандартной функции php:highlight_string()Итак ...

Делаем редирект на Html+JS
Если вам нужно переместить пользователя с одной страницы на другую, то прочитать как это сделать можно в этой статье. Пример выполнения данного скрипта вы можете посмотреть здесь.Для начала, создайте файл index.htm и вставьте в него следующий код:<html ...

Загрузка файлов на сервер с помощью PHP
Если вам нужна форма для загрузки файлов с компьютера к себе на сервер, то этот урок(пример) для вас. Создайте файл index.php и вставьте в него следующий код:<?$path=GetCWD().”/files”;if(!file_exists($path))die(”<b>Пожалуйста, с ...