im teniendo problemas para configurar el Etag en el navegador de un usuario de manera confiable. Cuando un usuario hace clic en uno de mis enlaces externos, me gustaría establecer el ID del artículo en su Etag (también uso cookies, pero me gustaría experimentar con Etag específicamente para probar su fiabilidad).Configuración de PHP Etag confiable
Cuando el mismo usuario regrese a mi sitio algunas horas/días después, me gustaría poder leer el valor de Etag y usarlo para cosas.
Puedo establecer un Etag en el clic inicial, pero cuando el usuario regresa el valor de Etag se ha ido. Supongo que ha expirado o algo así. Aquí está el código que he estado intentando:
<?
$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);
?>
cosas increíbles !! el "" es lo que me estaba perdiendo :-) ¡Gracias! –
En realidad, la sintaxis 'header ('Not Modified', true, 304);' resultó en un "500 Internal Server Error" en mi web de Wordpress. La sintaxis original parece ser más segura. – Sphinxxx
@Sphinxxx Lamentablemente, eso será incorrecto para la mayoría de los agentes de usuario web que usan HTTP/1.1 (por lo que recomendé que no se codifique). Actualicé la publicación para incluir una función 'nueva' en PHP 5.4 que es preferible a las demás. Intenta eso en su lugar. –