php - Las cookies no se envían correctamente en Opera
trigger.io (3)
¿Ha comprobado si esto es un problema con los dominios de cookies? ¿Asumo que estás usando Javascript para establecer / leer las cookies? En cualquier caso, hay 4 problemas de dominio de cookies que tal vez quiera verificar (sé que he tenido estos problemas con una versión antigua de FF):
1 - verificar si hay caracteres de cookie ilegales: caracteres de cookie permitidos, es posible que no se les permita usar ''-'' o ''='' en el nombre de la cookie, y no se deben usar caracteres que no sean ASCII en las cookies. Una codificación base64 podría lidiar con esto.
2 - compruebe que el dominio en el que establece su cookie (a través del código javascript o de cualquier otra forma) es idéntico al dominio en el que se ejecuta el código.
3 - compruebe que el dominio de la cookie no es localhost; ver si puede probar la configuración de la cookie desde un dominio remoto
4: si está utilizando JS para configurar sus cookies, intente probar si puede configurar la cookie con un CGI en su navegador para asegurarse de que no sea un problema del navegador. Si funciona correctamente, vea si puede leer la cookie usando JS (en lugar de configurarlo).
Déjame saber cómo va esto en los comentarios, he tratado con problemas similares varias veces y, dependiendo de lo que obtengas con estos controles, estoy bastante seguro de que puedo ayudarte a solucionar el problema.
En primer lugar, no estoy seguro de si esto es un problema en Opera 12.01 o no, pero el problema solo ocurre en Opera. He probado en FF14, Chrome 21, Safari 5 (Windows) y Safari Mac y navegadores Webkit en Android y iPhone.
Mi aplicación se ejecuta en la plataforma trigger.io forge y utiliza un proxy para enrutar las solicitudes desde la aplicación web al servicio. El proxy simplemente reenvía las solicitudes y las cookies y esto funciona como se espera en la mayoría de los navegadores.
Después de inspeccionar la solicitud en libélula, noté que el servidor envía los encabezados adecuados en la respuesta, pero Opera parece estar ignorando la configuración de los valores. Me pregunto si esto se debe a un valor de ruta mal configurado para la cookie. He adjuntado capturas de pantalla de 2 solicitudes en Firefox y Opera.
Como puede ver en las pantallas, FF ve los encabezados de las cookies y los establece de manera apropiada, pero Opera no.
Pantalla de solicitud de ópera 1
Pantalla de Solicitud de Opera 2
No he incluido el código del proxy que realiza el reenvío de solicitud, así que avíseme si lo necesita para obtener información. En el lado del servicio, ejecuto PHP y Codeigniter. Por favor, avíseme si necesito agregar más información aquí en mi entorno, gracias.
ACTUALIZACIÓN: este problema ocurre incluso en mi entorno de producción que no utiliza un TLD personalizado. Otros sitios que usan cookies funcionan bien y las cookies están habilitadas.
Al mirar esas capturas de pantalla de Opera, parecen ser solicitudes AJAX / XHR que se procesan en el mismo segundo. ¿Es posible que Javascript active ambas solicitudes "simultáneamente", por lo que la respuesta del "primero" no llega antes de que se genere la solicitud del "segundo" y, por lo tanto, las cookies aún no se han establecido?
No estoy familiarizado con las tecnologías / kits de herramientas que está utilizando, por lo que no sé si se trata de código de inventario o parte de su aplicación personalizada.
Las comillas dobles son formalmente ilegales en un valor de cookie. Si escapas como % 22 , funcionará.