WeBinstruments

Инструментарий для веб-мастеров

 

на сайте на всех сайтах для веб разработчиков везде
 
 Скрипты
  PHP скрипты   
  Flash скрипты   
  Javascript скрипты   

 Софт
  Инструменты SEO   
  Разработка сайтов   
  Серверное ПО   

 Документация
  MySQL   
  PHP   
  HTML   
  Протоколы и сервисы Internet   

 Статьи
  PHP   
  MySQL   
  Сервер   
  еще...   

 Услуги и сервисы
  Домены   
  Хостинги   
  Блоки для сайта   

 Новости


 Контакты
  icq: 158325531
  email:
  все контакты: здесь




Atom все поступления
Раздел Файлы
Раздел Услуги и сервисы
Раздел Новости
Раздел Статьи
комментарии



 Партнеры


Главная / Файлы / Скрипты и Flash / PHP скрипты / Функции и классы / Защита форм от спама картинкой


Защита форм от спама картинкой

15.12.2007

скачать 16.zip php функция внутри архива


Универсальная функция защиты форм от спама с помощью кода, изображенного на картинке.
Данная функция способна создавать изображения без использования GD и с использованием GD, по вашему выбору.
Хранение кода в сессиях, базе или файлах.


Для начала работы нужно настроить функцию. Открывайте файл confirm_f.php и внутри функции редактируйте следующие переменные:
$_conf['variant']="file"; // (sess, file, mysql) один из трех варинтов хранения кода (сессии, файл, или база mysql)
$_conf['type_pict']=2; // тип создания картинки (1-phpbb не использует gd, 2-использует gd)
$_conf['only_num']=1; // (1 или 0) код содержит только цифры-1 или цифры с буквами-0
$_conf['pach_file']="c:/Program Files/Apache Group/Apache/htdocs/"; // если выбрано хранение кода в файле, указываем путь к папке, где будут храниться файлы с кодами
$_conf['sess_name']="webi_code"; // если выбрано хранение кода в сессии, укажите имя переменной сессии
Если выберите хранение в базе, отредактируйте данные для соединения с базой и создайте таблицу

CREATE TABLE `webi_pict_code` (
`md5` varchar(50) NOT NULL default '',
`code` varchar(30) NOT NULL default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`md5`) );
Картинка с кодом вызывается так
<img src="confirm_f.php?webi_code=1"> Чтобы вставить в форму картинку и поле для ввода кода, примерно можно сделать так
<input type=text name=code value="" size=16 maxlength=100><br>
<img src="confirm_f.php?webi_code=1">
Вам могут не понравится размеры создаваемых картинок, поэтому можете менять размер прямо внутри тега <img ...

Теперь проверка кода.
В том месте, где вы принимаете данные из формы вставляйте файл confirm_f.php и вызывайте функцию на проверку, вот так
<?
include("confirm_f.php");
if(
webi_confirm_pict("confirm", $_POST['code'])) // код введен вверно
else // код введен не верно
?>
Функция webi_confirm_pict("confirm", $_POST['code']) обязательно должна вызываться с параметром "confirm"
$_POST['code'] в данном примере это код, введенный форме. Тут может быть любая ваша переменная, которая приходит из формы с кодом.
Просто в моем примере для ввода кода я использовал имя code, поэтому и тут я использовал эту же переменную.
Данная функция возвращает true или false.
Если выберите тип хранения кода в файлах, тогда вам предется чистить время от времени папку, где создаются файлы с кодами.
Так как при создании кода не всегда он будет удаляться, какой-то посетитель возможно не захочет добавлять ничего, и файл с кодом так и останется лежать в папке.
Можете добавить какой то скрипт, по удалению старых файлов, а можете раз в месяц заходить и руками удалять накопившиеся файлы.
Делать автоматическое удаление старых файлов в функции я не стал делать, так как по невнимательности можно случайно поудалять все нужные файлы.

Так же читайте статью Как защить форму от спама с помощью кода на картинке




Комментарии

RSS комментарии


17.12.2007 +1
re



20.12.2007 Вано
Не ожидал.
Достаточно просто установил, настроил и работает же...



12.01.2008 PitS_1
Спасибо за "сырец".
IMHO стоит передавать/сравнивать не сам код, а его MD5



13.01.2008 админ
Какой смысл передавать/сравнивать md5?
Код хранится на сервере и доступен только скрипту.
В самой форме кодов нет, только введенный посетителем.



29.01.2008 roknsev
Парни а обязательно эта капча дожна работать на БД можно ли как то переделать что бы не использовать БазуДаных. Ответ жду на roknsev@rambler.ru



07.02.2008 вано
Она может работать с базой, с сессиями или файлами.
Любой из трех вариантов.



01.03.2008 vatson.01
Такую каптчу "разкодирует" даже самый простой бот ))) http://sam.zoy.org/pwntcha/



24.12.2008 светик
ну возможно...



29.01.2009 cntgfy
Респект и уважуха. Спасибо.
Отлично прикрутился.




15.06.2009 ага
для md5 хватит 32 символов



25.10.2009
У меня не проверяет картинку



26.10.2009 сика12
Быть это не может.
Что то не так сделали.




14.11.2014 лисёнок
хм...спамим



14.11.2014 соник икс
у меня комп спамит



Добавить свой комментарий


Ваше имя(* обязательно)


Текст сообщения(* обязательно)









 
 
  запомнить

 
Copyright © 2003-2024 WeBi Constructor
Rambler's Top100