Ragazzi ho un problema con la mia funzione login, non riesco a portarmi la sessione da una pagina all'altra.
nella mia pagina index.php ho il seguente form:
Codice PHP:
<form id="login-form" action="gestione.php" method="post">
<fieldset>
<legend>Entra</legend>
<label for="login">Username</label>
<input type="text" id="login" name="user_accesso" style="text-transform:lowercase;"/>
<div class="clear"></div>
<label for="password">Password</label>
<input type="password" id="password" name="pass_accesso"/>
<div class="clear"></div>
<input type="submit" style="margin: -20px 0 0 287px;" class="button" name="commit" value="Entra"/>
</fieldset>
</form>
dove mi richiamo la mia pagina gestione.php
Codice PHP:
<?php
if(!isset($_SESSION["user111"])){
include 'login.php';
}
if(!isset($_SESSION["user111"])){
echo "<script>document.location.href='index.php'</script>";
echo "<script>'Content-type: application/octet-stream'</script>";
}
?>
dove la mia pagina login.php è la seguente:
Codice PHP:
<?php
$redirect="index.php";
if (isset($_GET['username']) && isset($_GET['email']) )
{
$login_user_form=$_GET['username'];
$login_user_form=mysql_real_escape_string ($login_user_form);
$email=$_GET['email'];
$email=mysql_real_escape_string ($email);
$pass=@mysql_query("SELECT pass FROM utenti WHERE email=\"$email\" ") or die(mysql_error());
$pass_user = mysql_fetch_array($pass);
$pass_user_form=$pass_user[0];
}
else {
$login_user_form=$_POST['user_accesso'];
$login_user_form=mysql_real_escape_string ($login_user_form);
$pass_user_form=$_POST['pass_accesso'];
}
$pass=@mysql_query("SELECT pass,abilita FROM utenti WHERE user_name=\"$login_user_form\" ") or die(mysql_error());
$pass_user = mysql_fetch_array($pass);
//gestione della sessione nel caso in cui i cookie sono disabilitati
if(isset($_POST['PHPSESSID']) && !isset($_COOKIE['PHPSESSID'])){
$PHPSESSID=$_POST['PHPSESSID'];
header("Location: $redirect?PHPSESSID=$PHPSESSID"); //si ricarica la pagina di login
}
session_start(); //si inizia o continua la sessione
//controllo login e passwprd se sono vuoti
if ($login_user_form=='' or pass_user_form=='' ){
echo ("<script> alert('Inserisci Nome Utente e\o Password!') </script>");
echo "<script>document.location.href='index.php'</script>";
echo "<script>'Content-type: application/octet-stream'</script>";
}
//controllo user e passwd da login
if(isset($login_user_form) && isset($pass_user_form)){
if($pass_user[0]==$pass_user_form and $pass_user[1]==1)
{$_SESSION['user111']=$login_user_form;}
if($pass_user[0]==$pass_user_form and $pass_user[1]==0)
{echo ("<script> alert('Devi convalidare la registrazione, cliccando sul link ricevuto via email.')</script>");
echo "<script>document.location.href='index.php'</script>";
echo "<script>'Content-type: application/octet-stream'</script>"; }
if($pass_user[0]!=$pass_user_form)
{echo ("<script> alert(' Nome Utente o Password errata!') </script>");
echo "<script>document.location.href='index.php'</script>";
echo "<script>'Content-type: application/octet-stream'</script>";}
}
//creazione cookie per login automatico
if(isset($_POST['ricorda']) && isset($_SESSION['user111'])){
$cok=md5($login_user)."%%".$pass_user[0];
setcookie("sav_user",$cok,time()+31536000);
}
//logout
if(@$_GET['logout']==1){
unset($_SESSION);
$_SESSION=array(); // Desetta tutte le variabili di sessione.
unset($_SESSION);
session_destroy(); //DISTRUGGE la sessione.
if(isset($_COOKIE['sav_user'])) //se presente si distrugge il cookie di login automatico
setcookie("sav_user",$cok,time()-31536000);
header("Location: $redirect"); //si ricarica la pagina di login
exit; //si termina lo script in modo da ritornare alla schermata di login
}
//controllo user e password da cookie
if(isset($_COOKIE['sav_user'])){
$info_cok=$_COOKIE['sav_user'];
$cok_user=strtok($info_cok,"%%");
$cok_pass=strtok("%%");
setcookie("sav_user",$info_cok,time()+31536000);
if($cok_user==md5($login_user) && $cok_pass==$pass_user[0])
$_SESSION['user111']=$login_user;
}
//caso in cui si vuole ricordare il login, ma i cookie sono off
if(!isset($_COOKIE['PHPSESSID']) && isset($_POST['ricorda']))
header("Location: $redirect?nocookie=1");
$PHPSESSID=session_id(); ?>
<?php
if(!isset($_SESSION['user111'])){ //non siamo loggati, pagina di login
if(@$_GET['nocookie']==1){ //i cookie sono off e si vuole ricordare il login
print("<script>alert('I cookie sono disabilitati. Attivali per il login automantico!')</script>");
echo "<script>document.location.href='index.php'</script>";
echo "<script>'Content-type: application/octet-stream'</script>";}
?>
<?php
if(!isset($_COOKIE['PHPSESSID'])) //i cookie sono off, dobbiamo propagare noi il PHPSESSID
print("<input type=\"hidden\" name=\"phpsessid\" value=\"$PHPSESSID\" />");}
else{
$username=$_SESSION['user111'];
$id_utente_1 = mysql_query("SELECT id FROM utenti WHERE user_name=\"$username\" ") or die(mysql_error());
$id_utente = mysql_fetch_array($id_utente_1);
echo $id_utente['id'];
}
?>
<div align="center">
<form action="gestione.php?logout=1" method="post">
<input id="loginsubmit" type="submit" value="Logout" >
</form>
</div>
il problema è che se poi mi richiamo un'altra pagina del tipo gestione.php?page=2 mi dice che non sono loggato, come mai? sto impazzendo