• User Attivo

    php problema con le sessioni.

    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:
    [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><br />
    	
    		<input type="submit" style="margin: -20px 0 0 287px;" class="button" name="commit" value="Entra"/>	
    	</fieldset>
    </form>
    

    [/PHP]
    dove mi richiamo la mia pagina gestione.php
    [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>";
    }
    ?>
    [/PHP]

    dove la mia pagina login.php è la seguente:
    [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>
    [/PHP]

    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