Visualizzazione risultati 1 fino 5 di 5

Discussione: Errore nella gestione delle variabili di sessione e cookie

  1. #1
    Guest

    Predefinito Errore nella gestione delle variabili di sessione e cookie

    ciao gente.
    sono letteralmente disperato.
    devo fare una banalissima procedura di login per una mini area privata.

    il fatto è che non riesco a propagare come dio comanda le variabili di sessione e quindi appena eseguo il login, quando torno indietro e faccio un check sulla variabile di sessione, NON va...

    sono 3 giorni che ci sbatto la testa, mi ero risolto a modificare il file .htaccess, ma mi aggiunge un pallosissimo PHPSESSID che mi richiede di riscrivere tutte le pagine, visto che alcune di esse non ricaricano nella querystring l'id e dunque si perde...

    volevo fare un banalissimo check sui cookie, per sostituirli alle sessioni..
    solo che nonostante in firefox riesca a vederli perchè vengono creati, non riesco a leggerli da script!!!!!

    sono disperato, devo fare sta cosa in brevi tempi, in locale andava tutto, ora è tutto in panne :..(

    come posso fare?!?!!?!?

    grazie

  2. #2
    Guest

    Predefinito

    puoi chiedere a Babbo Natale che ti faccia trovare tutto sotto l'albero oppure posti lo script e vediamo qual'è il problema ^^

  3. #3
    Guest

    Predefinito

    index.php
    Codice PHP:
    <?php
    //ini_set('session.use_trans_sid', true);
    session_start();
    include_once(
    'conn.inc.php');

    ?>
    <html>
    <head>
    <title>Modulo gestione velivoli</title>

    <script language='javascript' type='text/javascript'>

    function mostradiv(id){
    var el=document.getElementById(id);
    if(id == 'utenti'){
    document.getElementById('categorie').style.display = 'none';
    document.getElementById('pagine').style.display = 'none';
    }
    if(id == 'categorie'){
    document.getElementById('utenti').style.display = 'none';
    document.getElementById('pagine').style.display = 'none';
    }
    if(id == 'pagine'){
    document.getElementById('categorie').style.display = 'none';
    document.getElementById('utenti').style.display = 'none';
    }

    el.style.display=(el.style.display=='none')?'block':'none';

    }
    </script>
    <link href="stile.css" rel="stylesheet" type="text/css">
    </head>
    <body>

    <?php
    if(!isset($_SESSION['loggato']) || ($_SESSION['loggato'] != true)){

    echo
    "<center><h1>Modulo gestione velivoli Rotorjet</h1><form name='login' method='POST' action='login.php'>Username: <input type='text'

    name='un'> Password: <input type='password' name='pwd'> <input type='submit' name='sub' value='Entra'></form>"
    ;

    }

    if(isset(
    $_SESSION['loggato']) AND $_SESSION['loggato'] == 'true'){
    include(
    'testa.php');
    echo
    "<br><br><br>Login effettuato con successo. Sei nell'area privata del sito Rotorjet, lavora con criterio e cautela.<br>Evita di

    toccare
    se non sai cosa stai facendo."
    ;

    }


    ?>
    </center>


    </body>
    </html>
    login.php
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors', 1);
    //ini_set('session.use_trans_sid', true);

    session_start();
    include_once(
    'conn.inc.php');

    $un = stripslashes($_POST['un']);
    $pd = stripslashes(md5($_POST['pwd']));

    $q = mysql_query("SELECT * FROM utenti WHERE username='$un' AND password='$pd'");
    $row = mysql_fetch_array($q);
    if(
    mysql_num_rows($q) > 0){
    $_SESSION['loggato'] = true;
    $_SESSION['nome'] = $row['nome']." ".$row['cognome'];
    $_SESSION['status'] = $row['profilo'];
    setcookie('loggato',1, time()+3600);
    echo
    $_COOKIE['loggato'];

    echo
    "<a href='index.php'>Loggato con successo, vai a lavorare!</a>";
    //header('Location: index.php');

    }
    else{
    echo
    "Nome utente o password errati. <a href='javascript:history.back();'>Indietro</a> ";
    }
    ?>
    le variabili di sessione non sembrano essere trasmesse :(
    se provo a leggere i cookie, bypassando la sessioine, NON ottengo nulla.
    in firefox i cookie ci sono, li visualizzo nel menu, ma sia con print_r che con l'echo NON vedo un cacchio!

  4. #4
    Guest

    Predefinito

    Prova a cambiare questa riga
    Codice PHP:
    if(isset($_SESSION['loggato']) AND $_SESSION['loggato'] == 'true')
    con
    Codice PHP:
    if(isset($_SESSION['loggato']) AND $_SESSION['loggato'] == true)
    ..
    Ultima modifica di stoner : 22-12-2008 alle ore 21.47.29

  5. #5
    Guest

    Predefinito

    mm c'è un pò di confusione nel codice, vuoi usare sessioni o cookie?
    nel caso tu voglia usare i cookie, devi cambiare i $_SESSION['loggato'] presenti nell'index.php in $_COOKIE['loggato']
    nel caso delle sessioni, devi propagare l'id di sessione, questo avviene automaticamente attraverso la variabile e/o il cookie PHPSESSID (di default)

    ps. come suggerito da stoner, true è senza virgolette
    Ultima modifica di Inverno : 23-12-2008 alle ore 11.09.26

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •