Помощник
|
Каптча |
Mishko_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
jeka5555 |
22.9.2010, 17:57;
Ответить: jeka5555
Сообщение
#2
|
|
Срочно нужен работающий скрипт каптчи. Без всяких наворотов. Перерыл много всяких вариантов, но все не то, слишком сложно. Хотелось бы скрипт, который поставил и все. Некогда разбираться, нужно срочно поставить хоть какую-то защиту. Всегда использую этот скрипт http://www.dmtsoft.ru/bn/428/as/oneaticleshablon/ , а именно http://dmtsoft.ru/cgi-bin/freedownloader.p..._code=254026515 . Ставится за 3 минуты (при наличии рук). ;) |
|
|
Arks |
22.9.2010, 18:38;
Ответить: Arks
Сообщение
#3
|
|
re-captcha
|
|
|
Mishko_hb
|
Сообщение
#4
|
|
jeka5555,не подскажите, как ее установить?
|
|
|
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 |
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
|
Сообщение
#7
|
|
logind,Это код файла captcha.php? А как саму картинку вставить? И где картинки брать для директории "capcha/res/"? Как ее установить??
Помогите (( |
|
|
logind |
29.11.2010, 16:02;
Ответить: logind
Сообщение
#8
|
|
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 |
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
|
Сообщение
#10
|
|
Воспользовался каптчой с сайта captcha.ru. На 2-ух сайтах установил без проблем.
С третьим возникли проблемы. Загрузил на сервер - не отображается картинка. Путь прописан верно - в фале где будет выводиться форма указан путь "/kcaptcha/index.php?....", все файлы каптчи находятся в папке kcaptcha. Причем я пробовал закачать просто файлы скачанного архива с сайта captcha.ru - также не работает. Может ли быть проблема на сервере? |
|
|
|
Текстовая версия | Сейчас: 19.4.2024, 2:59 |