Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    invia email con nuova pass, ma email non c'è su db!!

    Salve a tutti.
    Premetto che è da poco che mi cimento con php/mysql, in quanto devo preparare una tesina per il mio corso di studi, quindi non sono molto ferrato in materia, ma piano piano mi sto appasionando. Detto questo vi espongo il mio problema.
    Ho realizzato uno script per il recupero pass, e l'utente per fare la richiesta deve inserire due valori, immessi precedentmente all'atto di registrazione,che sono:
    Codice Rfid - Univoco per ogni utente;
    Email - Univoca anche questa;
    Ora il mio problema è che, se i dati inseriti sono corretti, allora mi manda tranquillamente la mail con la nuova password e tutto ok funziona, invece se inserisco dati sbagliati, quindi non presenti nel mio db, nei due campi codice_rfid e email, mi ricompare la stessa pagina dicendomi che la mail a quell'indirizzo di mail non esistente nel db è stata spedita!!!! invece mi dovrebbe dire che tali valori inseriri non esistono nel db e poi lo faccio tornare indietro per mettere quelli esistenti!
    Spero di essermi spiegato, cmq vi posto il codice:

    Codice PHP:
    <?php
    require('connessionedb.php'); //o le vostre istruzioni per il collegamento al database


    $_rfid_pass_persa $_POST['rfid_pass_persa'];
    $_email_pass_persa $_POST['email_pass_persa'];

    //verifichiamo che codice_rfid e email siano presenti nel db
    $query =    "SELECT user_firstname, user_username, user_password, user_password2 FROM user " .
                
    "WHERE user_rfid = '$_rfid_pass_persa' ".
                
    "AND user_email = '$_email_pass_persa' ";

    $result    =    mysql_query($query) or die (mysql_error());
    $row    =    mysql_fetch_array($result);

    $user_firstname    =    $row['user_firstname'];
    $user_username    =    $row['user_username'];


    //codice rfid e email contemporaneamente non sono presenti nel db
    if($result == 0)
    {    
        echo 
    "

    "
    ;
        echo 
    "Il codice RFID e l'indirizzo E-mail inserite non sono presenti nel Data Base, scrivere i dati corretti relativi all'atto della registrazione";
        echo 
    "</p>";
        
    //rimandiamo l'utente alla pagina precedente
        
    echo "

    "
    ;
        echo 
    "<a href=\"P_12_pass_lost.php\">";
        echo 
    "<<< Clicca qui per ritornare alla pagina precedente";
        echo 
    "</a>";
        echo 
    "</p>";
        exit();
    }
    //Se invece codice rfid e email inseriia sono presenti nel db procediamo con l'invio di una nuova password generata casualmente e allo stesso tempo memorizzata nel database tramite md5 e inviata in chiaro all'utente.
    else
    {    
        
    // Lunghezza della password a 7 caratteri
        
    $lunghezza_pass 7;
        
    $pass_generata NULL;
        
        
    // Ciclo su ogni carattere della password
        
    for ($i=1$i<=$lunghezza_pass$i++)
        {
            
    // Se $i è multiplo di 2...
            
    if ($i 2)
            {    
    //Aggiungo una lettera casuale usando chr() in combinazione con rand()

                
    $pass_generata $pass_generata chr(rand(97,122));
                
                
    // Se $x non è multiplo di 2...
            
    }
            else
            {    
    // Aggiungo alla password un numerocompreso tra 0 e 9
            
                
    $pass_generata $pass_generata rand(0,9);
            }
        }
        
        
    //Assegno ad una variabile il valore in chiaro della password generata a random per inviarla tramite mail
        
    $pass_generata_chiaro $pass_generata;

        
    //Assegno ad una variabile il valore hashato tramite md5 da memorizzare nel db
        
    $pass_generata_md5 md5($pass_generata);

        
    //Faccio una query per memorizzare la nuova password random in md5 nel db nei due campi user_password e user_password2
        
    $query_pass =    "UPDATE user SET user_password = '$pass_generata_md5', user_password2 = '$pass_generata_md5'".
                        
    "WHERE user_rfid = '$_rfid_pass_persa' ".
                        
    "AND user_email = '$_email_pass_persa' ";

        
    $result_pass mysql_query($query_pass) or die (mysql_error());
    }
    ?>
    <html>
    <head>
    <title>Invio Mail con dati utente</title>
    </head>
    <body>
    <?php
    /*Arrivati a questo punto non ci resta che spedire un'email all'utente (all'indirizzo fornito
    in fase di registrazione) che contiene:la sua password in chiaro,il suo username ed un link
    alla pagina confirm_reg.php.*/
    //Vediamo come funziona
    $to $_POST["email_pass_persa"];
    $toname $user_firstname;
    $subject "S.S.R.P. - Nuova Password";

    /* Prima di continuare apriamo una piccola parentesi, chiarendo un concetto molto semplice:
    - Se vogliamo inviare un email che contiene formattazioni html, bisogna ricorrere all'utilizzo di una classe.
    - Se si vuol mandare un'email semplice che non contiene formattazioni html, non è necessario usare una classe
    Nel nostro esempio, abbiamo scelto di inviare un'eamil, utlizzando una classe che definisce
    il corpo del messaggio e le intestazione del messaggio.
    Forniamo un link ad una classe mail completa e performante
    [url]http://phpmailer.sourceforge.net[/url] */

    //Definiamo la classe che definisce il corpo del messaggio ($message) e le intestazione del messaggio ($headers)
    ini_set('SMTP','out.alice.it');
    $boundary "==MP_Bound_xyccr948x==";
    $headers "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: multipart/alternative; boundary=\"$boundary\"\r\n";
    $headers .= "From: [email]joppser@tiscali.it[/email]\r\n"//inseriamo l'indirizzo email del mittente, cioè il nostro
    $html_msg "<center>";
    $html_msg .= "<table width=\"500\" border=0 cellpadding=\"4\">";
    $html_msg .= "<tr><td align=\"center\">";
    $html_msg .= "</td></tr>";
    $html_msg .= "<tr><td>Questi sono i dati che avevi richiesto, cerca di non smarrirli nuovamente:";
    $html_msg .= "</td></tr><tr><td>Username: <font color=\"red\">" $user_username "</font>";
    $html_msg .= "</td></tr><tr><td>Password: <font color=\"red\">" $pass_generata_chiaro "</font>";
    $html_msg .= "</td></tr><tr><td align=\"center\">";
    $html_msg .= "</td></tr></table></center>";
    $confirmmessage "Caro " $toname ",\n\n";
    $confirmmessage .= "le consigliamo di stamapre questa mail e di non smarrirla:\n\n";
    $confirmmessage .= $html_msg "\n\n";
    // Attenzione! Qui sotto dobbiamo inserire il percorso esatto che porta alla nostra pagina confirm_reg.php
    $confirmmessage .= "<a href=\"#" ."\"></a>";
    $message "This is a Multipart Message in MIME format\n";
    $message .= "--$boundary\n";
    $message .= "Content-type: text/html; charset=iso-8859-1\n";
    $message .= "Content-Transfer-Encoding: 7bit\n\n";
    $message .= $confirmmessage "\n";
    $message .= "--$boundary--";
    $mailsent mail($to$subject$message$headers);
    if (
    $mailsent)
    {
      echo 
    "Salve" .  $toname ",
    "
    ;
      echo 
    "Un messaggio è stato inviato all'indirizzo [b]" $to "[/b] da te fornito.

    "
    ;
      echo 
    "CONSIGLIO:
    "
    ;
      echo 
    "Si consiglia vivamente di stampare tale email ricevuta e di non renderla visibile a nessuno onde evitare dispiacevoli situazioni di furto di dati personali.
    Grazie per la gentile collaborazione.

    "
    ;
    } else {
      echo 
    "Errore durante l'invio dell'e-mail.";
    }
    ?>



    <center>[url="P_01_homepage.php"]- Clicca qui per tornare alla Home Page -[/url]</center>

    </body>
    </html>
    Grazie a tutti coloro che mi aiuteranno!
    <<Meglio regnare all'inferno che servire in paradiso>>

  2. #2

    problema risolto!

    dovevo fare cosi:
    Codice PHP:
    //codice rfid e email contemporaneamente non sono presenti nel db
    if(mysql_num_rows($result) == 0)

    vedo che cmq qualcuno mi aveva aiutato!
    saluti
    <<Meglio regnare all'inferno che servire in paradiso>>

  3. #3
    si come vuoi dimmi tu quando sentirci su skype. fammi sapere. Ho ampliato un po tutto, secondo i miei bisogni, ma ti posso spiegare tutto.
    ho aggiunto un bel po di cami nuovi al db, poi ho fatto questo script sull'eventulae perdita della password e devo dire che funziona correttamente!
    Cmq sia sono a tua disposizione!
    Saluti
    <<Meglio regnare all'inferno che servire in paradiso>>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.