Visualizzazione risultati 1 fino 6 di 6

Discussione: Immagini di conferma

  1. #1
    Guest

    Predefinito Immagini di conferma

    Nel mio sito sto cercando di inserire un'immagine di conferma per accedere, una tipo quelle che si vedone nei siti dove c'è un'immagini con lettere e/o numeri da copiare in un campo sotto, come posso fare?

  2. #2
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    butto giù alcune righe, non prenderle come funzionanti ( anche se dovrebbero).

    Creiamo l'immagine:
    Codice PHP:
    <?php
    function random_str($length="8")
    {
    $set = array("a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J","k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T","u","U","v","V","w","W","x","X","y","Y","z","Z","1","2","3","4","5","6","7","8","9");
    $str;
    for(
    $i=1;$i<=$length;$i++)
    {
    $ch = rand(0, count($set)-1);
    $str .= $set[$ch];
    }
    return
    $str;
    }
    $check=random_str();




    $im = imagecreatefrompng ("base.png"); //immagine qualsiasi di base sulla quale scrivere
    $textcolor = imagecolorallocate($im, 255, 255, 255); //colore della scritta
    // write the string at the top left
    imagestring($im, 2, 2, 2,$check, $textcolor);
    // output the image
    header("Content-type: image/png");
    imagePNG($im);
    ?>
    questo stamperà in una immagine un codice casuale e FUNZIONA, basta cambiare il valore di " $length="8" " per avere un valore più o meno grande.
    ora lo confrontiamo
    Codice PHP:
    <form method="post" action="">
    <input name="valore">
    <input type="submit" name="submit" value="vai">
    </form>
    <?
    if($submit=="vai"){
    if(
    $valore==$check"){
    echo"
    ok, controllo valido";
    }
    else
    {
    echo"
    Controllo non valido, riprova";
    }
    ?>
    come detto dovrebbe funzionare ma NON è completo.


    edit: dimenticavo, la creazione dell'immagine "base" DEVE essere PNG
    Ultima modifica di makpaolo : 24-02-2006 alle ore 18.01.39
    Se smetti di imparare e evolverti sei morto dentro

  3. #3
    Guest

  4. #4
    Guest

    Predefinito La funzione imagecreatefrompng non esiste

    io ho dato una modificatina allo script eccolo adesso:
    Pagina reg.php:
    Codice PHP:
    <?php
    function random_str($length="8")
    {
    $set = array("a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J","k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T","u","U","v","V","w","W","x","X","y","Y","z","Z","1","2","3","4","5","6","7","8","9");
    $str;
    for(
    $i=1;$i<=$length;$i++)
    {
    $ch = rand(0, count($set)-1);
    $str .= $set[$ch];
    }
    return
    $str;
    }
    $check=random_str();




    $im = imagecreatefrompng ("base.png"); //immagine qualsiasi di base sulla quale scrivere
    $textcolor = imagecolorallocate($im, 255, 255, 255); //colore della scritta
    // write the string at the top left
    imagestring($im, 2, 2, 2,$check, $textcolor);
    // output the image
    header("Content-type: image/png");
    imagePNG($im);
    ?>
    <form method="post" action="reg_chek.php">
    <input name="valore">
    <input type="submit" name="submit" value="vai">
    <input name="check" type="hidden" id="check" value="<? echo $check; ?>">
    </form>
    Pagine reg_chek.php
    Codice PHP:
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <?php
    $valore
    = $_POST[valore];
    $check = $_POST[check];
    $control = "" ;
    if (
    $valore == $check) $control = "ok" else $control = "error";
    if (
    $control == "ok") echo "OK! valore:$valore, check:$check";
    if (
    $control == "error") echo "Errore! valore:$valore, check:$check";
    ?>
    </body>
    </html>
    Ecco gli errori che mi da:
    Notice: Undefined variable: str in d:\programmi\easyphp1-7\www\p.s\registrazione.php on line 5

    Notice: Undefined variable: str in d:\programmi\easyphp1-7\www\p.s\registrazione.php on line 9

    Fatal error: Call to undefined function: imagecreatefrompng() in d:\programmi\easyphp1-7\www\p.s\registrazione.php on line 18
    I primi sono due banali errori di variabile, l'ultimo secondo me sta ad indicare che il mio EasyPHP 1.7 non supporta questa funzione? o che la mia versione PHP non è aggiornata? o che c'è qualche errore nel codice?

  5. #5
    Guest

    Predefinito

    per i primi due prova a sostiruire $str; con $str = ''; e poi quando stampi l'output dell'immaine non puoi mettere altro codice...
    per l'altro errore devi scaricarti la libreria gd

    ciao ^__^

  6. #6
    Guest

    Predefinito

    propongo di usare array_rand() al posto del ciclo for
    1) è più veloce
    2) non si ottengono lettere/numeri uguali

Regole di scrittura

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