Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20

Discussione: Evitare Postdata

  1. #11
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    24
    ciao,
    il problema non è legato alla sessione che è un file temporaneo. Qualsiasi $_SESSION usi per autenticare l'utente, session_id compreso, scade quando lo distruggi (array e session_destroy()).
    Lo script sulle $_SESSION ok ma se non ci sono e i POSTDATA invece rimangono in memoria nella cache del browser chiunque, si parla in teoria ovvio per perfezione, con il tasto back si ri-accredita popolando in automatico la form di login. In questo frangente chiunque programmi un area riservata non ha ancora aperto la sessione lo fa, come ho fatto io, quando l'utente è riconosciuto sul DB. Diventa un loop infinito.....
    cmq grazie se riesco posto la soluzione.
    Credo bisogna alzare il tiro oltre php.....mah
    ciao a tutti e grazie
    chicco

    Originariamente inviato da badaze
    Mi sembra che per il logoff prima di cancellare la sessione cancello le variabili di sessione (session_unregister). Poi all'inizio di ogni pagina ho uno script che testa se una variabile di sessione è definita. Se non lo è allora richiamo la pagina di login. Questo vale anche se seleziono una pagina dove c'era un post data.

  2. #12
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Originariamente inviato da cunctus
    ciao,
    il problema non è legato alla sessione che è un file temporaneo. Qualsiasi $_SESSION usi per autenticare l'utente, session_id compreso, scade quando lo distruggi (array e session_destroy()).
    Lo script sulle $_SESSION ok ma se non ci sono e i POSTDATA invece rimangono in memoria nella cache del browser chiunque, si parla in teoria ovvio per perfezione, con il tasto back si ri-accredita popolando in automatico la form di login. In questo frangente chiunque programmi un area riservata non ha ancora aperto la sessione lo fa, come ho fatto io, quando l'utente è riconosciuto sul DB. Diventa un loop infinito.....
    cmq grazie se riesco posto la soluzione.
    Credo bisogna alzare il tiro oltre php.....mah
    ciao a tutti e grazie
    chicco
    Ho appena fatto la prova sul mio sito. Mi sono collegato. Ho modificato un documento con metodo post e mi sono scollegato con il logout. Ho fatto il tasto back diverse volte fino ad arrivare alla pagina dove c'era il post data. IE mi ha visualizzato la pagina che chiede di fare un refresh e facendo lo refresh mi ritrovo sulla pagina di login anche se il link è quello della pagina che ho modificata.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #13
    Ciao.
    Usa la function header
    Codice PHP:
    header("Location: [url]http://www.php.net/[/url]"); /* Ridireziona il browser 
                                               al sito di PHP */
    exit;                /* Assicura che il codice sottostante 
                             non sia eseguito dopo il redirezionamento. * 



    PS
    Mi scordo sempre il BB code
    va qui
    header("Location: http://www.php.net/"); /* Ridireziona il browser
    al sito di PHP */
    exit; /* Assicura che il codice sottostante
    non sia eseguito dopo il redirezionamento. */
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #14
    Ho appena fatto la prova sul mio sito. Mi sono collegato. Ho modificato un documento con metodo post e mi sono scollegato con il logout. Ho fatto il tasto back diverse volte fino ad arrivare alla pagina dove c'era il post data. IE mi ha visualizzato la pagina che chiede di fare un refresh e facendo lo refresh mi ritrovo sulla pagina di login anche se il link è quello della pagina che ho modificata.
    Si' questo va bene, giustamente se tenti di caricare una pagina interna dopo aver fatto il logout, non te lo accetta. Il problema e' tornare indietro con il tasto back fino alla pagina di login precedente... a quel punto se si ripostano le informazioni POSTDATA, lui fa il login automaticamente...

    Stiamo cercando di ovviare proprio a questo, perche', sebbene sia sufficiente un po' di accortezza nell'utente, che dovrebbe chiudere il browser alla fine della sessione di lavoro, se un altro utente arriva e fa back, si puo' loggare tranquillamente senza bisogno di inserire i dati di login...

  5. #15
    Niente, ho provato anche a lavorare con gli header, e con la funzione session_cache_limiter:

    codice:
    header("ETag: PUB" . time());
    header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()-10) . " GMT");
    header("Expires: " . gmdate("D, d M Y H:i:s", time() + 5) . " GMT");
    header("Pragma: no-cache");
    header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
    session_cache_limiter("nocache");
    ma niente, le informazioni POSTDATA vengono comunque tenute in memoria e rispedite a richiesta senza problemi...

  6. #16
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Originariamente inviato da Darsch2501
    Si' questo va bene, giustamente se tenti di caricare una pagina interna dopo aver fatto il logout, non te lo accetta. Il problema e' tornare indietro con il tasto back fino alla pagina di login precedente... a quel punto se si ripostano le informazioni POSTDATA, lui fa il login automaticamente...

    Stiamo cercando di ovviare proprio a questo, perche', sebbene sia sufficiente un po' di accortezza nell'utente, che dovrebbe chiudere il browser alla fine della sessione di lavoro, se un altro utente arriva e fa back, si puo' loggare tranquillamente senza bisogno di inserire i dati di login...
    Ma se quello che ho scritto funziona per una pagina "normale" dove c'è un post data, dovrebbe anche funzionare per una pagina di login !!!

    Ad esempio se l'utente torna sulla pagina di login e che la variabile di sessione non è definita, richiami la pagina di login !!! Quella sarà vuota !!!
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #17
    Originariamente inviato da badaze
    Ma se quello che ho scritto funziona per una pagina "normale" dove c'è un post data, dovrebbe anche funzionare per una pagina di login !!!
    Ad esempio se l'utente torna sulla pagina di login e che la variabile di sessione non è definita, richiami la pagina di login !!! Quella sarà vuota !!!
    Ripeto, non e' un problema di sessioni o ID sessione... anche io distruggo tutti i dati, genero un altro ID, e tutte le cose di sicurezza che posso inventarmi, infatti se refresho una pagina normale, ovviamente lui mi torna alla pagina di login, perche' l'utente non e' autenticato. Il problema nasce esclusivamente dal browser che memorizza l'immissione del nome e utente e della password, e quando ci torni lui ti chiede se li rivuoi inserire. Tutto qui.

    Cmq ho risolto...
    Il problema dipende dal fatto che il form invia i dati POSTDATA alla stessa pagina che effettua i controlli su utente e password. Se i controlli si fanno in un file php diverso, che poi, tramite header() riporta alla pagina normale, quando si torna indietro alla pagina di login non c'e' nulla di memorizzato nella cache che riguarda QUELLA pagina, quindi non appare nessun messaggio di "re-send postdata". ^_^

    Cunctus credo che alla fine ti convenga modificare il meccanismo di controllo del login (lo fai su un file separato), perche' da quello che vedo l'impostazione dell'header e della cache non e' affidabile.

  8. #18
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    24
    ciao ragazzi torno e leggo ora,
    mi spiace aver creato casini ma un problema è bene che venga fuori soprattutto php:
    io ho provato a desettare tutte le $HTTP_POST_VARS in gioco, DOPO aver assegnato le $_SESSION nella stessa pagina della form. Purtroppo nisba il browser se ne frega. Bisognerebbe interccettare la funzione, magari del mozilla visto ke è open, che usa per pulire la cache. Credo sia l'unico modo.
    Cmq provo e riprovo e vi tengo aggiornati, grazie a tutti soprattutto a Darsch2501 ke ha capito per primo il "dramma"....skerzo
    buona serata
    chicco

  9. #19
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    24
    si ci avevo già pensato, è una scappatoia da ultima spiaggia (ci devo provare e onestamente non avevo voglia di riscrivere il codice) ma volevo averla vinta e svuotare la cache del browser.
    ti faccio sapere.
    grazie dei consigli, buona serata
    chicco

    Originariamente inviato da Darsch2501
    Ripeto, non e' un problema di sessioni o ID sessione... anche io distruggo tutti i dati, genero un altro ID, e tutte le cose di sicurezza che posso inventarmi, infatti se refresho una pagina normale, ovviamente lui mi torna alla pagina di login, perche' l'utente non e' autenticato. Il problema nasce esclusivamente dal browser che memorizza l'immissione del nome e utente e della password, e quando ci torni lui ti chiede se li rivuoi inserire. Tutto qui.

    Cmq ho risolto...
    Il problema dipende dal fatto che il form invia i dati POSTDATA alla stessa pagina che effettua i controlli su utente e password. Se i controlli si fanno in un file php diverso, che poi, tramite header() riporta alla pagina normale, quando si torna indietro alla pagina di login non c'e' nulla di memorizzato nella cache che riguarda QUELLA pagina, quindi non appare nessun messaggio di "re-send postdata". ^_^

    Cunctus credo che alla fine ti convenga modificare il meccanismo di controllo del login (lo fai su un file separato), perche' da quello che vedo l'impostazione dell'header e della cache non e' affidabile.

  10. #20
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    24
    Bg a tutti,
    ho risolto disabilitando la cache del browser header( "Cache-Control: no-cache" ); nella pagina di login anche se PHPSELF. Mi mantiente il session_id() del link utente, leggi precedenti post, ma il POSTDATA è vuoto e quindi manda a video la pagina che ho creato per la sessione scaduta.
    Grazie a tutti.
    chicco

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 © 2026 vBulletin Solutions, Inc. All rights reserved.