2010-11-19 16 views
31

Ho una pagina che,php aggiorna la pagina corrente?

Se è impostata una variabile (in una sessione) farà un'azione, allora disinserisce la sessione.

Ora deve aggiornarsi.

Questo è il punto in cui sono bloccato.

C'è un modo per ottenere l'URL esatto nella pagina corrente?

oppure esiste una funzione per farlo?

così header('location: ???');

risposta

70
header('Location: '.$_SERVER['REQUEST_URI']); 
+0

Che non dovrebbe essere sterilizzate? – Alex

+9

$ _SERVER ['REQUEST_URI'] è una variabile generata dal server. Solo GET, POST, ae COOKIES sono suscettibili alle interferenze dell'utente. (con la possibile eccezione di intestazioni come "Referrer") –

+4

Quelle variabili generate dal server possono essere modificate, quindi è necessario considerare la possibilità di disinfettarle. –

6

$_SERVER['REQUEST_URI'] dovrebbe funzionare.

2
header('Location: '.$_SERVER['PHP_SELF']); 

funziona anche

+1

Funzionerà solo se si visualizza il nome file nell'URL. Quindi, la riscrittura degli URL sicuramente non funzionerà. – rybo111

0

Un altro elegante uno è

header("Location: http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"); 
exit; 
12

PHP aggiornare la pagina corrente

con codice PHP:

<?php 
$secondsWait = 1; 
header("Refresh:$secondsWait"); 
echo date('Y-m-d H:i:s'); 
?> 

Nota: Ricordare che l'intestazione() deve essere chiamata prima che venga inviato qualsiasi output effettivo, tramite normali tag HTML, righe vuote in un file o da PHP.

se si invia alcun output, è possibile utilizzare javascript:

<?php 
echo date('Y-m-d H:i:s'); 
echo '<script type="text/javascript">location.reload(true);</script>'; 
?> 

Quando questo metodo riceve un valore vero come argomento, causerà la pagina da sempre ricaricato dal server. Se è falso o non specificato, il browser può ricaricare la pagina dalla sua cache.

Oppure si può usare in modo esplicito "meta refresh" (con puro html):

<?php 
$secondsWait = 1; 
echo date('Y-m-d H:i:s'); 
echo '<meta http-equiv="refresh" content="'.$secondsWait.'">'; 
?> 

Saluti e buon codice,

+1

questa dovrebbe essere la risposta accettata – user1855153

Problemi correlati