Pagina 16 di 20 primaprima ... 6 14 15 16 17 18 ... ultimoultimo
Visualizzazione dei risultati da 151 a 160 su 198

Discussione: [PILLOLA] sessioni

  1. #151
    Utente bannato
    Registrato dal
    Apr 2003
    Messaggi
    1,119
    PHPSESSID non lo devi usare! è automatico!
    tu vuoi fare le sessioni?

    1.php
    Codice PHP:
    session_start();
    $_SESSION['var'] = 'ciao';
    # oppure
    $var 'ciao';
    session_register('var'); 
    2.php
    Codice PHP:
    session_start();
    echo 
    $_SESSION['var']; 
    //ciao 

  2. #152
    grazie webces
    ma a che serve? per i cookie?
    ciauz

  3. #153
    PERFECTT!! grazie mille!
    ho provato funziona bene tutto!!
    ciauz

  4. #154
    Utente bannato
    Registrato dal
    Apr 2003
    Messaggi
    1,119
    bien!
    ciao

  5. #155
    Originariamente inviato da Fabio Heller
    Inizialmente credevo anch'io che i cookies venissero rinnovati di volta in volta, invece no: se imposti come durata di default del cookie 30 secondi, la sessione durerà comunque al massimo 30 secondi anche se non fai pause nella navigazione. Conclusione: si perde la sessione.
    Invece i files sul server, dureranno il tempo stabilito nel php.ini ma hanno soltanto un x% di probabilità di essere eliminati.

    Provo a riassumere questo "casino"

    1) I file di sessione sul server vengono rinnovati ad ogni accesso purchè questo avvenga entro il tempo fissato in session.gc_maxlifetime MA potrebbero non venire eliminati mai anche se scaduti (dipende dalla probabilità in session.gc_probability), quindi indovinando l'id di sessione (oppure salvandolo tra i preferiti nell'url della pagina)la sessione potrebbe risultare eterna.

    2) Se sono temporanei (session.cookie_lifetime=0) i cookies
    mantengono il collegamento con la sessione fino alla chiusura della finestra del browser invece, se hanno una scadenza precisa, solo fino alla scadenza (che non viene rinnovata di volta in volta).
    Se proprio li vuoi rinnovare, prima che scadano, forse lo puoi fare "manualmente" ma non ho provato...
    <?

    $si= session_id() ;
    $scadenza= 600 ; //10 minuti in secondi
    setcookie ("PHPSESSID",$si,time()+ $scadenza);

    ?>
    Ciao Fabio,
    ho fatto delle ricerche circa questo comportamento anomalo che denunciavi. Sto usando PHP5.
    Ho impostato la scandenza del cookie di sessione a 30 secondi (session_set_cookie_param(30))

    Questi sono gli header scambiati
    codice:
    GET /index2.php HTTP/1.1
    ...
    ----------------------------------------------------------
    HTTP/1.x 200 OK
    Date: Sun, 21 Nov 2004 09:09:10 GMT
    Set-Cookie: PHPSESSID=c72e7ac59cd56915a424be3b6f27c80d; expires=Sun, 21-Nov-2004 09:09:40 GMT; path=/
    ....
    
    ----------------------------------------------------------
    ----------------------------------------------------------
    
    POST /index2.php HTTP/1.1
    Cookie: PHPSESSID=c72e7ac59cd56915a424be3b6f27c80d
    ----------------------------------------------------------
    HTTP/1.x 302 OK
    Date: Sun, 21 Nov 2004 09:09:38 GMT
    ...
    Set-Cookie: PHPSESSID=c72e7ac59cd56915a424be3b6f27c80d; expires=Sun, 21-Nov-2004 09:10:08 GMT; path=/
    Location: main.php
    ...
    come puoi vedere, ad ogni risposta del server, viene reinviato il cookie di sessione, ovviamente di identico valore ma con scadenza posticipata di altri 30 secondi. Sembra quindi che PHP5 non abbia i problemi da te riscontrati. Non ho fatto prove con PHP4 a riguardo.


  6. #156
    Originariamente inviato da Gianni_T

    come puoi vedere, ad ogni risposta del server, viene reinviato il cookie di sessione, ovviamente di identico valore ma con scadenza posticipata di altri 30 secondi. Sembra quindi che PHP5 non abbia i problemi da te riscontrati. Non ho fatto prove con PHP4 a riguardo.

    Ciao Gianni,
    non mi ricordavo più di aver scritto quella cosa

    Per il punto 1 confermo in pieno, per il punto 2 invece, spero si tratti di un bug della versione che ho utilizzato quando ho fatto le prove, e che sia stato risolto....perchè la cosa effettivamente è assurda.
    Ad ogni modo non utilizzo mai i cookie permanenti nelle sessioni, quindi la cosa mi ha creato pochi fastidi fino ad ora
    per favore NIENTE PVT TECNICI da sconosciuti

  7. #157
    scusa nn ho capito una cosa
    a chiusura del browser scade la sessioen..ma questa rimane fisicamente in una cartellina(di default tmp) nel browser
    giusto?
    Con un delete elimini dal db le sessioni scadute..........
    mi sfugge l'uso del db......perchè a meno che nn vengano inseriti nn + in una cartellina ma direttamente nel db,
    queste sessioni come le distruggi materialmente?
    Se le inserisci nel db, mi dici come fai?..ceh sono un blob?coem faccio a cambiare il di percorso di salvataggio delle sessioni senza mettere mano nel php.ini

  8. #158
    Originariamente inviato da recensore
    scusa nn ho capito una cosa
    a chiusura del browser scade la sessioen..ma questa rimane fisicamente in una cartellina(di default tmp) nel browser
    giusto?

    Con un delete elimini dal db le sessioni scadute..........
    mi sfugge l'uso del db......perchè a meno che nn vengano inseriti nn + in una cartellina ma direttamente nel db,
    queste sessioni come le distruggi materialmente?
    Vengono inserite interamente nel DB, in campi text

    Se le inserisci nel db, mi dici come fai?..ceh sono un blob?coem faccio a cambiare il di percorso di salvataggio delle sessioni senza mettere mano nel php.ini
    session_set_save_handler() e...un po' di magia, non serve mettere mano al php.ini
    per favore NIENTE PVT TECNICI da sconosciuti

  9. #159
    mille grazie....

    un altra domanda
    ho scoperto una cosa ceh nn avevo ancora capito
    (*)ho inserito una riga di codice a ogni inizio pagina ocn cui creo una sessione,,,
    ma solo nel caso nn esista già.
    se nn ho capito male ci può essere una sessione per finestra browser...
    in quanto alla chiusura di questa (se la scadenza è quella di default),questa scade.
    Registrando le sessioni in un db mi sono accorta che mi registra uan diversa sessione
    (lo so perchè uso come chiave primaria il nome della sessione)
    ad ogni refresh della pagina o link ad un altra (sempre nella stessa finestra) (*)pagina del sito.
    Nn e possibile che ad ogni refresh o cambio pagina del sito me ne crei una,
    il db sarebbe piena zeppa dopo 30 minuti,registrandole!!
    è giusto inserire ad ongi inizio pagina questa riga?
    //-------------------------------------------------
    if(!isset($_SESSION)){
    session_start();
    session_register("lingua","menu","id_Sessione");
    $_SESSION['id_Sessione'] = session_id();
    //-------------------------------------------
    $con = @mysql_connect("localhost","root","");
    if(!$con){
    echo "Impossibile connetersi al db erorre n°: ".mysql_errno().", " .mysql_error().".";
    }else{
    //----------------------
    @mysql_select_db("sessioni",$con);
    //----------------------
    $insert = ("INSERT IGNORE INTO sess (id_S,accesso) VALUES('".$_SESSION['id_Sessione']."',now())");
    //--------------------------------------------
    .....................
    }
    }


    nn ho ancora fatto le modifiche di registrazione materiale della sessione sul db...perhcè ho letto ora l'e-mail....
    nn far caso alla query d'INSERT

  10. #160
    ho fatto un pò di ricerche per capire cosa fosse sta magia
    e devo dire hce mi sento con l'acqua alla gola!!!!

    <?php
    function open ($save_path, $session_name) {
    global $sess_save_path, $sess_session_name;

    $sess_save_path = $save_path;
    $sess_session_name = $session_name;
    return(true);
    }

    function close() {
    return(true);
    }

    function read ($id) {
    global $sess_save_path, $sess_session_name;

    $sess_file = "$sess_save_path/sess_$id";
    if ($fp = @fopen($sess_file, "r")) {
    $sess_data = fread($fp, filesize($sess_file));
    return($sess_data);
    } else {
    return(""); // Deve restituire "" qui.
    }

    }

    function write ($id, $sess_data) {
    global $sess_save_path, $sess_session_name;

    $sess_file = "$sess_save_path/sess_$id";
    if ($fp = @fopen($sess_file, "w")) {
    return(fwrite($fp, $sess_data));
    } else {
    return(false);
    }

    }

    function destroy ($id) {
    global $sess_save_path, $sess_session_name;

    $sess_file = "$sess_save_path/sess_$id";
    return(@unlink($sess_file));
    }

    /*********************************************
    * ATTENZIONE - Qui avete bisogno di implementare qualche *
    * sorta di routine per il cestinaggio. *
    *********************************************/
    function gc ($maxlifetime) {
    return true;
    }

    session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");

    session_start();

    // proceed to use sessions normally

    ?>
    //-----------------------------------------------------------------
    sono nel pallone
    devo passare a quelle funzioni inserite nella funzione session_set_save_handler dei dati come l'id della sessione,
    che ancora nn conosco perche creo la sessione dopo con session start
    e poi una curiosità $save_path è il percorso un cui vengono salvate di norma i fiel temporanei ex nel mio pc = (E:\programmi\php\EasyPHP1-7\tmp) ?
    e per routine di cestinaggio ceh intende?
    posso passargli 1 come di default?
    scusate le tante domande .... ma sono agli inizi ...sto cercando di fare ordine
    grazie

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.