Visualizzazione risultati 1 fino 1 di 1

Discussione: Codice Captcha che non funziona

  1. #1
    Guest

    Predefinito Codice Captcha che non funziona

    Questo è lo script del per controllare se il captcha sia corretto ma il locale non funziona mentre se lo uso su altervista funziona non riesco a capire. PHP mi da un errore sulla variabile della sessione.

    Notice: Undefined variable: _SESSION in C:\xampp\htdocs\Captcha\example.php on line 11


    Codice PHP:
    <? session_start(); ?>

    <form action="example.php" method="post">
    <img src="captcha.php" /><br/><br/>
    Inserisci il codice che vedi: <input type="text" name="cpt" /> <input type="submit" value="Check" />
    </form>

    <?php

    if(isset($_POST['cpt']) && !empty($_POST['cpt']))
    if(
    $_SESSION['CAPTCHA'] != strtolower($_POST['cpt']))
    echo
    "<strong>Codice errato!</strong>";
    else
    echo
    "Ok";

    ?>
    Codice PHP:
    <?php
    session_start
    ();

    define("NONE", 0);
    define("EASY", 30);
    define("MEDIUM", 50);
    define("HARD", 80);
    define("VERY_HARD", 100);

    define("POINT", 1);
    define("LINE", 2);

    /* dimensioni */
    $x = 200; //larghezza
    $y = 80; //altezza

    $image = imagecreatetruecolor($x, $y); //creo l'immagine

    $color = array();
    $color[] = imagecolorallocate($image, 255, 0, 0);
    $color[] = imagecolorallocate($image, 0, 255, 0);
    $color[] = imagecolorallocate($image, 0, 0, 255);
    $color[] = imagecolorallocate($image, 255, 255, 0);
    $color[] = imagecolorallocate($image, 255, 0, 255);
    $color[] = imagecolorallocate($image, 255, 255, 255);
    $color[] = imagecolorallocate($image, 0, 255, 255);

    $font = array();
    $font[] = "font/arial.ttf";
    $font[] = "font/abbeyroad_regular.ttf";
    $font[] = "font/roman_sd_regular.ttf";
    $font[] = "font/elephants_in_cherry_trees_normal.ttf";

    $black = imagecolorallocate($image, 0, 0, 0);
    imagefill($image, 0, 0, $black);
    add_noise($image, EASY, LINE, $x, $y); //aggiungo il disturbo

    $_SESSION['CAPTCHA'] = strtolower(getString()); //genero la nuova stringa

    for($i = 0;$i < strlen($_SESSION['CAPTCHA']); $i++) {
    /* per ogni lettera applico impostazioni diverse (dimensione, angolo, colore, font) */
    imagettftext(
    $image, //immagine
    20 + rand(0, 6), //dimensione carattere
    rand(-35, 35), //angolo di rotazione
    ($i+1)*26, //offset sulla x
    45+ rand(0, 4), //offset sulla y
    $color[rand(0, count($color)-1)], //colore
    $font[rand(0, count($font)-1)], //carattere
    $_SESSION['CAPTCHA'][$i] //lettera da stampare
    );
    }

    header("Content-type: image/png");

    imagepng($image);
    imagedestroy($image);


    function
    getString() {
    $str = base64_encode(time());
    $str = str_replace("=", "", $str); //elimino gli =
    $str = str_shuffle($str);
    return
    substr($str, 0, 6);
    }

    function
    add_noise($image, $difficoult, $figure, $x, $y) {
    if(
    $figure == 1)
    $difficoult *= 15; //i punti devono essere più delle linee per generare un disturbo significativo

    for($i = 0; $i < $difficoult; $i++) {
    $color = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255));
    $p = rand(0, 10);
    $x1 = rand($p, rand($x - $p, $x-1));
    $x2 = rand($p, rand($x - $p, $x-1));
    $y1 = rand($p, rand($y - $p, $y-1));
    $y2 = rand($p, rand($y - $p, $y-1));

    switch(
    $figure) {
    case
    1:
    imageline($image, $x1, $y1, $x1, $y1, $color);
    break;
    default:
    imageline($image, $x1, $y1, $x2, $y2, $color);
    break;
    }
    }

    }
    ?>
    Ultima modifica di floopop : 23-12-2014 alle ore 21.17.27

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •