Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   PHP (https://forum.zone-game.info/forumdisplay.php?f=125)
-   -   Капча - простой пример. (https://forum.zone-game.info/showthread.php?t=644)

PROGRAMMATOR 24.05.2008 06:58

Капча - простой пример.
 
Вот очень простой пример капчи :

PHP код:

<?
session_start 
();
 
switch (
$a) {
    case 
'image':
        
$im = @imagecreate (8020) or die ("Cannot initialize new GD image stream!");
        
$bg imagecolorallocate ($im232238247);
        
$char $_SESSION['code'];
 
        
//создаём шум на фоне
        
for ($i=0$i<=128$i++) {
            
$color imagecolorallocate ($imrand(0,255), rand(0,255), rand(0,255)); //задаём цвет
            
imagesetpixel($imrand(2,80), rand(2,20), $color); //рисуем пиксель
        
}
 
        
//выводим символы кода
        
for ($i 0$i strlen($char); $i++) {
            
$color imagecolorallocate ($imrand(0,255), rand(0,128), rand(0,255)); //задаём цвет
            
$x $i 20;
            
$y rand(16);
            
imagechar ($im5$x$y$char[$i], $color);
        }
 
        
/*/упрощённый вариант
        $color = imagecolorallocate($img, 0, 0, 0);
        imagestring($im, 3, 5, 3, $char, $color);*/
 
        //антикеширование
        
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        
header("Cache-Control: no-store, no-cache, must-revalidate");
        
header("Cache-Control: post-check=0, pre-check=0"false);
        
header("Pragma: no-cache");
 
        
//создание рисунка в зависимости от доступного формата
        
if (function_exists("imagepng")) {
           
header("Content-type: image/png");
           
imagepng($im);
        } elseif (
function_exists("imagegif")) {
           
header("Content-type: image/gif");
           
imagegif($im);
        } elseif (
function_exists("imagejpeg")) {
           
header("Content-type: image/jpeg");
           
imagejpeg($im);
        } else {
           die(
"No image support in this PHP server!");
        }
        
imagedestroy ($im);    
    break;
    case 
'submit':
        
//проверка кода
        
if (empty($_GET['code']) or empty($_SESSION['code'])) {
            echo 
'Вы не указали код подтверждения';
        } elseif (
$_GET['code'] != $_SESSION['code']) {
            echo 
'Код подтверждения не совпадает';
        } else {
            echo 
'Всё Ok!';
        }
    break;
    default:
        
$_SESSION['code'] = substr(md5(uniqid("")),0,4);
        echo 
'<form action="captcha.php" method="get">'.
            
'<input type="hidden" name="a" value="submit">'.
            
'<label for="code">Код подтверждения:</label>'.
            
'<input type="text" id="code" name="code" size="4" maxlength="4">'.
            
'<img align="absmiddle" src="captcha.php?a=image">'.
            
'<input type="submit" value="Go">'.
            
'</form>';
    break;
}
?>


aleshka 30.06.2008 20:58

Ответ: Капча - простой пример.
 
Это конечно все хорошо, но мне больше нравится капча с проекта _http://captcha.ru/ , читал что она очень стойкая с взломам, напоминает очень капчу которая используется на гугле, ну я не думаю что на гугле стали были использовать небезопасную капчу :))) Скачать это чудо можно _http://captcha.ru/kcaptcha/.
Пример работы:
_http://captcha.ru/captcha/index.php

Paradox 05.07.2008 23:43

Ответ: Капча - простой пример.
 
PROGRAMMATOR и aleshka, по спасибке но на булке вроде подключается библиотека GD2 с помощью которой генерируется произвольный шрифт и фон капчи

PROGRAMMATOR 05.07.2008 23:48

Ответ: Капча - простой пример.
 
Paradox, в моём примере используется та самая библиотека GD

RiCo 20.05.2009 09:39

Ответ: Капча - простой пример.
 
Цитата:

Сообщение от aleshka (Сообщение 10593)
Это конечно все хорошо, но мне больше нравится капча с проекта _http://captcha.ru/ , читал что она очень стойкая с взломам, напоминает очень капчу которая используется на гугле, ну я не думаю что на гугле стали были использовать небезопасную капчу :))) Скачать это чудо можно _http://captcha.ru/kcaptcha/.
Пример работы:
_http://captcha.ru/captcha/index.php

чёт ссылки не работают:confused:

Voltage 19.07.2009 15:38

Ответ: Капча - простой пример.
 
мне больше нравится reCAPTCHA - достаточно стойкая, и к тому же ответы используются для оцифровки книг. пример как реализовать на php - здесь

PROGRAMMATOR 19.07.2009 17:14

Ответ: Капча - простой пример.
 
А вот мне reCAPTCHA не нравится, там хоть и трезвый, но с третьего раза попадешь. Гораздо проще написать скрипт "рандомных вопросов" и вопросы по теме ресурса, что бы только "кто в теме" регистрировались. ;)

ps Кстати, после запуска антикапчи - все эти капчи до одного места, их все равно вводят в ручную студенты.

sarkmisha 16.08.2009 08:38

Ответ: Капча - простой пример.
 
Хелп! Я сделал свой скрипт, у меня код ошибок по другому:

PHP код:

if ( $mail == ""
    {
echo  
"<div align=left>Введите свой E-mail</div><br />";
    
$er 1;
    }

if ( 
$ips == ""
    {
echo  
"<div align=left>Введите IP адрес</div><br />";
    
$er 1;
    }

if ( 
$port == ""
    {
echo  
"<div align=left>Введите Порт</div><br />";
    
$er 1;
    }

if ( 
$site == ""
    {
echo  
"<div align=left>Введите URL сайта</div><br />";
    
$er 1;
    }

if ( 
$type == ""
    {
echo  
"<div align=left>Введите тип игры</div><br />";
    
$er 1;
    }

if ( 
$icq == ""
    {
echo  
"<div align=left>Введите ICQ номер</div><br />";
    
$er 1;
    }

if (
$er == "")
    { 

Как мне сдлелать, чтобы код ошибки этой капчи:

PHP код:

<?php
if(count($_POST)>0){
    if(isset(
$_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
        echo 
"Correct";
    }else{
        echo 
"Ошибка, вы не верно ввели текст с изображения";
    }
}
unset(
$_SESSION['captcha_keystring']);
?>

был присоеденен к код ошибки скрипта (выше написал), когда я все ввожу в полях, кроме капчи, там пишет "не верно", но заявка без капчи идет.
и подскажите, как сделать код на некоректность мыла!
Зарание спасибо!


Текущее время: 08:19. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot