Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 51
  1. #1

    files .tmp delle sessioni

    Ciao a tutti,

    sto sviluppando un sito che usa delle sessioni. Ho visto che i files con i dati delle sessioni vengono salvati nella directory /tmp sul mio pc ( in locale ) e ovviamente anche sul server ( quando online ). La mia domanda è: ma questi files sul server resteranno sempre lì o c'è un limite di tempo oltre il quale scadono e vengono cancellati automaticamente?

    Grazie mille a tutti, ciao!

  2. #2
    tranquillo... c'è un "limite di tempo"

    il limite lo puoi impostare da php.ini

    ; Document expires after n minutes.
    session.cache_expire = 180
    http://www.ophera747.com

  3. #3
    Ciao,

    dopo che la sessione è scaduta vengono cancellati probabilisticamente ogni n accessi su 100 (vedi direttiva php.ini)

    session.gc_probability = 1
    session.gc_divisor = 100

    La vita della sessione è stabilita da

    session.gc_maxlifetime = 1440

    La direttiva citata da audio riguarda la cache del browser
    per favore NIENTE PVT TECNICI da sconosciuti

  4. #4

    3D interessante ... quindi lo riuppo

    Basandomi sull' articolo di GM , sicuramente datato ma non per questo non sfruttabile, mi sono venuti alcuni dubbi per un sistema che sto' creando per i razzi miei.


    maxlifetime e' 1440 , l' equivalente di 24 minuti se non erro.

    Di qui i vari quesiti sul comportamento effettivo di questo valore.

    Con una banale pagina come questa:
    codice:
    <?php
    session_start();
    if(isset($_SESSION['test']))
    	echo 'setted';
    else {
    	$_SESSION['test'] = true;
    	echo 'not setted';
    }
    ?>
    ho notato che i fantomatici 24 minuti non esistono, ovvero se io apro quella pagina, aspetto 1 ora e mezzo, faccio aggiorna, il file stampera' sempre e comunque 'setted' sia che nella pagina ci siano stati nel frattempo altri utenti, sia che non ci sia stato nessuno.

    Allora mi domando, cosa fa di preciso quel controllo ?

    1 - E' giusto dire che finche' l' utente non chiude il browser le variabili salvate in sessione rimarranno sempre raggiungibili ?

    2 - E' giusto dire che ogni volta che l'utente aggiorna o visita quella pagina senza uscire dal browser, il tempo di validita' della sessione viene aggiornato (quindi rimandato) ?


    Soprattutto sempre rifacendomi all' articolo di GM, il suo sistema non aggiorna mai la lifetime del visitatore, quindi dopo 1800 secondi (30 minuti) anche se l'utente non ha mai chiuso il browser ed anche se l'utente sta' navigando il sito, le sue variabili verrebbero cancellato al primo richiamo del "garbage" ... mandando in notice e/o altri errori quel sisema e "cacciando" l'utente forzatamente dal server ( nel senso eliminando ogni sua traccia ) .

    E' cosi' che si comportano le sessioni di Apache ? Dopo tot tempo chi e' entrato prima dei 24 minuti puo' trovarsi senza piu' alcun dato anche se nel frattempo ha navigato il sito ?

    Grazie
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    bellissima domanda, però forse per avere una risposta corretta ti conviene postare sul sito della zend
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #6

    Re: 3D interessante ... quindi lo riuppo

    Originariamente inviato da andr3a
    ho notato che i fantomatici 24 minuti non esistono, ovvero se io apro quella pagina, aspetto 1 ora e mezzo, faccio aggiorna, il file stampera' sempre e comunque 'setted' sia che nella pagina ci siano stati nel frattempo altri utenti, sia che non ci sia stato nessuno.
    $_SESSION e' sempre settato. Prova con EMPTY().
    Allora mi domando, cosa fa di preciso quel controllo ?

    1 - E' giusto dire che finche' l' utente non chiude il browser le variabili salvate in sessione rimarranno sempre raggiungibili ?
    Dipende, se la sessione e' rimasta inattiva per 24 minuti no. ti verra' assegnato un altro id di sessione ovviamente vuoto. Sta al tuo script valutare se esiste o meno un segnale di sessione valida presente nella variabile _SESSION. Se la sessione e' vuota rimandi al login.
    2 - E' giusto dire che ogni volta che l'utente aggiorna o visita quella pagina senza uscire dal browser, il tempo di validita' della sessione viene aggiornato (quindi rimandato) ?
    Si e' esatto, viene aggiornata la data/ora di apertura del file a livello file system. La sessione si basa su quel valore. Pero' e' una domanda interessante la tua. Bisognerebbe vedere se la data si aggiorna anche in lettura (al session_start()) oppure solo in scrittura all'uscita dallo script. Penso (IMHO) pero' che la data/ora venga ribadita al session_start().
    Soprattutto sempre rifacendomi all' articolo di GM, il suo sistema non aggiorna mai la lifetime del visitatore, quindi dopo 1800 secondi (30 minuti) anche se l'utente non ha mai chiuso il browser ed anche se l'utente sta' navigando il sito, le sue variabili verrebbero cancellato al primo richiamo del "garbage" ... mandando in notice e/o altri errori quel sisema e "cacciando" l'utente forzatamente dal server ( nel senso eliminando ogni sua traccia ) .
    Un sistema di sessioni su db lo gestisci tu come ti pare. Non c'entra nulla con la sessione di apache. Nel momento in cui verifichi la sessione come non valida devi rimandare al login e non continuare lo script. Ma questo lo decidi tu.
    E' cosi' che si comportano le sessioni di Apache ? Dopo tot tempo chi e' entrato prima dei 24 minuti puo' trovarsi senza piu' alcun dato anche se nel frattempo ha navigato il sito ?
    No, Se ha navigato il sito rimanendo nella sessione oppure anche navigato su altro sito ma facendosi vivo prima della scadenza del time out senza pero' mai chiudere il browser, la sessione rimane viva finche' peste non colga l'enel.

    Rimane sempre da valutare il comportamento del browser. Explorer se apri una nuova finestra ti porta nel medesimo URL da cui hai aperto, con gli stessi diritti. Fx no, ti apre alla pagina di default. Se hai strutturato bene lo script (o male dipende dai punti di vista) potresti trovarti in condizione di doverti identificare nuovamente. Ti verra' pero' assegnato lo stesso session_id della finestra originaria. In pratica copiando l'url ti trovi autenticato anche con Fx perche' il cookie di sessione utilizzato e' lo stesso.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    ps....

    Ovviamente in presenza del settaggio standard delle sessioni in php.ini.... Banale, ma essenziale per capirci.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8

    Re: Re: 3D interessante ... quindi lo riuppo

    Originariamente inviato da piero.mac
    $_SESSION e' sempre settato. Prova con EMPTY().
    si, buon giorno piero, preso caffe' ? ... che $_SESSION come super globale c'e' sempre a me importa zero poiche' non verifico _SESSION, ma _SESSION['test'], il quale infatti alla prima visita non sara' valido e la pagina scrivera' "not setted"


    Originariamente inviato da piero.mac
    Dipende, se la sessione e' rimasta inattiva per 24 minuti no. ti verra' assegnato un altro id di sessione ovviamente vuoto.
    e' questo il punto, non e' cosi' ... reta lo stesso ID, perlomeno con FireFox, anche dopo 3 ore il valore riamne invariato ... cioe' risultera' "setted" , ovviamente senza aver mai chiuso il browser


    Originariamente inviato da piero.mac
    Un sistema di sessioni su db lo gestisci tu come ti pare. Non c'entra nulla con la sessione di apache.
    E' logico ed ovvio ma se l'intento e' proprio quello di replicare il funzionamento delle sessioni in PHP non se ne viene a capo ... per ora ...


    Originariamente inviato da piero.mac
    Nel momento in cui verifichi la sessione come non valida devi rimandare al login e non continuare lo script. Ma questo lo decidi tu.
    logico, resta il punto di prima, replicare il funzionamento di session_start() e _SESSION


    Originariamente inviato da piero.mac
    No, Se ha navigato il sito rimanendo nella sessione oppure anche navigato su altro sito ma facendosi vivo prima della scadenza del time out senza pero' mai chiudere il browser, la sessione rimane viva finche' peste non colga l'enel.
    perfetto, pero' e' cosi' anche se superi il fantomatico timeout



    Originariamente inviato da piero.mac
    Rimane sempre da valutare il comportamento del browser. ... In pratica copiando l'url ti trovi autenticato anche con Fx perche' il cookie di sessione utilizzato e' lo stesso.
    e questa e' l'unica parte che non ha problemi
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    mmm potrebbe essere la cache?

    fallo scrivere su un file il risultato dell'operazione, o + semplicemente fai un bel print_r su file

    $fp = fopen('test.txt', 'wb');
    fwrite(print_r($_SESSION, true), $fp);
    fclose($fp);

    cosi siamo sicuri che nn sia la cache ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10

    Re: Re: Re: 3D interessante ... quindi lo riuppo

    Originariamente inviato da andr3a
    e' questo il punto, non e' cosi' ... reta lo stesso ID, perlomeno con FireFox, anche dopo 3 ore il valore riamne invariato ... cioe' risultera' "setted" , ovviamente senza aver mai chiuso il browser
    Logico. Se session.cookie_lifetime = 0 sara' valido fino alla chiusura del browser, ma sara' inutilizzabile il contenuto del file. Lascia perdere il true che per un file di sessione e' una emerita cazzata. ogni cosa e' TRUE purche' non sia vuoto o zero. Mettici

    $_SESSION['check'] = 'Andr3a';

    e poi non fare un refresh che si va a leggere la cache, ma cambia pagina. Aspetta 24 minuti (o accorcia il tempo in php.ini) e poi prova fare un print_r di _SESSION e vedi che ci ricavi. Un muffola rinsecchita.

    Vuoi che il cookie di sessione scada se e quando scade il file di sessione? impostagli una vita uguale a quella del file di sessione.

    Ad ogni accesso verra' inviato un aggiornamento della data/ora di scadenza. Cosi, anche se il browser non viene chiuso, alla scadenza del cookie e del file ci sara' ciccia per i gatti. Personalmente in intranet faccio cosi' e funziona alla grande.

    Comunque e' ben diverso avere lo stesso id di sessione dall'avere lo stesso contenuto scritto nel file di sessione.

    Ciao biondo....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.