Ich habe Probleme beim Einstellen der Etag im Browser eines Benutzers zuverlässig. Wenn ein Benutzer auf einen meiner externen Links klickt, möchte ich die Artikel-ID in sein Etag setzen (ich verwende auch Cookies, aber ich möchte mit Etag experimentieren, um seine Zuverlässigkeit zu testen).PHP-Einstellung Etag zuverlässig
Wenn derselbe Benutzer ein paar Stunden/Tage später auf meine Website zurückkehrt, würde ich gerne den Etag-Wert lesen und für etwas verwenden können.
Ich kann ein Etag auf den ersten Klick setzen, aber wenn der Benutzer zurückkehrt, ist der Etag-Wert weg. Ich nehme an, es ist abgelaufen oder so. Hier ist der Code, den ich versucht haben:
<?
$time = 1280951171;
$lastmod = gmdate('D, d M Y H:i:s \G\M\T', $time);
$etag = '123';
$ifmod = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $lastmod : null;
$iftag = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] == $etag : null;
if (($ifmod || $iftag) && ($ifmod !== false && $iftag !== false)) {
header('HTTP/1.0 304 Not Modified');
} else {
header("Last-Modified: $lastmod");
header("ETag: $etag");
}
print_r($_SERVER);
?>
tolle Sachen !! das "" ist was ich vermisst habe :-) Danke! –
Tatsächlich führte die 'header ('Not Modified', true, 304);' -Syntax zu einem "500 Internal Server Error" in meinem Wordpress-Web. Die ursprüngliche Syntax scheint sicherer zu sein. – Sphinxxx
@Sphinxxx Leider wird das für die meisten Web-User-Agenten, die HTTP/1.1 verwenden, falsch sein (weshalb ich empfahl, sie nicht hart zu codieren). Ich habe den Beitrag aktualisiert, um eine "neue" Funktion in PHP 5.4 zu integrieren, die den anderen vorzuziehen ist. Probieren Sie das stattdessen. –