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

    Problema $_SESSION e MySQL

    Ho un problemone co una pagina php che dovrebbe modificare la password di un account tramite un form. I valori del form sono passati via Post. Prima di far comparire la pagina php (con include) c'è un controllo isset($_SESSION['Username']) per andare alla pagina solo se l'utente è loggato.

    Questo è il codice:

    Codice PHP:
    //Connette al database.
            
    include 'config.php';
            include 
    'connect.php';
            
            
    $passatt mysql_real_escape_string($_POST['passatt']);
            
    $passnew mysql_real_escape_string($_POST['passnew']);
            
    $passnewc mysql_real_escape_string($_POST['passnewc']);

            
    $userb mysql_real_escape_string($_SESSION['Username']);

            
    //Questa query riporta i dati dell'utente loggato.
            
    $queryacc "SELECT username,password FROM users WHERE username = '$userb' ";
            
    $resultqueryacc mysql_query($queryacc,$connect);
            if (!
    $resultqueryacc)
            {
                print 
    mysql_error($connect);
            }
            
            
    //$rowsacc riporta il numero di righe risultanti dalla query (una o nessuna).
            
    $rowsacc mysql_num_rows($resultqueryacc);
            
    //Controlla se risulta un solo account con quell'username (controllo forse superfluo/ridondante).
            
    if ($rowsacc==1)
            {
                
    //Controlla se la password attuale inserita è uguale alla password corrispondente nel database. 
                
    $rigaacc mysql_fetch_row($resultqueryacc);
                if (
    $passatt == $rigaacc[3])
                {
                    
    //Controlla se la nuova password è identica alla password di conferma.
                    
    if ($passnew == $passnewc)
                    {
                        
    //Query che modifica la password dell'utente loggato.
                        
    $queryp "UPDATE users SET password= '$passnew' WHERE username = '$userb' ";
                        
    $resultp mysql_query($queryp,$connect);
                        if (!
    $resultp)
                        {
                            print 
    mysql_error($connect);
                        }
                        
    $risultato 1;
                    }
                    else
                    {
                        
    //Se le nuove password non coincidono...
                        
    header("Location: ?errorepassconf");
                        
    $risultato 2;
                    }
                }
                else
                {
                    
    //Se la password attuale non è uguale a quella dell'account...
                    
    header("Location: ?errorepassatt");
                    
    $risultato 3;
                }
            } 
    Riporta questo:

    ( ! ) Notice: Undefined variable: _SESSION in C:\wamp\www\Sito E-Commerce\cambiapass.php on line 42 Call Stack # Time Memory Function Location 1 0.0007 694032 {main}( ) ..\cambiapass.php:0

    Da notare che se faccio soltanto stampare la variabile $_SESSION['Username'] la stampa senza problemi.
    Datemi una mano per favore che sto impazzendo, grazie. °_°

  2. #2
    Risolto...

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.