Visualizzazione risultati 1 fino 11 di 11

Discussione: Verifica di un codice CAPTCHA

  1. #1
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    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,686

    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
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    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,686

    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
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    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,686

    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
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    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,686

    Predefinito

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

  9. #9
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    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,686

    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
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    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
  •