Webmaster общности: Predpriemach.com | SearchEngines.bg

    Captcha с цифри

    Автор: federer_11

    captcha.php

    <?php
    session_start(); //стартираме сесията
    $captcha = rand(10000,99999);
    
    //генерираме случайно петцифрено число с фукцията rand. Тя приема два параметъра. Първи е началното число, втория крайното число. Така ще генерира случайно число, което се намира между тези двете.
    
    $code = md5($captcha);
    
    //хешираме данните чрез md5 функцията
    $_SESSION['captcha'] = $code;
    
    //вкарваме всичко в сесия $_SESSION['captcha']
    
    $width = 90;
    $height = 35;
    
    //създавам две променливи width и height за ширината и височината на изображнеието
    
    $image = imagecreate($width,$height);
    
    //Използваме функцията imagecreate() за да създадем изображението.
    
    $background = imagecolorallocate($image,120,55,145);
    $foreground = imagecolorallocate($image,245,245,245);
    
    //задаване фона на снимката (в случая $background) и цвета на текста ($foreground). Сложил съм примерни имена на променливите.
    
    imagestring($image,20,20,12, $captcha, $foreground);
    
    header('Content-type: image/jpeg');
    
    //задаваме content-type да е image/jpeg или според типа на изображението. Много е важно да бъде зададен.
    
    imagejpeg($image);
    imagedestroy($image);
    ?>

    register.php

    <?php
    error_reporting(0); //изключваме error_reporting
    session_start(); //стартираме сесията
    if($_POST['form_submit']==1){ //правим проверка дали е събмитната формата.
    
    $code_posted = $_POST['captcha'];
    if($_SESSION['captcha'] == md5($code_posted)) {
    //сравняваме постнатият код с хеша на кода от изображението, запазен в сесията $_SESSION['captcha']
    echo 'Правилно!'; //ако всичко е наред, изкарваме съобщение.
    }
    else
    {
    echo 'Грешка!'; //ако има грешка, изкарваме съобщение.
    }
    }
    else
    {
    echo 'Моля попълнете формата!'; //ако не е събмитната формата, изкарваме съобщение.
    }
    ?>
    
    <html>
    <br /><br /><img src="captcha.php" /><br /><br />
    <form action="" method="post">
    <input type="text" name="captcha" />
    <input type="submit" name="submit" value="давай"/>
    <input type="hidden" name="form_submit" value="1"/>
    </form>
    </html>
    
    <!-- Това ни е формата. Методът е post, имаме едно текстово поле за попълване на кода и едно скрито поле, чрез което ще правим проверка дали е попълнена формата, за да започне обработка и сравнение на двата кода (този от изображението и попълненият от потребителя. Имаме и един submit бутон. Изображението вкарваме чрез img тага на html. За тези, които не са се занимавали с това досега - не се опитвайте да инклудвате captcha.php във файла, защото ще му придаде Content-type: image/jpeg. -->

    От демо мисля, че няма нужда. Надявам се да сте схванали принципа. Скоро мога да направя същото приложение с ajax.

    Оставете коментар