Visualizzazione risultati 1 fino 11 di 11

Discussione: Verifica di un codice CAPTCHA

  1. #1
    Guest

    Predefinito Verifica di un codice CAPTCHA

    Salve a tutti

    sul sito di un mio amico stiamo aggiungendo un codice CAPTCHA....c'è un problema (come al solito xD)

    fino alla visualizzazione del codice e al suo inserimento in una cella specifica...problemi 0...

    però....NON SO COME FARE PER VERIFICARE CHE IL CODICE INSERITO DALL'UTENTE E QUELLO GENERATO SIANO REALMENTE UGUALI... D:

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,990

    Predefinito

    In questo script salvo la stringa generata in una sessione. Poi controllo che la stringa scritta nel form sia uguale a quella salvata nella sessione.

    Ciao!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    In questo script salvo la stringa generata in una sessione. Poi controllo che la stringa scritta nel form sia uguale a quella salvata nella sessione.

    Ciao!
    il mio problema non riguarda l'inserimento di una rigistrazione....
    ma la verifica di un codice.....


    le mie pagine:

    "pagina del codice con relativo inserimento":
    Codice PHP:
    <html>
    <body>
    <? //esito.php ?>
    <form id="form1" name="form1" method="post" action="esito.php">
    <p>
    <label for="nome">Nome </label>
    <input type="text" name="nome" id="nome" />
    </p>
    <p>
    <label for="email">Email</label>
    <input type="text" name="email" id="email" />
    </p>
    <p>
    <label for="messaggio">Messaggio</label>
    <textarea name="messaggio" id="messaggio" cols="45" rows="5"></textarea>
    </p>
    <p>
    <input name="privacy" type="checkbox" id="privacy" value="1" />
    <label for="privacy">Accettando i termini della privacy i tuoi dati non saranno divulgati</label>
    </p>
    <p>
    <label for="captcha">Digita il Codice di verifica</label>
    <input type="text" name="captcha" id="captcha" />
    <img src="captcha.php" alt="" /><br></p>
    <p>
    <input type="submit" name="submit" id="submit" value="Invia Messaggio" />
    </p>
    </form>
    <?php

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

    ?>
    </body>
    </html>

    pagina di interrogazione:
    Codice PHP:
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <?php session_start();
    if(isset(
    $_POST['cpt']) && !empty($_POST['cpt']))
    if(
    $_SESSION['CAPTCHA'] != strtolower($_POST['cpt']))
    echo
    "Codice errato!";
    else
    echo
    "Ok";
    ?>
    <?php

    function isValidEmail($email){
    return
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
    }

    if (isset(
    $_POST['submit'])) {
    $nome=$_POST['nome'];
    $email=$_POST['email'];
    $messaggio=$_POST['messaggio'];
    $privacy=$_POST['privacy'];
    if (!empty(
    $nome)) {
    if (!empty(
    $email)) {
    if (
    isValidEmail($email)) {
    if (!empty(
    $messaggio)) {
    if (
    $privacy==1) {
    if(
    $_SESSION["captcha"]==$_POST["captcha"]) {
    $testo_del_messaggio="Nome: $nome\n";
    $testo_del_messaggio.="Email: $email\n";
    $testo_del_messaggio.="Messaggio: $messaggio\n";
    $testo_del_messaggio.="Privacy: $privacy\n";
    $esito=mail("manulaz@live.it","Messaggio di $nome ($email)", $testo_del_messaggio);
    if (
    $esito) {
    echo
    "Esito: Messaggio inviato, risponderemo appena possibile!";
    } else {
    echo
    "Errore: Non &egrave; stato possibile inviare il messaggio!";
    }
    } else {
    echo
    "Errore: Il Codice di verifica non &egrave; corretto!";
    }
    } else {
    echo
    "Errore: Bisogna dare il consenso sulla Privacy!";
    }
    } else {
    echo
    "Errore: Manca il Messaggio!";
    }
    } else {
    echo
    "Errore: Formato Email non corretto!";
    }
    } else {
    echo
    "Errore: Manca un indirizzo Email!";
    }
    } else {
    echo
    "Errore: Manca il Nome!";
    }
    } else {
    echo
    "Errore: Modulo di invio non valido!";
    }




    ?>
    </body>
    </html>

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,990

    Predefinito

    Non centra nulla che script fa il controllo... L'importante è fare il controllo. Comunque vedo che anche tu fai la stessa cosa.... o hai copiato/incollato quel codice senza saper come funziona?
    p.s: la session_start() per funzionare correttamente non vuole prima nessun output HTML.

    Ciao!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non centra nulla che script fa il controllo... L'importante è fare il controllo. Comunque vedo che anche tu fai la stessa cosa.... o hai copiato/incollato quel codice senza saper come funziona?
    p.s: la session_start() per funzionare correttamente non vuole prima nessun output HTML.

    Ciao!
    nn ho copiato ed incollato senza sapere cos'era il fatto è k nn va....

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,990

    Predefinito

    Come ti ho detto, la session_start() va prima di qualsiasi output HTML. Inoltre, nel primo sorgente non la vedo nemmeno...eppure utilizzi le sessioni!

    Ciao!

  7. #7
    Guest

    Predefinito

    mi sono accorto che non c'era e l'ho aggiunta....scusa sai sono nuovo del php....anzi della programmazione web in generale....

    scusa ma quale sarebbe l'output prima della sessionstart();?

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,990

    Predefinito

    Codice PHP:
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <?php session_start();
    Ciao!

  9. #9
    Guest

    Predefinito

    nn sapevo venisse visualizzato come out-put grazie


    quindi verrebero così:
    inserimento:
    Codice PHP:
    <?php session_start();?>
    <html>
    <body>


    <form id="form1" name="form1" method="post" action="esito.php">
    <p>
    <label for="nome">Nome </label>
    <input type="text" name="nome" id="nome" />
    </p>
    <p>
    <label for="email">Email</label>
    <input type="text" name="email" id="email" />
    </p>
    <p>
    <label for="messaggio">Messaggio</label>
    <textarea name="messaggio" id="messaggio" cols="45" rows="5"></textarea>
    </p>
    <p>
    <input name="privacy" type="checkbox" id="privacy" value="1" />
    <label for="privacy">Accettando i termini della privacy i tuoi dati non saranno divulgati</label>
    </p>
    <p>
    <label for="captcha">Digita il Codice di verifica</label>
    <input type="text" name="captcha" id="captcha" />
    <img src="captcha.php" alt="" /><br></p>
    <p>
    <input type="submit" name="submit" id="submit" value="Invia Messaggio" />
    </p>
    </form>
    <?php

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

    ?>
    </body>
    </html>

    interrogazione:

    Codice PHP:
    <? session_start(); ?><html>
    <head>
    <title></title>
    </head>
    <body>
    <?php
    if(isset($_POST['cpt']) && !empty($_POST['cpt']))
    if(
    $_SESSION['CAPTCHA'] != strtolower($_POST['cpt']))
    echo
    "Codice errato!";
    else
    echo
    "Ok";
    ?>
    <?php

    function isValidEmail($email){
    return
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
    }

    if (isset(
    $_POST['submit'])) {
    $nome=$_POST['nome'];
    $email=$_POST['email'];
    $messaggio=$_POST['messaggio'];
    $privacy=$_POST['privacy'];
    if (!empty(
    $nome)) {
    if (!empty(
    $email)) {
    if (
    isValidEmail($email)) {
    if (!empty(
    $messaggio)) {
    if (
    $privacy==1) {
    if(
    $_SESSION["captcha"]==$_POST["captcha"]) {
    $testo_del_messaggio="Nome: $nome\n";
    $testo_del_messaggio.="Email: $email\n";
    $testo_del_messaggio.="Messaggio: $messaggio\n";
    $testo_del_messaggio.="Privacy: $privacy\n";
    $esito=mail("manulaz@live.it","Messaggio di $nome ($email)", $testo_del_messaggio);
    if (
    $esito) {
    echo
    "Esito: Messaggio inviato, risponderemo appena possibile!";
    } else {
    echo
    "Errore: Non &egrave; stato possibile inviare il messaggio!";
    }
    } else {
    echo
    "Errore: Il Codice di verifica non &egrave; corretto!";
    }
    } else {
    echo
    "Errore: Bisogna dare il consenso sulla Privacy!";
    }
    } else {
    echo
    "Errore: Manca il Messaggio!";
    }
    } else {
    echo
    "Errore: Formato Email non corretto!";
    }
    } else {
    echo
    "Errore: Manca un indirizzo Email!";
    }
    } else {
    echo
    "Errore: Manca il Nome!";
    }
    } else {
    echo
    "Errore: Modulo di invio non valido!";
    }




    ?>
    </body>
    </html>

    però non va ancora :(

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,990

    Predefinito

    Ma il captcha come lo generi? Lo salvi nella sessione? Perché nel primo file controlli
    Codice PHP:
    $_SESSION["CAPTCHA"]
    e nel secondo:
    Codice PHP:
    $_SESSION["captcha"]
    Ciao!

  11. #11
    Guest

    Predefinito

    ok ok grazie 1000

Regole di scrittura

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