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. °_°