Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
fopen problem, seite zeigt alte daten statt sich die neuen zu holen... [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
fopen problem, seite zeigt alte daten statt sich die neuen zu holen...


 
D-Style
22-11-2005, 22:33 
 
habe folgenden code geschrieben (hier stark verkürzt):



<?
$page=@fopen("http://www.blabla.de","rb");

while(!feof($page)) {
$content .= @fread($page,4096);
}
fclose($page);

if($aktiv > 0) {
//1
preg_match_all('//isU', $content, $a);
$p = @preg_replace('//ims', '', $a[0][0]);

} else { echo 'Fehler'; }

if($i == 1 && $aktiv > 0) {
echo $p;
}

else{
echo ''.$i.''.$p.'';
}
?>



das auslesen der anderen seite funktioniert soweit auch wunderbar, nur mein problem ist wenn sich der inhalt auf der seite wo die php ausließt sich geändert hat zeigt meine php das einfach nicht an sondern immernoch die daten von davor.. irgendwie kommt es mir so vor als fragt er die seit enich tnochmal ab sondern nimmt sich die alte abfrage aussem cache oder so in der art..
wenn ich mein rechner neu startete sind auch die neuen daten da.. nur das kann ja nicht die lösung sein.
gibts vllt irgnedwas was ich noch einbauen sollte damit er die seite auch jedesmal neu abfragt und nicht irgendwelche alten daten verwendet ?
Oder eine andere lösung ?

mfg
DD

 
D-Style
22-11-2005, 22:51 
 
also wenn ich temporäre internetdateien lösche zeigt er dann die richtigen (neuen) daten an..

 
onemorenerd
23-11-2005, 00:54 
 
Das ist dein Browsercache! :rolleyes:

Dein Script muß deinem Browser mittels header() sagen, dass die erzeugte Seite nicht gecacht werden soll. Mehr nicht.

 
D-Style
23-11-2005, 16:59 
 
mh hab leider keine erfahrung mit dem header()

habe jetzt

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum der Vergangenheit
header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT"); // immer geändert
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache");
eingefügt..
zeigt leider aber auch keine wirkung ;(

 
D-Style
23-11-2005, 17:15 
 
mh hab jetz vor das ganze

<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="cache-control" content="no-store">
<meta http-equiv="cache-control" content="max-age=0">
<meta http-equiv="cache-control" content="must-revalidate">
<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">


gesetzt, scheint bisher zu funktionieren ;)

 
onemorenerd
23-11-2005, 17:18 
 
- alle @ aus deinem Code entfernen und error_reporting einstellen
- erneut prüfen
- Browsercache leeren
- erneut prüfen
- clearstatcache einbauen
- erneut prüfen

- jetzigen Code inkl. der Header-Geschichten posten und beschreiben, wie/wo/wann welcher Fehler auftritt.
okay, dann hat es sicherledigt

 
Greaseball
25-12-2007, 19:36 
 
Hallo.

Ich habe leider das gleiche Problem.
Ich habe beide Vorschläge bereits umgesetzt aber da passiert nix.

Ich programmiere gerade ein Script um einfache Bilder erzeugen zu können.
Dies funktioniert auch sehr gut. Leider wird mir das neu erzeugte Bild erst angezeigt wenn ich den Browsercache leere.

Das alte Bild wird vorher gelöscht, bevor das neue erstellt wird.
Ich dachte das der Browser erkennt das das Bild neu erstellt wurde und es dann neu lädt. Leider geht das auch nicht.

Was kann ich da noch machen?

 
PHP-Desaster
25-12-2007, 21:41 
 
Die Bilderadresse eindeutig machen, beispielsweise durch anhängen eines zufälligen Parameters an die Adresse:
echo "deineUrl.jpg?".rand();

 
Greaseball
26-12-2007, 09:33 
 
Danke für die Hilfe.

Hab diesen Hinweis bereits umgesetzt.

 
dani_o
26-12-2007, 09:39 
 
Original geschrieben von PHP-Desaster
Die Bilderadresse eindeutig machen, beispielsweise durch anhängen eines zufälligen Parameters an die Adresse:
echo "deineUrl.jpg?".rand();
Wenn es der zufall will, hast du da aba 2 mal das selbe rand(). Besser wäre dann

echo "deineUrl.jpg?see=".time();

 
Griecherus
26-12-2007, 10:49 
 
Original geschrieben von dani_o
Wenn es der zufall will, hast du da aba 2 mal das selbe rand(). Besser wäre dann

echo "deineUrl.jpg?see=".time();

Oder gleich richtig:

echo 'deineUrl.jpg?see=' . md5(uniqid());

 
dani_o
26-12-2007, 11:35 
 
hehe

 
Greaseball
26-12-2007, 12:31 
 
Ich hab die time() verwendet.
Reicht ja aus.

Im Prinzip ist dies in diesem Fall auch egal, weil ja alles funktioniert.

Aber blöd ist das schon, da dies ja keine wirkliche Funktion hat, sondern nur dem Browser vorgaukelt das sich was ändert.

Man hat es schon nicht leicht.

 
PHP-Desaster
26-12-2007, 16:50 
 
Wenn es der zufall will, hast du da aba 2 mal das selbe rand().Es ging mir ums Prinzip ;)

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:42 Uhr.