Salve a tutti, sono ancora qui con un altro problema in php XD
Praticamente ho creato un sistema di registrazione e login degli utenti.
Ovviamente ora ho creato anche una pagina con il proprio account.
Il problema è che, facendo il login per la prima volta, i dati nell'account non vengono visualizzati, se invece si esce e si rientra vengono visualizzati correttamente.
Non capisco il perché di questo.
Come detto in altre discussioni sono una capra in php XD, quindi non fate caso ai vari errori e imprecisioni nel codice:
Questo è il login con il logout:
Questo è il recupero dei dati ecc.
E infine con questo recupero i dati dal database:
Non capisco dove sbaglio.
Grazie mille a tutti per l'aiuto
Praticamente ho creato un sistema di registrazione e login degli utenti.
Ovviamente ora ho creato anche una pagina con il proprio account.
Il problema è che, facendo il login per la prima volta, i dati nell'account non vengono visualizzati, se invece si esce e si rientra vengono visualizzati correttamente.
Non capisco il perché di questo.
Come detto in altre discussioni sono una capra in php XD, quindi non fate caso ai vari errori e imprecisioni nel codice:
Questo è il login con il logout:
PHP:
<?php if(isset($_SESSION['utente']))
{
echo "Ciao ".$_SESSION['utente']." | <a href='account.php?azione=logout' class='logout'>Esci</a>";
} else {
echo "<a href='account.php?azione=login' class='login'>Accedi</a>";
}
?>
<?php
$p = $_GET['azione'];
if($p == "login"){
if(!isset($_POST['invia'])){ ?>
<br />
<form method="post" action="#" id="formlogin">
<label for="username">Nome Utente</label><br />
<input type="text" name="username" id="username" /><br><br>
<label for="password">Password</label><br />
<input type="password" name="password" id="password" /><br /><br>
<input type="submit" name="invia" id="buttonlogin" value="Entra" />
</form>
Questo è il recupero dei dati ecc.
PHP:
<?php
} else {
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
if($username == "" || $password == ""){
echo "Attenzione, devi inserire sia il Nome utente che la Password.";
} else {
$password_cript = md5($password);
mysql_query("SELECT * FROM utenti WHERE id = ".$_SESSION['id']);
$recuperadati = mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password_cript'");
$verificadati = mysql_num_rows($recuperadati);
if($verificadati == 1){
$sessione = mysql_fetch_array($recuperadati);
$_SESSION['id'] = $sessione['id'];
$_SESSION['utente'] = $sessione['username'];
$_SESSION['email2'] = $sessione['email'];
$_SESSION['nome2'] = $sessione['nome'];
$_SESSION['cognome2'] = $sessione['cognome'];
echo "<br><b>Login effettuato con successo.</b>";
header("Refresh: 2; URL= account.php");
} else {
echo "Utente o password sbagliati.";
}
}
}
} elseif ($p == "logout"){
session_destroy();
echo "<br>Logout effettuato con successo!";
header("Refresh: 2; URL= account.php");
}
?>
E infine con questo recupero i dati dal database:
PHP:
<?php if(isset($_SESSION['utente'])) {
echo "<b>Email: </b>"; echo $_SESSION['email2']; echo "<br>";
echo "<b>Nome: </b>"; echo $_SESSION['nome2']; echo "<br>";
echo "<b>Cognome: </b>"; echo $_SESSION['cognome2']; echo "<br>";
?>
Non capisco dove sbaglio.
Grazie mille a tutti per l'aiuto