reload no-cache

strukturart

Erfahrenes Mitglied
Hallo,

ich hab ein einfaches Script das aus einer Textdatei Daten holt und dann wieder speichert.
Jetzt möchte ich das nach dem speichern die Seite mit den neuem Wert geladen wird.
Jedoch erscheint immer der alte Wert, vermutlich weil er noch so im Cache gespeichert ist.
Das speichern ist erfolgreich das habe ich in der Textdatei überprüft.

Habe es mit so versucht:

<meta http-equiv="expires" content="0">
<meta http-equiv="cache-control" content="no-cache">

header("Cache-Control: no-cache, must-revalidate");
Header("Location: $PHP_SELF");

wie muss ich das denn anstellen?

PHP:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
 <meta charset="utf-8" />
<meta http-equiv="expires" content="0"> 
<meta http-equiv="cache-control" content="no-cache"> 
 
 <style>
 body{
 text-align: center; 
 margin-top:100px;}
#styled {

font-size:160px;
border:none;
width:400px;
height:250px;
}
</style>
<script language="javascript">
function reloadPage()
  {
  window.location.reload()
  }
</script>
</head>

<body>
<form  method="post" name="form1" >  
<textarea name="text"  id="styled" wrap="soft" cols="40" rows="2">
<?php 
$fp = fopen("reservierung.txt","r"); 
if ($fp) 
{ 
while(!feof($fp)) 
{ 
$text = fgets($fp,100); 
echo"$text"; 
} 
fclose($fp); 
} 
?>
</textarea><br>
<input type="submit" name="submit" value="speichern" > 
</form>

<?php
if(isset($_POST['submit'])){


$datei = fopen("reservierung.txt", "w"); 
$text = $_POST[text]; 

fputs ($datei, $text,4); 

fclose ($datei);

	echo "reload";
	header("Cache-Control: no-cache, must-revalidate"); 
	Header("Location: $PHP_SELF");
	


}
?>


</body>
</html>
 
reload() kann einen optionalen Parameter übergeben bekommen.

reload(forceget)

Reload the document from the current URL. forceget is a boolean, which, when it is true, causes the page to always be reloaded from the server. If it is false or not specified, the browser may reload the page from its cache.
 
meinst du so ? window.location.reload(true)

jedoch weiss ich nicht wie ich die funktion reloadPage() einsetzen kann
wenn ich sie nach dem speichern anbringe bekomme ich eine fehlermeldung.

PHP:
.
.
.
fclose ($datei);
 reloadPage();
 
Ja, so meinte ich das. Ich dachte du würdest schon irgendwo reloadPage aufrufen, habe den Code nicht weiter angeguckt.
Du versuchst gerade JavaScript und PHP zu mischen. Aber wenn ich mir den Code angucke, frage ich mich selbst, wieso er das nicht neu lädt. Guck mal mittels HttpFox oder ähnlichem, was da abläuft. Ob das tatsächlich aus dem Cache kommt.
 
Hab mir mal HttpFox installiert, scheint alles richtig zu laufen.
Nach den speichern überprüfe ich die .txt und das steht auch der neue Wert.
Hat das Problem evtl. was mit dem Formular zu tun?Automatisches ausfüllen oder so
 
Wenn du das Speichern vor das Lesen setzen würdest, müsstest du kein reload machen.

Der Grund wieso das reload aber fehlschlägt ist, dass dein Header("Location: $PHP_SELF"); ignoriert wird. Du musst irgendwo auch $PHP_SELF festlegen, z.B. eine Zeile vorher.

PHP:
$PHP_SELF = $_SERVER['PHP_SELF'];
 

Neue Beiträge

Zurück