PDA

Ver la Versión Completa : Descativar Cookies por codigo Html o Php. ¿Es posible?


K-ba
17-09-2007, 18:11:14
Hola, necesito que mi pagina de internet ignore las cookies, hace un tiempo atras ya me ayudaron a desactivar el cache con esta linea, que introduje en mi archivo html:

<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

Ahora lo que necesito es poder indicarle al navegador web, en mi caso Internet Explorer, que ignore las cookies por medio de codigo.

¿Esto es posible?. En el caso que lo fuera, ¿que linea de codigo debo escribir?¿Seria codigo PHP o HTML?.


Se agradece algun tipo de orientacion, saludos y desde ya muchas gracias

dec
17-09-2007, 19:06:21
Hola,

Veamos. Quien "pone" las Cookies no es el navegador, sino los sitios Web, las propias páginas Web. Así que si tú no pones ninguna Cookie en tu sitio Web o en tu página Web... no habrá Cookies relacionadas con la página Web en cuestión. De manera que o bien no entendí la pregunta, o bien lo que digo en cierto modo vale: no uses Cookies y no tendrás que preocuparte de ellas.

K-ba
17-09-2007, 19:40:30
Contundente respuesta, pero insisto, quizas con ignorancia por falta de conocimientos.

Tengo una aplicacion Web, hecha en Flash con conexion a una BD, la aplicacion se utiliza en una red local, osea una pc de servidor y las demas conectadas a la red ingresan a la Web, el problema es este:

Accediendo desde cualquier pc la aplicacion funciona barbaro, refresca los datos como debe ser. El problema es cuando accedo a la pagina desde una Palm, esta no me refresca los datos, me toma los datos que encuentra en primera instancia y luego al modificarlos me vuelve a mostrar los mismos datos. La unica manera de hacer que los datos sean los correctos para visualizarlos es eliminando las Cookies.

¿No existe una linea de codigo html o php que me ignore las cookies o un parametro para configurar en mi servidor php para que me ignore estas cookies?

Otra cosa, mi aplicacion web siempre se encuentra en la misma pagina, index.html y dentro un swf ( archivo de flash, la aplicacion ) que al presionar determinados botones ejecutan archivos php para obtener los datos.

¿Sera configurando cada archivo php que estoy ejecutando? Desde el swf.

dec
18-09-2007, 08:58:49
Hola,


La unica manera de hacer que los datos sean los correctos para visualizarlos es eliminando las Cookies.


Pero es que tengo que remitirte a mi anterior mensaje, porque, ahí precisamente está la madre del cordero. ¿Qué cookies? Si eres tú quien pone esas Cookies, ¿no basta con no ponerlas? Y si no eres tú... me temo que no puedas hacer nada.


¿No existe una linea de codigo html o php que me ignore las cookies o un parametro para configurar en mi servidor php para que me ignore estas cookies?


No existe algo así, que yo sepa, claro. Pero es que el asunto es bastante claro, si no me equivoco, que todo puede ser: una aplicación puede o no hacer uso de Cookies. Si una aplicación no necesita o no quiere hacer uso de Cookies... no pasa nada. No las usa y ya está.

O puede "ponerlas", pero no utilizarlas, si no es esto un contrasentido... ahora bien, si no las pone, ¿para qué le preocuparían? Tal vez el asunto no es tanto por las Cookies sino por otro motivo... pero, ha de quedar claro que las Cookies no son obligatorias, y que las controlan las propias aplicaciones, que pueden usarse o no.

Se me ocurre ahora que PHP mismo pone una Cookie de sesión... y tal vez sí que haya forma de evitarla, es decir, de no ponerla, empero, no sé yo si de todos modos el asunto iría por ahí. Creo que no. Tal vez algún compañero pudiera aportar más a este tema...

Tal vez debas impedir que la aplicación deje nada en la caché del cliente. Y tal vez esto sí puedas conseguirlo. Echa un vistazo al tema de las cabeceras HTTP que puedes enviar con PHP. Fíjate por ejemplo en esta función extraída del proyecto WordPress (http://www.wordpress.org/):


function NoCacheHeaders(){
@header('Expires: Mon, 05 Dec 1974 05:00:00 GMT');
@header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
@header('Cache-Control: no-cache, must-revalidate, max-age=0');
@header('Pragma: no-cache');
return;
}

K-ba
19-09-2007, 04:38:36
Amigo, muchas gracias por dedicar tu tiempo, creo que la solucion esta sobre lo ultimo que apuntas, acabo de observar que en la pc cliente ( son palm con Windows Mobile ), desde donde se accede al servidor para consultar los datos, en sus Archivos Temporales De Internet quedan grabados unos archivos XML ( estos son los archivos resultantes de mis consultas de datos a la DB ) que se generan a partir de la ejecucion de mis archivos php.

Son estos archivos los que quedan en los temporales ( los XML ) y que me estan causando el problema, me di cuenta de esto porque al eliminarlos manualmente o desde la opcion del Internet Explorer y volviendo a ejecutar las consultas me traen los datos verdaderos de la DB. El problema que solo visualizo bien los datos la primera vez que consulto los datos luego de eliminar los archivos temporales.

Asi que como te decia, que creo que la solucion está en lo ultimo que me apuntaste sobre los meta tags del HTML.

Estoy probando diferentes alternativas al combinar los distintos valores que pueden tomar estos meta tags para poder saltearme los archivos temporales almacenados en la pc cliente.


Por ultimo quiero recordar que la aplicacion web accediendo desde una pc normal ( osea de escritorio, con Windows Xp ) funciona bien, el problema lo tengo en las palm´s ya que estan tienen Windows Mobile 2003 y no consigo configurarles a mi gusto las reducidas opciones del ya reducido Internet Explorer que tienen.


Ojala me puedan seguir dando alguna que otra linea para seguir probando...


PD: Surgieron dudas:
1. La aplicacion web se compone de solo 1 archivo html ( index.html ), este archivo se carga una sola vez al inicio y luego lo que es dinamico es mi swf ( archivo de flash, que contiene la grafica de la aplicacion ) y los archivos php que tengo, son varios, uno de conexion a la DB y los demas son archivos con consultas sql que me traen los datos generan un archivo XML por cada php, utilizo archivos XML para poder levantar los datos en el archivo flash con actionscript.
Entonces la pregunta seria, ¿las variantes que estoy probandocon los meta tags, las deberia colocar en mi index.html que solo lo cargo una vez o en cada php, los cuales se van a ejecutar generando los respectivos XML cada vez que la pc cliente los solicite?

Agui dejo el link de las variantes de los meta tags que pienso probar.
http://www.i18nguy.com/markup/metatags.html

Saludos y desde ya MIL GRACIAS:)

dec
19-09-2007, 04:55:29
Hola,

Para mí que tendrían que estar en el "index.html". Ahora bien, dicho archivo no puede enviar las cabeceras HTTP mediante PHP sino se procesa como tal (si lo hace como HTML). De manera que acaso tuvieras que plantearte un "index.php", que enviara dichas cabeceras e hiciera de "index.html", no sé si me explico, que estoy un poquitín espeso, me parece. :)

Y se me ocurre otra cosa: los XML que mencionas también podrían "caducarse", si es que los "escribes" con PHP. Me parece que hay que hacer lo mismo, usar las correspondientes cabeceras HTTP con ellos también.

K-ba
27-09-2007, 13:42:26
Al fin pude solucionar el problemita de caducacion de archivos...

Con solo agregar:

<?php header("Cache-Control: no-cache, must-revalidate"); ?>
<?php header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); ?>

Esas dos lineas en el head de mis *.php se soluciona el problema. Saludos y muchas gracias por la ayuda, les debo una....:D