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

    Refresh pagina quando premo "indietro"

    Ciao, sintetizzo il problema in un esempio breve.
    Ho due pagine in HTML e PHP:
    Pagina 1.php
    codice:
    <HTML>
     <BODY>
     2
    
     <?php 
    $a=time(); 
    echo $a; 
    ?> 
    </BODY> 
    </HTML>
    Pagina 2.php
    Codice PHP:
    <?php echo"This is page 2"?>
    Quando apro "1.php" la variabile $a prende correttamente il valore della funzione time() però se clicco sul link a pagina "2.php" e poi premo "indietro" nella barra del browser la variabile $a conserva il valore che aveva prima. Io vorrei invece che una volta che clicco sul pulsante "indetro", il valore di $a prendesse il valore di time() che c'è in quel momento preciso.

    Come posso risolvere?

    Grazie 1000!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il valore resta uguale perché la pagina è nella cache del browser e viene presa da lì invece che inviare una nuova richiesta al server.
    Metti nel tag <head> della prima pagina tutti i tag necessari a non far mettere la pagina nella cache.

  3. #3
    Ho fatto così ma il problema resta lo stesso...
    codice:
    <HTML>
    <HEAD> 
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="pragma" content="no-cache">
    </HEAD> 
    <BODY> 
    2
     
    <?php $a=time(); echo $a; ?> 
    </BODY> 
    </HTML>
    in realtà nella pagina "1.php" ho un form, potrei risolere la cosa tramite jQuery dicendo "quando premo il pulsante submit assegna la funzione time() alla variabile $a senza prenderla dalla cache"? non ho trovato nulla di utile su Google...

  4. #4

    Usa un campo dummy con contenuto casuale

    Oppure aggiungi un campo con un valore casuale (random) che cambia ad ogni istanza della pagina, forzando quindi il browser a rileggerla dal server anzichè dalla cache.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  5. #5
    Scusa ma non capisco, il valore time() non cambia già ad ogni refresh del browser? Il problema da risolvere è che premendo "indietro" non fa il refresh. Credo che usando una funzione random avrei lo stesso problema che ho con la funzione time().

  6. #6
    Si, hai ragione!
    Usando "indietro" nel browser l'unica soluzione è modificare le impostazioni del browser e/o usare la soluzione proposta da Alhazred.

    La funzione time() nel tuo script, e lo script stesso, vengono invocati solo se il browser chiama nuovamente la pagina: se la legge da cache non viene eseguita.

    Invece dei META puoi usare anche gli header di php...
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  7. #7
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    preso da php.net
    codice:
    <?php
    header( 'Expires: Sat, 2 Jul 2011 05:00:00 GMT' ); 
    header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); 
    header( 'Cache-Control: no-store, no-cache, must-revalidate' ); 
    header( 'Cache-Control: post-check=0, pre-check=0', false ); 
    header( 'Pragma: no-cache' ); 
    
    ?>

  8. #8
    Guarda qui,io ho lo stesso problema con una pagina di upload,che dopo caricato i file se mi scollego e vado indietro con la freccia del browser,mi permette di caricare ancora.
    Ho seguito queste istruzioni e mi funziona,

    http://support.microsoft.com/kb/222064/it

    Ciao

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.