Salve, ho un sistema di login che usa le sessioni, ma da problemi. Il fatto è che dopo il login lo script reindirizza ad una pagina set, la quale a sua volta reindirizza alla index dell'area privata. Il problema che la pagina set elabora tutto correttamente, quando reindirizza all'index della area privata la funzione "chek", che deve verificare se un utente è loggato o meno, mi dice sempre che l'utente non è loggato, e quindi mi reindirizza alla pagina di login.
Vi includo il codice!
Login.php:
Codice PHP:
session_start();
include ("lib/class.php");
$DB = new DB();
unset($_SESSION['login']);
unset($_SESSION['psw']);
$login = trim(addslashes($_POST['login']));
$pass = trim(addslashes($_POST['psw']));
if ($login=='' or $pass=='') {
echo"<form name='login' action='' method='post'>
<table>
<tr>
<td>Mail:</td>
<td><input type='text' name='login'></td>
</tr>
<tr>
<td>Password:</td>
<td><input type='password' name='psw'></td>
</tr>
<tr>
<td><input type='submit' name='Accedi' value='Accedi'></td>
<td></td>
</tr>
</table>";
}
else {
$psw_per_db = criptpass($pass);
$DB->connessione();
$verifico_user = mysql_query("SELECT *
FROM `utenti`
WHERE `email` ='$login'
AND `pass` = '$psw_per_db' and `stato` = '1'
LIMIT 0 , 1");
$ok_login = mysql_num_rows($verifico_user);
$DB->disconnessione();
if($ok_login=="1") {
$_SESSION['login'] = $login;
$_SESSION['psw']= $psw_per_db;
echo "<meta http-equiv=\"Refresh\" content=\"2; URL=$url_sito/login/set.php\">Login effettuato correttamente!";
}
else
echo "<meta http-equiv=\"Refresh\" content=\"3; URL=$pag_login\">Login incorretto o utente che non ha ancora completato il processo di registrazione. In questo caso controlla la tua email<a href=$pag_login>Premi qui per riprovare</a>";
}
set.php
Codice PHP:
session_start();
if($_SESSION['login']!='' && $_SESSION['psw']!=''){
$cook = "$_SESSION[login]##$_SESSION[psw]";
setcookie ("login", $cook);
header("Location: ../cp_user.php");
}
else
header("Location: ../login.php");
Set reindirizza poi su cp_user.php, all'inizio della quale uso la funzione
Codice PHP:
session_start();
include ("lib/class.php");
$DB = new DB();
$DB->connessione();
$parti = explode("##",$_COOKIE['login']);
$mail_utente_cookie = $parti['0'];
$password_utente_cookie = $parti['1'];
$verifico_user1 = mysql_query("SELECT *
FROM `utenti`
WHERE `email` ='$mail_utente_cookie'
AND `pass` = '$password_utente_cookie'
LIMIT 0 , 1");
$ok = mysql_num_rows($verifico_user1);
$_SESSION['autorizzato'] = $ok;
$autorizzato = $_SESSION['autorizzato'];
$_SESSION['mail_utente']= $mail_utente_cookie;
$mail_utente = $_SESSION['mail_utente'];
$DB->disconnessione();
if( $autorizzato!=1 )
echo "<meta http-equiv=\"Refresh\" content=\"3; URL=$pag_login\">$autorizzato";
Mi faccio stampare per verifica la variabile $autorizzato, è mi da sempre 0, e quindi mi reindirizza al login.
Riuscite a vedere cosa non va nella gestine delle sessioni?