Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Session timeout

  1. #1

    Session timeout

    Ciao a tutti, avrei un quesito trito e ritrito (lo so...) che però non riesco a risolvere da me, anche perchè guardando il forum le possibili soluzioni non funzionano... Ho un sito su aruba in cui gestisco un'area riservata tramite le sessioni. Il problema è che le sessioni mi scadono dopo una decina di minuti e questa cosa non mi va affatto bene. Per gestire le sessioni utilizzo due file php che includo alle pagine dell'area riservata.
    Uno è controllo_login.php, cioè questo:

    Codice PHP:
    <?
    ini_set
    ("session.gc_maxlifetime""3600");
    session_start(); //..avviamo la sessione...
    $username_post=mysql_escape_string($_POST['username']);
    $password_post=mysql_escape_string($_POST['password']);
    //
    //Controlliamo se tutti i campi sono compilati

    if($_POST['username']== "" || $_POST['password'] == "" )
    //Se alcuni campi non sono compilati...
    {
      die(
    "Alcuni campi non sono compilati"); //...terminiamo lo script e mandiamo un errore all'utente
    }

    //Impostiamo la query...
    $query "SELECT COUNT(*) n  FROM utenti WHERE username = '$username_post' AND password='$password_post' ";
    $risultato mysql_query($query//...e la eseguiamo
    or die("Impossibile eseguire query.
    "
    .mysql_error()); //Oppure mandiamo il solito errore
    $find mysql_fetch_assoc($risultato); //Fissiamo la riga

    //se non c'è un utente con quei dati quindi login errata:
    if ($find['n']==0)
    {
      die(
    "Username e/o password errati"); //..mandiamo l'errore e terminiamo lo script
    }
    else {
        
    $HTTP_SESSION_VARS['username'] = $username_post;
        
    $HTTP_SESSION_VARS['password'] = $password_post;
        
    $username $HTTP_SESSION_VARS['username'];
    }
    ?>
    ed è presente soltanto nella pagina che prende i dati dalla form principale per la login, mentre l'altro è controllo_dati.php, cioè questo:

    Codice PHP:
    <?php 
        ini_set
    ("session.gc_maxlifetime""3600"); 
        
    session_start ();
        
    //echo ini_get ("session.gc_maxlifetime");
        
    if(!isset($HTTP_SESSION_VARS['username'])){ 
            echo 
    "Sessione non creata;";
    }
        
        
    $username $HTTP_SESSION_VARS['username'];
        
        if (
    $HTTP_SESSION_VARS['username']=="")
            die (
    "Non hai i diritti per accedere a questa pagina");
    ?>
    ed è presente come primissima cosa su ogni pagina all'interno dell'area riservata.
    Ora attraverso ini_set dovrei aumentare il tempo di validità delle sessioni ad un'ora (3600 secondi = 1 ora), ma dopo una decina di minuti, invece, succede che la pagina cambia automaticamente e scrive "Sessione non creata;Non hai i diritti per accedere a questa pagina".
    Qualcuno potrebbe darmi delle delucidazioni?? Thanks..

    p.s.: ah, controllando le impostazioni del php.ini attraverso la funzione php_info() mi dà come valore di session.gc_maxlifetime in local value 3600 e in master value 1440 (cioè 24 minuti). Quindi dovrebbe funzionare la cosa... mah... non funziona!!!

    AIUTOOOO

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    $HTTP_SESSION_VARS è da usare per PHP 4.0.6 o inferiore, prova ad usare $_SESSION al suo posto. Ciao

  3. #3
    ho appena messo a posto come mi avevi detto tu.. sembrerebbe funzionare.. Thanks

  4. #4
    Come non detto.. mi dà sempre "Sessione non creata;Non hai i diritti per accedere a questa pagina" dopo una decina di minuti.... altre idee??

  5. #5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.