Visualizzazione risultati 1 fino 25 di 25

Discussione: [php]problema registrazione con email

  1. #1
    Guest

    Exclamation [php]problema registrazione con email

    ciao a tutti, ho un problema cn uno script di registrazione: mi iscrivo, mi arriva l'email e clikko sul link per attivare l'user; ma mi da l'errore che i dati sn scorretti...Quando clikko sul link per attivare l'account dovrebbe iscrivere l'user su mysql ma mi che i dati inseriti sn scorretti...non capisco..

  2. #2
    Guest

    Predefinito

    posta il link dell'email

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

  4. #4
    Guest

    Predefinito registrazione

    questo è il file registrazione.php
    Codice PHP:
    <?php
    include "config.php";
    include
    "funzioni.php";
    $DB = new DB();

    // Si connette
    $DB->connect();
    IF(
    $_POST[mail]=='' or $_POST[nick]=='' or $_POST[pass]==''){
    if(
    $_POST[mail]=='' and $_POST[invia]!=''){$valore_1 ="Campo Obbligatorio";}
    if(
    $_POST[nick]=='' and $_POST[invia]!=''){$valore_2 ="Campo Obbligatorio";}
    if(
    $_POST[pass]=='' and $_POST[invia]!=''){$valore_3 ="Campo Obbligatorio";}

    echo
    "<form action='' method='post' name='registrazione'>
    Registrati
    <table><tr><td>Email</td><td><input type='text' name='mail' value='"
    ;
    echo
    stripslashes($_POST[mail]);
    echo
    "'> $valore_1</td></tr>
    <tr><td>Login</td><td><input type='text' name='nick' value='"
    ;
    echo
    stripslashes($_POST[nick]);
    echo
    "'> $valore_2</td></tr>
    <tr><td>Password</td><td><input type='password' name='pass' value='"
    ;
    echo
    stripslashes($_POST[pass]);
    echo
    "'> $valore_3</td></tr>
    <tr><td><input type='submit' name='invia' value='Registrati'></td><td><input type='reset' name='reset' value='reset'></td></tr>
    </table>
    "
    ; }
    else
    {
    //inizio ad elebarorare la registrazione
    $m = $_POST[mail];
    $corrispondenza_email = checkMail($m);
    if(
    $corrispondenza_email=="1")
    {

    $numero_a_caso = rand (1234,5678);
    $nickname = trim(addslashes($_POST[nick]));
    $pass = trim(addslashes($_POST[pass]));
    $controllo_db = mysql_query ("SELECT *
    FROM `utenti`
    WHERE `email` = '
    $m'
    or `nick` = '
    $nickname'
    LIMIT 0 , 1 "
    );
    $risultato_controllo = mysql_num_rows($controllo_db);
    if(
    $risultato_controllo=="0"){
    $psw_per_db = criptpass($pass);
    $inserisco_dati_di_registrazione = mysql_query("
    INSERT INTO `utenti` ( `id` , `email` , `nick` , `pass` , `stato` , `caso` )
    VALUES (
    NULL , '
    $m', '$nickname', '$psw_per_db', '0', '$numero_a_caso'
    )

    "
    );
    $id_user = mysql_insert_id();
    $messaggio = "Gentile utente $nickname,
    ricevi questo messaggio in quanto ti sei registrato sul sito
    $urldelvostrosito.
    Per completare la tua registrazione e diventare un membro attivo della nostra community non dovrai far altro che cliccare il link qui sotto"
    . $urldelvostrosito ."completa.php?user=$id_user&check=$numero_a_caso";
    mail($m, "Benvenuto su $urldelvostrosito", $messaggio,
    "From: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
    "Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
    "X-Mailer: PHP/" . phpversion());
    echo
    "L'indirizzo di posta <b>$m</b> è corretto ed ho inviato una email con i dati della tua registrazione";
    }
    else
    {
    echo
    "Esiste già questo nome utente ($nickname) o questo indirizzo email ($m). Nel caso ti fossi dimenticato la password <a href=".$urldelvostrosito."dimentica.php>CLICCA QUI</a>";
    }

    }
    //FINE IF CON EMAIL CORRETTA
    else
    {
    Echo
    "L'indirizzo email <b>$m</b> da te inserito non è corretto";
    }

    }



    // Chiude
    $DB->disconnect();

  5. #5
    Guest

    Predefinito

    io ribadisco: mi mandi il link che trovi nella email... forse si capisce meglio.

    $urldelvostrosito non è stata settata da nessuna parte

    completa.php cosa fa? ce lo fai vedere?

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

    Predefinito

    Ci serve anche completa.php
    Nella pagina da te postata viene inviato un link con una serie di codici, che (salvati sul db), la pagina completa.php dovrebbe riconoscere.

  7. #7
    Guest

    Predefinito

    ok ecco qua il link che mi arriva via mail
    Gentile utente scope,
    ricevi questo messaggio in quanto ti sei registrato sul sito
    http://www.scope.altervista.org/.
    Per completare la tua registrazione e diventare un membro attivo della nostra
    community non dovrai far altro che cliccare il link qui
    sottohttp://www.scope.altervista.org/completa.php?user=2&check=2182

    ed ecco la pagina completa.php
    Codice PHP:
    <?PHP
    include "config.php";
    include
    "funzioni.php";
    $DB = new DB();
    $DB->connect();
    $id_user = $_GET[id];
    $check_user = $_GET[check];
    if(
    is_numeric($id_user)){
    $id_user = $_GET[id];
    }
    else
    {
    $id_user = "1";}

    if(
    is_numeric($check_user)){
    $check_user = $_GET[check];
    }
    else
    {
    $check_user = "1";}

    $controllo_utente = mysql_query ("SELECT *
    FROM `utenti`
    WHERE `id` = '
    $id_user'
    AND `caso` = '
    $check_user'
    LIMIT 0 , 1 "
    );

    $verita = mysql_num_rows($controllo_utente);
    if (
    $verita =="1")
    {
    $aggiorno_utente = mysql_query ("UPDATE `utenti` SET `stato` = '1' WHERE `id` = '$id_user' LIMIT 1") ;

    Echo
    "
    <meta http-equiv=\"Refresh\" content=\"3; URL=login.php\">
    Grazie per esserti registrato su
    $urldelvostrosito. Tra pochi secondi verrai reindirizzato alla home page. Se non vuoi aspettare <a href=login.php>clicca qui</a>";

    }
    else
    {
    echo
    "Dati non corretti . <a href=registra.php>Torna al form di registrazione</a>";
    }
    ?>
    Ultima modifica di seneca : 02-08-2006 alle ore 13.24.41

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

    Predefinito

    Sei sicuro al 100% che si collega al db?
    Perchè quel codice dovrebbe essere corretto...praticamente cerca un utente che abbia come "caso" il numero dato da check...se c'è lo registra, senò dà errore..

  9. #9
    Guest

    Predefinito

    si sono sicuro al 100%!

    EDIT: ho sbagliato ha configurare il file config.php!? BHO
    Codice PHP:
    <?php
    $urldelvostrosito
    = "http://www.scope.altervista.orgt/";
    class
    DB {

    var
    $ident;
    var
    $sql = array('host'=>'localhost','user'=>'scope','pass'=>'mia pass','db'=>'my_scope');

    function
    connect ()
    {
    // Si connette a MySQL
    $this->ident = mysql_connect($this->sql['host'], $this->sql['user'], $this->sql['pass']);

    // Sceglie il sb
    if (!mysql_select_db($this->sql['db'])) {
    die(
    "Could not connect to DB");
    }
    }

    function
    disconnect ()
    {
    // Chiude le connessione
    if (!mysql_close($this->ident)) {
    die(
    "Could not close DB");
    }
    }

    }



    ?>
    Ultima modifica di scope : 01-08-2006 alle ore 18.35.27 Motivo: bho

  10. #10
    Guest

    Predefinito

    sicuramente il sito è sbagliato
    altervista.orgt?

  11. #11
    Guest

    Predefinito

    no vabbè, è lo stesso ho provato a correggerlo ma nn cambia niente...

  12. #12
    Guest

    Predefinito

    ma il link che ti arriva per email? come è?

  13. #13
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da demenziale
    ma il link che ti arriva per email? come è?
    Citazione Originalmente inviato da scope
    ok ecco qua il link che mi arriva via mail
    Gentile utente scope,
    ricevi questo messaggio in quanto ti sei registrato sul sito
    http://www.scope.altervista.org/.
    Per completare la tua registrazione e diventare un membro attivo della nostra
    community non dovrai far altro che cliccare il link qui
    sottohttp://www.scope.altervista.org/completa.php?user=2&check=2182
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  14. #14
    Guest

    Predefinito

    e se levassi la funzione della registrazione via mail? Mi potete aiutare...

  15. #15
    Guest

    Predefinito

    x funcool: demenziale rinco! :P
    no registrazione via email?

    Codice PHP:
    <?php
    include "config.php";
    include
    "funzioni.php";
    $DB = new DB();

    // Si connette
    $DB->connect();
    IF(
    $_POST[mail]=='' or $_POST[nick]=='' or $_POST[pass]==''){
    if(
    $_POST[mail]=='' and $_POST[invia]!=''){$valore_1 ="Campo Obbligatorio";}
    if(
    $_POST[nick]=='' and $_POST[invia]!=''){$valore_2 ="Campo Obbligatorio";}
    if(
    $_POST[pass]=='' and $_POST[invia]!=''){$valore_3 ="Campo Obbligatorio";}

    echo
    "<form action='' method='post' name='registrazione'>
    Registrati
    <table><tr><td>Email</td><td><input type='text' name='mail' value='"
    ;
    echo
    stripslashes($_POST[mail]);
    echo
    "'> $valore_1</td></tr>
    <tr><td>Login</td><td><input type='text' name='nick' value='"
    ;
    echo
    stripslashes($_POST[nick]);
    echo
    "'> $valore_2</td></tr>
    <tr><td>Password</td><td><input type='password' name='pass' value='"
    ;
    echo
    stripslashes($_POST[pass]);
    echo
    "'> $valore_3</td></tr>
    <tr><td><input type='submit' name='invia' value='Registrati'></td><td><input type='reset' name='reset' value='reset'></td></tr>
    </table>
    "
    ;

    //inizio ad elebarorare la registrazione
    $m = $_POST[mail];
    $numero_a_caso = rand (1234,5678);
    $nickname = trim(addslashes($_POST[nick]));
    $pass = trim(addslashes($_POST[pass]));
    $controllo_db = mysql_query ("SELECT *
    FROM `utenti`
    WHERE `email` = '
    $m'
    or `nick` = '
    $nickname'
    LIMIT 0 , 1 "
    );
    $risultato_controllo = mysql_num_rows($controllo_db);
    if(
    $risultato_controllo=="0"){
    $psw_per_db = criptpass($pass);
    $inserisco_dati_di_registrazione = mysql_query("
    INSERT INTO `utenti` ( `id` , `email` , `nick` , `pass` , `stato` , `caso` )
    VALUES (
    NULL , '
    $m', '$nickname', '$psw_per_db', '1', '$numero_a_caso'
    )

    "
    );

    else
    {
    echo
    "Esiste già questo nome utente ($nickname) o questo indirizzo email ($m). Nel caso ti fossi dimenticato la password <a href=".$urldelvostrosito."dimentica.php>CLICCA QUI</a>";
    }


    }

    Scusami se è un po' incasinato vedi se funge... L'email puoi bypassarla cambiando lo stato da 0 a 1. Vedi se funge questo codice (purtroppo ho fretta. Devo andare a mangiare. Pausa pranzo)

    Fammi sapere


    FunCool: Usa i tag appositi quando scrivi del codice.
    Ultima modifica di funcool : 02-08-2006 alle ore 12.38.38

  16. #16
    Guest

    Predefinito

    mi dispiace manco cosi:
    Parse error: syntax error, unexpected T_ELSE in /membri/mioaccount/registrazione.php on line 49

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

    Predefinito

    Codice PHP:
    <?php
    include "config.php";
    include
    "funzioni.php";
    $DB = new DB();

    // Si connette
    $DB->connect();
    IF(
    $_POST[mail]=='' or $_POST[nick]=='' or $_POST[pass]==''){
    if(
    $_POST[mail]=='' and $_POST[invia]!=''){$valore_1 ="Campo Obbligatorio";}
    if(
    $_POST[nick]=='' and $_POST[invia]!=''){$valore_2 ="Campo Obbligatorio";}
    if(
    $_POST[pass]=='' and $_POST[invia]!=''){$valore_3 ="Campo Obbligatorio";}

    echo
    "<form action='' method='post' name='registrazione'>
    Registrati
    <table><tr><td>Email</td><td><input type='text' name='mail' value='"
    ;
    echo
    stripslashes($_POST[mail]);
    echo
    "'> $valore_1</td></tr>
    <tr><td>Login</td><td><input type='text' name='nick' value='"
    ;
    echo
    stripslashes($_POST[nick]);
    echo
    "'> $valore_2</td></tr>
    <tr><td>Password</td><td><input type='password' name='pass' value='"
    ;
    echo
    stripslashes($_POST[pass]);
    echo
    "'> $valore_3</td></tr>
    <tr><td><input type='submit' name='invia' value='Registrati'></td><td><input type='reset' name='reset' value='reset'></td></tr>
    </table>
    "
    ;

    //inizio ad elebarorare la registrazione
    $m = $_POST[mail];
    $numero_a_caso = rand (1234,5678);
    $nickname = trim(addslashes($_POST[nick]));
    $pass = trim(addslashes($_POST[pass]));
    $controllo_db = mysql_query ("SELECT *
    FROM `utenti`
    WHERE `email` = '
    $m'
    or `nick` = '
    $nickname'
    LIMIT 0 , 1 "
    );
    $risultato_controllo = mysql_num_rows($controllo_db);
    if(
    $risultato_controllo=="0"){
    $psw_per_db = criptpass($pass);
    $inserisco_dati_di_registrazione = mysql_query("
    INSERT INTO `utenti` ( `id` , `email` , `nick` , `pass` , `stato` , `caso` )
    VALUES (
    NULL , '
    $m', '$nickname', '$psw_per_db', '1', '$numero_a_caso'
    )

    "
    );
    }
    else
    {
    echo
    "Esiste già questo nome utente ($nickname) o questo indirizzo email ($m). Nel caso ti fossi dimenticato la password <a href=".$urldelvostrosito."dimentica.php>CLICCA QUI</a>";
    }


    }
    Così?

  18. #18
    Guest

    Predefinito

    nn mi da più quell'errore ma quando vado a registrarmi, alla fine della registrazione mi da una pagina bianca, e quando vado a fare il login mi da che i dati sono scorretti!!

  19. #19
    Guest

    Predefinito

    hai provato a vedere cosa c'è nella tabella se hai effettivamente fatto la registrazione?

    [edit]posta lo script del login

  20. #20
    Guest

    Predefinito

    ok eccolo:
    Codice PHP:
    <?php
    include "config.php";
    include
    "funzioni.php";
    $DB = new DB();
    session_start();
    unset(
    $_SESSION['login']);
    unset(
    $_SESSION['psw']);
    // Si connette
    $DB->connect();
    $login = trim(addslashes($_POST[login]));
    $pass = trim(addslashes($_POST[psw]));
    if (
    $login=='' or $pass==''){
    echo
    "<form name='login' action='' method='post'>
    <table>
    <tr><td>Login</td><td><input type='text' name='login'></td></tr>
    <tr><td>Password</td><td><input type='password' name='psw'></td></tr>
    <tr><td><input type='submit' name='Accedi' value='Accedi'></td><td></td></tr></table>"
    ;}
    else
    {
    $psw_per_db = criptpass($pass);
    $verifico_user = mysql_query("SELECT *
    FROM `utenti`
    WHERE `nick` ='
    $login'
    AND `pass` = '
    $psw_per_db' and `stato` = '1'
    LIMIT 0 , 1"
    );
    $ok_login = mysql_num_rows($verifico_user);
    if(
    $ok_login=="1")
    {
    $_SESSION[login] = $login;
    $_SESSION[psw]= $psw_per_db;
    Echo
    "<meta http-equiv=\"Refresh\" content=\"3; URL=set.php\">Login effettuato correttamente . <a href=set.php>Clicca qui per entrare</a>";
    }
    else
    {
    Echo
    "<meta http-equiv=\"Refresh\" content=\"3; URL=login.php\">Login incorretto o utente che non ha ancora completato il processo di registrazione. In questo caso controlla la tua email<a href=login.php>Premi qui per riprovare</a>";
    }
    }

  21. #21
    Guest

    Predefinito

    Ha visto nella tabella se è stato effetuato l'inserimento? molto probabilmente l'utente non è stato inserito

  22. #22
    Guest

    Predefinito

    no, avevi ragione: nn mi inserisce l'utenti...

  23. #23
    Guest

    Predefinito

    $inserisco_dati_di_registrazione = mysql_query("
    INSERT INTO `utenti` ( `id` , `email` , `nick` , `pass` , `stato` , `caso` )
    VALUES (
    NULL , '$m', '$nickname', '$psw_per_db', '1', '$numero_a_caso'
    )

    ");

    MODIFICA la riga sopra così

    $sqlQuery = "INSERT INTO utenti VALUES( NULL, \"$m\", \"$nickname\", \"$ps_per_db\", 1, $numero_a_caso) ";

    echo $sqlQuery; // debugghino

    mysql_query( $sqlQuery ) or die ( "Errore nell'inserimento: " . mysql_error());

    e dicci quale è il problema

  24. #24
    Guest

    Predefinito

    uguale a prima nn mi registra l'utenti nel mysql...

  25. #25
    Guest

    Predefinito

    uguale va bene ma da qualche parte ti avrà fatto un echo... e ce lo devi postare.... il risultato della query...
    magari sostituisci così

    $sqlQuery = "INSERT INTO utenti VALUES( NULL, \"$m\", \"$nickname\", \"$ps_per_db\", 1, $numero_a_caso) ";

    echo $sqlQuery; // debugghino

    die();

    così interrompe tutto però se non ci fai sapere che scrive è difficilotto

Regole di scrittura

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