Ho creato una pagina di login, login.php, che ha un collegamento con la pagina profile.php.
Il problema è che, anche se loggato, dopo avermi detto "Login effettuato con successo!" mi riporta alla pagina profile.php dicendomi "Non puoi accedere". Perché anche se il login è corretto?
Vi inserisco i codici nella speranza che, per favore, li possiate correggere.
login.php:
Codice PHP:
<?php
include 'header.php';
?>
<span style="left:0px;top:0px;width:1032px;height:208px">
[img]register_file/image3001.jpg[/img]
</span>
<div id="wrapper">
<?php
$p = $_GET['azione'];
// login.php?azione=login
if($p == "login"){
if(!isset($_POST['invia'])){ ?>
<form method="post" action="#" id="formlogin">
<label for="username">Username</label>
<input type="text" name="username" id="username" />
<label for="password">Password</label>
<input type="password" name="password" id="password" />
<input type="submit" name="invia" id="login" value="Accedi" />
</form>
<?php } else {
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
if($username == "" || $password == ""){
echo "Attenzione, devi compilare tutti i campi";
} else {
$password_cript = md5($password);
$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);
// etc etc
$_SESSION['utente'] = $sessione['username'];
$_SESSION['id_logged'] = $sessione['id_utente'];
// etce etc
echo "Login effettuato con successo!";
header("Refresh: 2; URL= profile.php?=$_SESSION");
} else {
echo "Dati non presenti nel database!";
}
}
}
// login.php?azione=logout
} elseif ($p == "logout"){
session_destroy();
echo "Logout effettuato con successo!";
header("Refresh: 2; URL= index.php");
}
?>
</div>
</body>
</html>
profile.php:
Codice PHP:
<?php
session_start();
if(!isset($_SESSION['id_logged'])){
exit('non puoi accedere');
}
$sql = "SELECT * FROM users WHERE id='" .intval($_SESSION['id_logged']). "' LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
// etc etc
Se mi aiuterete ve ne sarò grati.
Per favore e grazie a tutti in anticipo,
marco1996.