Pagina 8 di 20 primaprima ... 6 7 8 9 10 18 ... ultimoultimo
Visualizzazione dei risultati da 71 a 80 su 198

Discussione: [PILLOLA] sessioni

  1. #71
    Originariamente inviato da WebFil

    Che significa il post di Magic_troll??
    Già...che significa?
    per favore NIENTE PVT TECNICI da sconosciuti

  2. #72
    La sessione resta memorizzata nella memoria temporanea del server x impostazione predefinita SOLO 180 s. Esiste la funzione
    session_cache_expire($durata);
    che senza parametri restituisce la scadenza della sessione, con parametri imposta una nuova scadenza della sessione, se deve durare un giorno intero quindi va inserito 86400 NON time() + 86400, come per i cookie quindi.
    E' possibile limitare anche quante sessioni possono essere salvate contemporaneamente nella cache del server, infatti non è molto corretto avere 1000 sessioni aperte con scadenza 10 mesi in una cartella che in teoria doveva essere temporanea..... esiste quindi la funzione
    session_cache_limiter($numero_session
    i_aperte);
    che senza parametri restituisce il numero attualmente impostato, con invece imposta il numero massimo di sessioni aperte sul server.


    Volevo solo sapere come venno usate queste 2 funzioni:master:

  3. #73
    X Magic Troll

    devi andare un po' avanti nella lettura di questo thread per capire a cosa servono quelle impostazioni e...già che ci sei dopo, se ne hai voglia, ti consiglio di leggere anche quello che c'è qui sotto


    -------------------------------------
    Ho riletto l'intero thread e devo rettificare parzialmente quanto detto in un precedente intervento, anche perchè ho fatto un sacco di prove:

    1)Se si usano i cookies La sessione rimane valida fino alla scadenza del cookie e quindi alla chiusura della finestra del browser in cui è nata quando il cookie ha lifetime=0, infatti in questo caso la chiusura cancella automaticamente il cookie.

    Se apro una nuova finestra darò vita ad una nuova sessione. Quindi se i cookie sono abilitati tutto bene.

    E tutto questo era già chiaro, però

    2) I files in cui vengono memorizzati i dati di sessione rimangono SEMPRE LEGGIBILI anche se scaduti (hanno superato il session.gc_maxlifetime settato nel php.ini).
    I file scaduti hanno la probabilità in percentuale di essere cancellati pari a quella settata (sempre nel php.ini) in session.gc_probability (default = 1).
    100 garantirebbe la certezza della verifica della scadenza al momento di OGNI accesso da parte di un utente: quando questi arriva, prima che venga atttivata o rinnovata la "sua" sessione, innesca la cancellazione di tutti i files già scaduti che sono serviti alle sessioni degli altri utenti.

    Sicuramente questa cosa sarebbe davvero gravosa per il server che dovrebbe verificare con dei processi piuttosto pesanti (tipo la funzione stat()) la data dell'ultima modifica di tuti i file presenti sino a quel momento. E questo ad ogni accesso.
    Quindi la probabilità di pulizia viene mantenuta volutamente bassa, con il solo scopo di evitare l'eccessiva proliferazione di files di sessione.


    I RISCHI

    Potrebbe accadere che un visitatore abbia navigato rifiutando i cookies e che quindi l'id di sessione venga propagato, per quanto lo riguarda, attraverso i links, mettiamo che gli venga la bella idea di salvare nei preferiti l'indirizzo della pagina (completo di id di sessione)....
    dopo un'oretta (o anche giorni) un'altra persona si siede al suo computer e vede questo bel link tra i preferiti, clicca e...si trova nella piena disponibilità della sessione altrui.
    Stesso tipo di problemi se si decide di impostare una scadenza molto lunga ai cookies di sessione e qualcuno usa il nostro PC.
    Peggio ancora se il furbetto di turno avesse voluto sbirciare di proposito l'id di sessione nel link mentre stavamo navigando.

    Immagino che sia sempre per una questione di ottimizzazione delle prestazioni che php non controlla la data del file dal quale sta per prelevare i dati, prima di renderli disponibili.

    Insomma le sessioni rimangono valide per giorni se non si prendono provvedimenti.

    Il sistema più semplice è quello di memorizzare la data di ingresso di un utente nella pagine coinvolte dal sistema delle sessioni, rinnovare questa data ad ogni successivo accesso, sempre che questo avvenga entro un certo lasso di tempo , altrimenti dichiarare la sessione scaduta e distruggerla (vedere qui come).

    L'alternativa potrebbe essere quella di ricorrere a un processo CRON per una verifica periodica della scadenza dei files di sessione, e fargli cancellare quelli da buttare.....
    per favore NIENTE PVT TECNICI da sconosciuti

  4. #74
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    Originariamente inviato da Fabio Heller
    Il sistema più semplice è quello di memorizzare la data di ingresso di un utente nella pagine coinvolte dal sistema delle sessioni, rinnovare questa data ad ogni successivo accesso, sempre che questo avvenga entro un certo lasso di tempo , altrimenti dichiarare la sessione scaduta e distruggerla (vedere qui come).
    io direi anche un bel controllo sull'ip, si sta più sicuri...
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

  5. #75
    ...
    per favore NIENTE PVT TECNICI da sconosciuti

  6. #76

    x fabio Heller....

    grazie.... comunque anche se avevo già letto tutto il 3d :bubu: non riesco lo stesso ad usare quelle 2 funzioni!! Volevo provare a cambiare le impostazioni di durata delle sessioni per vedere cosa cambiava...
    Comunque (forse sarò un po tordo ) anche avendo letto tutto quello che riguarda le sessioni continuo a non capire perchè a volte lasciando inattivo il browser per parecchie ore le sessioni non scadono e altre volte vado al bagno...torno e puff...sessioni scadute

  7. #77
    Aggiungere il controllo sull'IP è una buona idea!
    non può bastare da solo perchè se uno si siede al mio PC potrei anche avere un IP fisso. E poi perchè chi sbircia il mio ID di sessione è facile si trovi nella stessa stanza nella quale sto navigando io...o comunque nella stessa rete. E non è detto che all'esterno ogni macchina risulti con un IP diverso.

    Potremmo tirarne fuori un controllo del genere

    <?php

    session_start() ;

    /*
    nella speranza che il proxy invii il reale IP della macchina
    */
    $ip=isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"]:$_SERVER["REMOTE_ADDR"];

    if(($_SESSION["last_in"]> $time_limit) || ($_SESSION["registred_ip"]!=$ip)){

    $_SESSION = array();

    session_destroy();

    exit("Sessione non valida") ;


    }

    ?>

    Se ho dimenticato qualcosa aggiungi pure
    per favore NIENTE PVT TECNICI da sconosciuti

  8. #78
    continuo a non capire... comunque grazie lo stesso

  9. #79
    Originariamente inviato da Magic_Troll
    continuo a non capire... comunque grazie lo stesso
    L'ultimo messaggio non era per rispondere a te,
    semplicemente il forum aveva inserito un nuovo post anzichè darmi la modifica (forse perchè ci siamo "incrociati").
    O forse perchè ho sbagliato io a cliccare

    Le funzioni che stavi cercando di usare non serveno nel 99% dei casi e determinano la vita delle pagine di sessione nella cache del browser. Non c'entrano con la durata della sessione, come era già stato detto.

    Quanto al fenomeno che ti capita può dipendere dalla vita dei cookies e/o dal fatto che anzichè leggere le pagine dal server il browser le ha prese dalla cache (ma il caching non è l'impostazione di default di php) quindi la vita della tua sessione non è stata rinnovata come quando si accede ad una pagina "fresca".
    per favore NIENTE PVT TECNICI da sconosciuti

  10. #80
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    Originariamente inviato da Fabio Heller
    Se ho dimenticato qualcosa aggiungi pure
    mi sembra non manchi niente :gren:
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

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.