Visualizzazione risultati 1 fino 10 di 10

Discussione: [guestbook] immagine verifica anti spambot

  1. #1
    Guest

    Predefinito [guestbook] immagine verifica anti spambot

    dovrei mettere una immagine di verifica per evitare gli spambot...

    chi mi puo' aiutare???

    grazie

  2. #2
    Guest

    Predefinito

    Se ne è parlato un po' di tempo fa, prova a cercare.


    Ciao!

  3. #3
    Guest

    Predefinito

    non riesco a trovare nulla...
    mi daresti qualche sggerimento?

    grazie

  4. #4
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

  5. #5
    Guest

    Predefinito

    grazie leo, mi faresti un gran piacere

  6. #6
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    allora...
    Codice PHP:
    <?
    header
    ("Content-Type: image/jpeg");
    $rand1 = rand(0,99);
    $rand2 = array("A","B","C","D","E","F");
    $rand_2 = array_rand($rand2);
    $rand2 = $rand2[$rand_2];
    $rand3 = array("G","H","I","L","M");
    $rand_3 = array_rand($rand3);
    $rand3 = $rand3[$rand_3];
    $rand4 = rand(0,99);
    $ok = $rand1.$rand2.$rand3.$rand4;
    if(
    $_SESSION['numeri'] == "") { $_SESSION['numeri'] = $ok; }
    $im = imagecreate(100, 30);//immagine di 100*30px
    $back = imagecolorallocate($im, 255,0,0);//background rosso
    $fore = imagecolorallocate($im, 255,255,255);//testo bianco
    imagestring($im, 5, 0, 5, $_SESSION['numeri'], $fore);//scrivo i randoms sull'immagine
    imagepng($im);
    imagedestroy($im);
    ?>
    Questa sopra potrebbe essere la pagina paginacolcaptcha.php ...
    Questo lo metti come <img src="paginacolcaptcha.php" /> nella pagina del gb.. e per convalidare..
    Codice PHP:
    <?
    session_start
    ();
    ?>
    //ALTRO CODICE//
    <?
    if($_POST['invia']) { //la convalida del post Invia
    //ALTRO CODICE//
    if($_SESSION['numeri'] == $_POST['numeri']) {
    echo
    "Codice valido!";
    }
    //ALTRO CODICE//
    }
    ?>
    <img src="paginacolcaptcha.php" /><input type="text" name="numeri" />Inserisci codice di sicurezza<br />
    <input type="submit" name="invia" value="Invia messaggio" />
    Naturalmente intorno c'è tutto l'altro codice per inviare il mex sul gb...vedi te come includerlo!
    Provalo, dovrebbe funzionare...

  7. #7
    Guest

    Predefinito

    grazie leo, ho provato ma mi sa che non va...
    ho postato mettendo il codice di sicurezza giusto e riesco a postare

    ho postato senza mettere il codice giusto e mi fa postare lo stesso
    Ultima modifica di phpone : 18-08-2006 alle ore 01.05.38

  8. #8
    Guest

    Predefinito

    Ti posto quello che uso io:
    Codice PHP:
    <?php
    /*
    CAPTCHA IMAGE GENERATOR
    Autore: Luca Zorzi (aka Tuttoeniente) for TNTforum
    Licenza: GNU/GPL
    Ultima modifica: 18.59 20/06/2006
    */
    session_start();
    $n = 6; //Numero di caratteri
    $w = (35 * $n);
    $h = 35;
    $img = imagecreate($w, $h);
    $bgcolor = imagecolorallocate($img, 255, 255, 255);
    $txtcolor = imagecolorallocate($img, 0, 0, 0);
    $char = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; //Ho messo solo lettere maiuscole perché il carattere che ho scelto ha solo quelle ;)
    for($i = 0; $i < $n; $i++){
    $r = rand(0, (strlen($char) - 1));
    @
    $txt .= $char[$r];
    imagettftext($img, 25, rand(-15, 15), (35 * $i), 30, $txtcolor, 'font.ttf', $char[$r]);
    }
    $_SESSION['rand_txt'] = $txt;
    for(
    $i = 0; $i < 1500; $i++){
    imagesetpixel($img, rand(0, ($w - 1)), rand(0, ($h - 1)), imagecolorallocate($img, 210, 210, 210));
    }
    $imga = imagecreatetruecolor(($w * 5), ($h * 5));
    imagecopyresized($imga, $img, 0, 0, 0, 0, ($w * 5), ($h * 5), $w, $h);
    header("Content-type: image/png");
    imagepng($img);
    ?>
    Il carattere lo trovi qui
    Poi per il controllo devi fare così:

    Codice PHP:
    <?php
    session_start
    ();
    if(
    strtoupper($_POST['campo-del-codice-inserito-dall-utente']) == $_SESSION['rand_txt']){
    //qui se il codice è giusto
    }else{
    //qui se non lo è
    }
    ?>
    Il strtoupper perché come ho scritto in un commento nello script il font che tti ho linkato ha solo lettere maiuscole e numeri (o meglio, ha anche le minuscole che però sono uguali alle maiuscole ).
    Ultima modifica di tuttoeniente2 : 18-08-2006 alle ore 12.52.16

  9. #9
    Guest

    Predefinito

    @tuttoeniente2: questo script si potrebbe usare anche in registrazioni? io non ho capito come farlo funzionare, cioè dopo che metto tutto il codice, poi come faccio a farlo "funzionare"?

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da TurkoSoft
    @tuttoeniente2: questo script si potrebbe usare anche in registrazioni? io non ho capito come farlo funzionare, cioè dopo che metto tutto il codice, poi come faccio a farlo "funzionare"?
    Certo, basta inserire un'immagine al momento dell'iscrizione, che richiama lo script, che io ho chiamato anti-robot.php
    Codice HTML:
    <img src="anti-robot.php"> Scrivi il codice dell'immagine a fianco: <input type="text" name="random">
    Come vedi dal codice, di fianco all'immagine c'è un campo dove l'utente è invitato a trascrivere il codice che viene visualizzato nell'immagine a lato, che è richiamabile da uno script php, che deve obbligatoriamente presentare session_start(); come prima istruzione, tramite la variabile $_SESSION['rand_txt']
    Come ho spiegato nel post #8, il carattere che ho linkato visualizza solo lettere maiuscole e per evitare problemi, al momento del controllo del codice inserito dall'utente è meglio trasformarlo via php in lettere tutte maiuscole, con la funzione strtoupper()

    Spero di essermi spiegato bene.

    In ogni caso il risultato dello script che genera lettere casuali lo puoi vedere qui

Regole di scrittura

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