2010-11-19 24 views
31

Ich habe eine Seite, diePHP aktuelle Seite aktualisieren?

Wenn eine Variable (in einer Sitzung) gesetzt es wird eine Aktion tun, dann führt zum Löschen sie die Sitzung.

Jetzt muss es sich auffrischen.

Hier ist ich stecken.

Gibt es eine Möglichkeit, die genaue URL auf die aktuelle Seite zu bekommen?

oder gibt es eine Funktion, dies zu tun?

so header('location: ???');

Antwort

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

Sollte das nicht desinfiziert werden? – Alex

+9

$ _SERVER ['REQUEST_URI'] ist eine vom Server generierte Variable. Nur GET, POST, a und COOKIES sind anfällig für Benutzereingriffe. (mit der möglichen Ausnahme von Headern wie "Referrer") –

+4

Diese vom Server generierten Variablen können geändert werden, Sie sollten sie also immer noch bereinigen. –

6

$_SERVER['REQUEST_URI'] sollte funktionieren.

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

wird, ist

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

Dies funktioniert nur, wenn Sie den Dateinamen in der URL anzeigen. Also, URL Rewrite wird definitiv nicht funktionieren. – rybo111

0

Ein weiteres eleganteste arbeiten:

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

Hinweis: Denken Sie daran, dass header() aufgerufen werden muss, bevor eine tatsächliche Ausgabe gesendet wird, entweder über normale HTML-Tags, Leerzeilen in einer Datei oder über PHP.

, wenn Sie irgendeine Ausgabe senden, können Sie Javascript verwenden:

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

Wenn diese Methode einen wahren Wert als Argument erhält, wird es die Seite dazu führen, dass immer vom Server geladen werden. Wenn es falsch oder nicht angegeben ist, lädt der Browser die Seite möglicherweise aus dem Cache neu.

Oder Sie können explizit "Meta-Refresh" (mit reinem HTML) verwenden:

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

Grüße und guten Code,

12

PHP aktualisieren aktuelle Seite

Mit PHP-Code auch

+1

sollte dies die akzeptierte Antwort sein – user1855153