Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Durata sessione, come impostarla correttamente?

    Ciao a tutti, ho già letto diverse discussioni sull'argomento ma a quanto pare non riesco a trovare soluzione, probabilmente sbaglio qualcosa io.

    Sto lavorando su un sito in cui ho inserito le sessioni per gli utenti che si loggano.

    Nelle pagine viene incluso ad inizio pagina un file php che contiene:

    codice:
    ini_set ('session.gc_maxlifetime', '3600'); 
    ini_set ('session.cookie_lifetime', '3600'); 
    ini_set('max_execution_time', '300');
    ini_set('max_input_time', 170);
    ini_set("memory_limit",'128M');
    
    
    session_start(); //inizio la sessione
    session_regenerate_id(); //rigenera l'id per evitare session fixation
    
    
    setcookie("cookie_test", "cookie_value", time()+3600);

    Solo che quando si logga un utente, la sessione gli dura "molto" meno dei 3600 secondi impostati.
    Sapete darmi una mano, per capire dove sta il problema? Ringrazio in anticipo chiunque risponda.

    "Forse"
    bisogna cambiare la cartella in cui salva di default la sessione con ini_set("session.save_path","/web/htdocs/www.miodominio.com/home/tmp/");
    perchè magari Aruba gestisce la temp in modo condiviso e perciò vale il tempo massimo impostato da loro (es. 10 min), raggiunto il quale vengono cancellate tutte le sessioni che sono inattive da più di 10 minuti, ignorando il dominio a cui tali sessioni appartengono.... ora sto provando.. vediamo.


    Il sito è in hosting su Aruba e eseguendo phpinfo, i dati sulla sessione mostrati sono i seguenti:

    codice:
    session
    
    
    Session Support enabled
    Registered save handlers files user sqlite
    Registered serializer handlers php php_binary wddx
    Directive Local Value Master Value
    session.auto_start Off Off
    session.bug_compat_42 Off Off
    session.bug_compat_warn Off Off
    session.cache_expire 180 180
    session.cache_limiter nocache nocache
    session.cookie_domain no value no value
    session.cookie_httponly Off Off
    session.cookie_lifetime 3600 0
    session.cookie_path / /
    session.cookie_secure Off Off
    session.entropy_file no value no value
    session.entropy_length 0 0
    session.gc_divisor 1000 1000
    session.gc_maxlifetime 3600 1440
    session.gc_probability 1 1
    session.hash_bits_per_character 5 5
    session.hash_function 0 0
    session.name PHPSESSID PHPSESSID
    session.referer_check no value no value
    session.save_handler files files
    session.save_path /tmp /tmp
    session.serialize_handler php php
    session.use_cookies On On
    session.use_only_cookies On On
    session.use_trans_sid 0 0
    Ultima modifica di Pandax; 04-11-2013 a 11:53

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Se non funziona è possibile che il server sia impostato per non tener conto degli ini_set(), ciò accade solitamente su spazi web condivisi.
    Se così fosse non puoi farci niente e per sapere se è davvero così devi chiedere al supporto tecnico del provider su cui hai il sito.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Se non funziona è possibile che il server sia impostato per non tener conto degli ini_set(), ciò accade solitamente su spazi web condivisi.
    Se così fosse non puoi farci niente e per sapere se è davvero così devi chiedere al supporto tecnico del provider su cui hai il sito.
    Grazie per l'indicazione, ho già mandato richiesta di assistenza ad Aruba, attendo risposta.

    Ho aggiunto anche la riga ini_set("session.save_path","/web/htdocs/www.miodominio.com/home/tmp/");

    e con una prova fatta al volo... "sembra" durare di più... "forse" era quello, ne avrò conforme nelle prossime settimane con l'utilizzo reale.

  4. #4
    Nelle pagine viene incluso ad inizio pagina un file php che contiene:
    se fai eseguire ogni volta il codice che hai postato è ovvio che la sessione dura in eterno. Ogni volta che aggiorni la pagina aggiorni anche il valore del cookie e la data di scadenza..
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    se fai eseguire ogni volta il codice che hai postato è ovvio che la sessione dura in eterno. Ogni volta che aggiorni la pagina aggiorni anche il valore del cookie e la data di scadenza..
    Ha il problema opposto, non gli dura in eterno, gli scade prima dei 3600 secondi
    Solo che quando si logga un utente, la sessione gli dura "molto" meno dei 3600 secondi impostati.

  6. #6
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Ha il problema opposto, non gli dura in eterno, gli scade prima dei 3600 secondi
    che stordito!


    quel che non capisco è cosa centra il cookie con la sessione? il cookie lo salva nel pc dell'utente ma poi non si vede cosa ne fa.. messa cosi la domanda è incompleta :boh:

    l'unico suggerimento è quello di provare a togliere il setcookie() e fare un "echo $_COOKIE['cookie_test']" ogni 5 minuti per vedere quanto dura..
    ma essendo il cookie salvato sul pc dell'utente durerà time()+3600
    Questa volta, più che un voto.. è favoreggiamento.

  7. #7
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    che stordito!


    quel che non capisco è cosa centra il cookie con la sessione? il cookie lo salva nel pc dell'utente ma poi non si vede cosa ne fa.. messa cosi la domanda è incompleta :boh:

    l'unico suggerimento è quello di provare a togliere il setcookie() e fare un "echo $_COOKIE['cookie_test']" ogni 5 minuti per vedere quanto dura..
    ma essendo il cookie salvato sul pc dell'utente durerà time()+3600

    Colpa mia ho copiato righe di codice che non centravano...
    mi riferivo ovviamente solo alla Sessione.. il settaggio del cookie non centra con la sessione, ma nello specifico veniva usato in via sperimentale per salvare determinate personalizzazioni dell'utente.

    in ogni caso, Aruba ha risposto consigliandomi di mettere la riga di cui parlavo sopra, ed in effetti da quando l'ho messa sembra funzionare meglio.. come ho detto si vedrà con l'utilizzo ma il problema pare risolto.

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.