X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Каптча
Mishko_hb
Mishko_hb
Topic Starter сообщение 22.9.2010, 15:23; Ответить: Mishko_hb
Сообщение #1


Срочно нужен работающий скрипт каптчи. Без всяких наворотов. Перерыл много всяких вариантов, но все не то, слишком сложно. Хотелось бы скрипт, который поставил и все. Некогда разбираться, нужно срочно поставить хоть какую-то защиту.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
jeka5555
jeka5555
сообщение 22.9.2010, 17:57; Ответить: jeka5555
Сообщение #2


(Mishko_hb @ 22.9.2010, 18:23) *
Срочно нужен работающий скрипт каптчи. Без всяких наворотов. Перерыл много всяких вариантов, но все не то, слишком сложно. Хотелось бы скрипт, который поставил и все. Некогда разбираться, нужно срочно поставить хоть какую-то защиту.

Всегда использую этот скрипт http://www.dmtsoft.ru/bn/428/as/oneaticleshablon/ , а именно http://dmtsoft.ru/cgi-bin/freedownloader.p..._code=254026515 . Ставится за 3 минуты (при наличии рук). ;)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
Arks
сообщение 22.9.2010, 18:38; Ответить: Arks
Сообщение #3


re-captcha
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mishko_hb
Mishko_hb
Topic Starter сообщение 30.9.2010, 16:22; Ответить: Mishko_hb
Сообщение #4


jeka5555,не подскажите, как ее установить?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
unnormal
unnormal
сообщение 30.9.2010, 17:47; Ответить: unnormal
Сообщение #5


captcha.php
[PHP]<?
session_start();

$_SESSION["captcha"] = substr(str_shuffle("0123456789"), 0, 5);

$width = 81;
$height = 21;
$code = $_SESSION["captcha"];

$img = imagecreatetruecolor($width, $height);
$fon = imagecolorallocate($img, 255, 255, 255);
$color = imagecolorallocate($img, 120, 120, 120);
imagefill($img, 0, 0, $fon);

for ($x=0; $x<=$width; $x++)
{
for($y=0; $y<=$height; $y++)
{
if ($y % 5 == 0)
imagesetpixel($img, $x, $y, $color);
if ($x % 5 == 0)
imagesetpixel($img, $x, $y, $color);
}
}

for($i=0; $i < strlen($code); $i++)
{
$textcolor = imagecolorallocate($img, 0, 0, 0);
$y_rand = rand(-3, 3);
imagestring($img, 7, 24+$i*7, 3+$y_rand, substr($code, $i, 1), $textcolor);
}

header("Content-Type: image/jpeg");
imagejpeg($img);
?>[/PHP]

<img src="captcha.php" />
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
logind
logind
сообщение 2.10.2010, 1:34; Ответить: logind
Сообщение #6


Нашёл простую:
[PHP]
<?php
session_start();
define('captchaINC','../capcha/res/'); // директория с необходимыми ресурсами: фон и шрифты
define('captchaURL','http://localhost/images/capcha/'); // web url где храним картинки
define('captchaDIR','../images/capcha/'); // директория, куда складываем капча... на неё должен ссылаться captchaURL

function askhttpd_captcha($numletters=5,$fontsize=20)
{
$captcha_string=captcha_string($numletters); // Количество символов в коде
$captcha_bgfile=captchaINC.'n.png'; // Путь . имя_файла фона изодражения PNG
$captcha_filename='askhttpd-'.rand(1111,999999).'.jpg'; // Имя файла капчи
$captcha_file=captchaDIR.$captcha_filename; // Полный путь к капче
$captcha_url=captchaURL.$captcha_filename; // Веб адрес картинки капчи
$rgb[0]=array(204,0,0); // Массив цветов символов
$rgb[1]=array(34,136,0);
$rgb[2]=array(51,102,204);
$rgb[3]=array(141,214,210);
$rgb[4]=array(214,141,205);
$rgb[5]=array(100,138,204);

// Создаём копию изображение из PNG-файла
$image=imagecreatefrompng($captcha_bgfile);

// сохраняем md5-код капчи
$_SESSION['askhttpd_captcha'] = md5($captcha_string);

// символы в картинку
$g=5; // отступ слева
for( $i=0; $i<$numletters; $i++ )
{
$L[]=substr( $captcha_string, $i, 1); // берём один $i-ый символ из строки
$A[]=rand( -20, 20 ); // случайный угол от -20 до 20 градусов
$F[]=captchaINC.rand(1, 10).".ttf"; // случайный шрифт 1,10
$C[]=rand(0, 5); // случайный цвет (потом берём из массива rgb)
$T[]=imagecolorallocate($image,$rgb[$C[$i]][0],$rgb[$C[$i]][1],$rgb[$C[$i]][2]); // состовляющие цвета из массива
imagettftext($image, $fontsize, $A[$i], $g, $fontsize+5, $T[$i], $F[$i], $L[$i]); // рисуем символ на картинке
$g+=$fontsize+10; // интервал между символами
}

// сохраняем jpeg изображение в в директорию (captchaDIR + capcha_filename)
imagejpeg($image, $captcha_file, 75);

// Сохраним данные для img-тега
$_SESSION['httpd_captcha'] = $captcha_file;

// Чистим память
imagedestroy($image);

// delete all captcha images at 12 and 3 oclock if more than 100 are found
$dt=date('g');
if(($dt==12)||($dt=='12'))captcha_cleanup();
else if(($dt==3)||($dt=='3'))captcha_cleanup();
}

function captcha_cleanup()
{
$files=glob(captchaDIR."httpd*.jpg");
if ( sizeof($files) > 100 )
{
foreach ($files as $filename)
{
if ( $filename != $captcha_filename )
{
unlink($filename);
//echo $filename . " size " . filesize($filename) . "\n";
}
}
}
}

function captcha_string($len)
{
$str='';
for($i=1; $i<=$len; $i++)
{
$ord=rand(48, 57); // Диапазон кодов символов (ТОЛЬКО ЦИФРЫ).
if((($ord >= 48) && ($ord <= 57)) || (($ord >= 65) && ($ord<= 90))) $str.=chr($ord);
else $str.=captcha_string(1);
}
return $str;
}
?>
[/PHP]
Демо: http://www.sv-star.com/new_user_form.php#capcha
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mishko_hb
Mishko_hb
Topic Starter сообщение 8.10.2010, 12:41; Ответить: Mishko_hb
Сообщение #7


logind,Это код файла captcha.php? А как саму картинку вставить? И где картинки брать для директории "capcha/res/"? Как ее установить??
Помогите ((
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
logind
logind
сообщение 29.11.2010, 16:02; Ответить: logind
Сообщение #8


(Mishko_hb @ 8.10.2010, 15:41) *
logind,Это код файла captcha.php? А как саму картинку вставить? И где картинки брать для директории "capcha/res/"? Как ее установить??
Помогите ((

capcha/res/ - это директория в которой лежат 10-шрифтов и картинка фона. Соответственно она может лежать где угодно (на сервере).

В главной директории, есть папка - capcha. В неё пишешь скрипт, что я дал (без изменений). И создаёшь ещё папку - res, в которую кидаешь 10-ть ttf-шрифтов и фоновую картинку для твоей капчи.
Скрипт includ-ишь к себе, вызывая функцию "askhttpd_captcha" у тебя в директории "/images/capcha/" url: "http://твой_hostname/images/capcha/" создаётся картинка с изображением, а в $_SESSION['httpd_captcha'] имя файла (картинки) и в $_SESSION['askhttpd_captcha'] передаётся md5 хеш правильного кода.

ЗЫ: Если не понятно, пиши - договоримся :)
ЗЫЫ: Если совсем непонятно, то
скрипт от unnormal проще, а эффект тот-же.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
www3_hb
www3_hb
сообщение 29.11.2010, 16:56; Ответить: www3_hb
Сообщение #9


Скачиваем вот этот шрифт http://www.xfont.ru/font/шрифт_AddictRegular_928.htm можно любой другой
В вложениях есть 3 картинки это фоны для будущих картинок их ложин в туже папку где и шрифт
capcha.php
[PHP]<?php
//Запускаем сессию
session_start();
//Создаем изображение из 3-х возможных подложек
$im=ImageCreateFromJpeg(round(mt_rand(1,3)).".jpg");
//Генерируем цвет надписи
$color=ImageColorAllocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
//Формируем надпись, используя шрифт
ImageTtfText($im, 23, mt_rand(-5,5), 3, 30, $color, "addict.ttf", $_SESSION['uid']);
//Указываем тип содержимого
Header("Content-type: image/jpeg");
//Создаем и выводим изображение
ImageJpeg($im);
//Разрушаем изображение
ImageDestroy($im);
?>[/PHP]
и теперь создаем любой документ я назову его index.php и там генерируем
[PHP]
session_start();
//если есть сессия то удаляем её и создаем уникальный шифр для капчи
if(!$_SESSION['uid']){ unset($_SESSION["uid"]);}else{$_SESSION['uid'] = mt_rand(100000,999999);}
//и теперь вызываем
echo '<img src="./img(тут пишите свою папку где нходится файл capcha.php)/capcha.php?sid='.$_SESSION['uid'].'">';
[/PHP]
все!!!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mishko_hb
Mishko_hb
Topic Starter сообщение 1.12.2010, 14:07; Ответить: Mishko_hb
Сообщение #10


Воспользовался каптчой с сайта captcha.ru. На 2-ух сайтах установил без проблем.
С третьим возникли проблемы. Загрузил на сервер - не отображается картинка. Путь прописан верно - в фале где будет выводиться форма указан путь "/kcaptcha/index.php?....", все файлы каптчи находятся в папке kcaptcha. Причем я пробовал закачать просто файлы скачанного архива с сайта captcha.ru - также не работает. Может ли быть проблема на сервере?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 19.4.2024, 2:59
Дизайн