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

    Controllo e update dati che non funziona con + di un insert

    ho fatto un controllo che serve per inviare una nuova password all'utente che la richiede. Un primo pezzo fa un controllo nel db ora se c'è un solo utente registrato il controllo funziona benissimo se ci sono appena due utenti dice che la "Username inserita non esiste" quando in realtà c'è ed è corretta.

    pezzo di codice che fa il controllo

    Codice PHP:
    else {
                             
    $query "SELECT username FROM users WHERE username != '$username'";
                             
    $result mysql_query($query$link) or die("Errore nella query:".mysql_error());
                             
                             if(
    mysql_num_rows($result) > 0) {
                            
                                
    $errori[0] ="la Username inserita non esiste";
                             } 
    pezzo di funzione checkerror

    Codice PHP:
    case "forgotpassword":
                     
    $errori CheckReg2();
                        if (
    count($errori) == 0) {
                            
                            
    $query "SELECT username FROM users WHERE username='$username' AND email = '$email'";
                            
                            
    $result mysql_query($query) or die("Errore nella query: " mysql_error());
                            
                            
    $check mysql_num_rows($result);

                            if(
    $check == 1){

                            function 
    new_pwd() {
                                      
    $chars "abchefghjkmnpqrstuvwxyz0123456789";
                                      
    srand((double)microtime()*1000000);
                                      
    $i 0;
                                      while (
    $i <= 7) {
                                                       
    $pwd "gjpoe";
                                                       
    $num rand() % 33;
                                                       
    $tmp substr($chars$num1);
                                                       
    $pwd $pwd $tmp $num;
                                                       
    $i++;
                                                      }
                                                return 
    $pwd;
                                                }
                                      
    $new_pwd new_pwd();
                                      
    $password md5($new_pwd);
                                      
    $sql mysql_query("UPDATE users SET password='$password' WHERE email='$email'"); 
    L'uomo che considera senza senso la propria vita e quella dei suoi simili, non è soltanto sfortunato ma è quasi squalificato per vivere.
    http://myscript72.altervista.org

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Bhè, hai visto che query stai eseguendo!? Traduco in linguaggio corrente: seleziona tutti i valori di "username" dalla tabella user in cui il valore "username" sia diverso da quello passato come argomento-

    codice:
    username
    
    PIPPO
    FRANCO
    GINO
    PEREPPEPPE
    e sia $username = "PIPPO"

    Risultato della query: hai selezionato FRANCO, GINO, PEREPPEPPE. Quindi 3 record. Più sotto fai il controllo: se hai selezionato 1 riga o più allora lanci l'errore. Magari sarebbe il caso di togliere il != dalla query e mettere solo "="
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    nulla da fare andrea, da lo stesso errore io voglio controllare che se la username non esiste non possso mandare la nuova password ecco perchè avevo utilizzato != comunque anche mettendo = non va lo stesso!!!
    L'uomo che considera senza senso la propria vita e quella dei suoi simili, non è soltanto sfortunato ma è quasi squalificato per vivere.
    http://myscript72.altervista.org

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    allora per controllare che username non esista il numero di righe ritornate è 0:
    codice:
    $query= "SELECT username FROM users WHERE username='$username'";
    ...
    ...
    
    $errori = array();
    $errori[] = (mysql_num_rows($result) == 0); //se $errori[0] è vera allora l'utente non è registrato
    codice:
    case "forgotpassword":
                     //$errori = CheckReg2();
                        if (!$errori[0]) {
                            
                            $query = "SELECT username FROM users WHERE username='$username' AND email = '$email'";
                            
                            $result = mysql_query($query) or die("Errore nella query: " . mysql_error());
                            
                            $check = mysql_num_rows($result);
    
                            if($check == 1){
    
                            function new_pwd() {
                                      $chars = "abchefghjkmnpqrstuvwxyz0123456789";
                                      srand((double)microtime()*1000000);
                                      $i = 0;
                                      while ($i <= 7) {
                                                       $pwd = "gjpoe";
                                                       $num = rand() % 33;
                                                       $tmp = substr($chars, $num, 1);
                                                       $pwd = $pwd . $tmp . $num;
                                                       $i++;
                                                      }
                                                return $pwd;
                                                }
                                      $new_pwd = new_pwd();
                                      $password = md5($new_pwd);
                                      $sql = mysql_query("UPDATE users SET password='$password' WHERE email='$email'");
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Niente, pensavo di aver risolto tutto invece no o meglio... i controlli singolarmente ora funzionano il problema e che ora devo fare in modo che la username deve coincidere con la email corretta altrimenti deve tirarmi fuori l'errore... ora succede che se metto una username corretta e una email corretta ma non coincidente con l'utente mi carica una pagina biaca

    questo è il controllo completo sul recupero della password uno fatto sulla username e l'altro fatto sulla email

    Codice PHP:
    function CheckReg2() { 
                     
    $errori = array(); 

                     include(
    "db_vars.inc");

                     
    $username trim($_POST["username"]);
                    
                     if (
    $username == ""
                         {
                         
    $errori[0] = "La [b]Username[/b] è obbligatoria";
                         } 
                         else if (
    strlen($username) < 6// controllo che la username inserita non sia < di 6 caratteri
                         

                         
    $errori[0] = "Il [b]Username[/b] non deve essere inferiore a sei caratteri";
                         } 
                         else if (!
    eregi("^([a-zA-Z]{3})([a-zA-Z0-9]*)$"$username))//la username inizia per forza con tre lettere 
                         

                         
    $errori[0] ="La [b]Username[/b] utilizzata contiene caratteri invalidi";
                         } 

                         else if (
    eregi("^((root)|(bin)|(daemon)|(adm)|(lp)|(sync)|(shutdown)|(halt)|(mail)|(html)|(xhtml)| 
                                      (news)|(uucp)|(operator)|(games)|(mysql)|(httpd)|(nobody)|(dummy)|(fedora)|(linux)|
                                      (www)|(cvs)|(shell)|(ftp)|(irc)|(debian)|(ns)|(download))$"
    $nome_utente)) // controllo che l'utente non inserisca nomi riservati 
                         

                         
    $errori[0] ="La [b]Username[/b] non può contenere nomi illegali"
                         } 
                                              
                         else {
                                 
    $query "SELECT username FROM users WHERE username = '$username'";
                                 
    $result mysql_query($query$link) or die("Errore nella query:".mysql_error());
                                 if(
    mysql_num_rows($result) == 0) { 
                                    
    $errori[0] ="la Username inserita non esiste";
                             }
                        
                         }
                     
                     
    $email trim($_POST["email"]);

                     if (
    $email == "")

                         {
                         
    $errori[1] = "Il campo [b]E-mail[/b] è vuoto";
                         }

                         else {
                                 
    $query "SELECT email FROM users WHERE email = '$email'";
                                 
    $result mysql_query($query$link) or die("Errore nella query:".mysql_error());
                                 if(
    mysql_num_rows($result) == 0) {
                                    
    $errori[1] ="L'email inserita non appartiene ad un utente registrato";
                                 } 
                             }

                     return 
    $errori
                     } 
    L'uomo che considera senza senso la propria vita e quella dei suoi simili, non è soltanto sfortunato ma è quasi squalificato per vivere.
    http://myscript72.altervista.org

  6. #6
    nulla..
    Codice PHP:
    $email trim($_POST["email"]);

                     if (
    $email == "")

                         {
                         
    $errori[1] = "Il campo [b]E-mail[/b] è vuoto";
                         }

                         else {
                                 
    $query "SELECT email FROM users WHERE email = '$email'";
                                 
    //$query = "select email from users where username = '".$username."' and email = '".$email."' "; 
                                 
    $result mysql_query($query$link) or die("Errore nella query:".mysql_error());
                                 if(
    mysql_num_rows($result) == 0) {
                                    
    $errori[1] ="L'email inserita non appartiene ad un utente registrato";
                                 }
                             }    

                     return 
    $errori
                     } 
    L'uomo che considera senza senso la propria vita e quella dei suoi simili, non è soltanto sfortunato ma è quasi squalificato per vivere.
    http://myscript72.altervista.org

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    codice:
    $query = "SELECT * FROM users WHERE username='$username' AND email='$email'";
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.