2009-12-01 12 views
12

Por qué cuando se establece la ruta de las cookies de php a "/" no funciona para cada subdirectorio del dominio, solo para el directorio actual.Establecer la ruta de las cookies a "/" no hace que las cookies sean accesibles para todo el sitio

cookie se establece como:

setcookie("name", "val", expire_time, "/"); 

Simplemente no quieren trabajar.

+0

Esto es más viejo que la suciedad, pero pueden haber tenido un conjunto de cookies duplicado para su subdirectorio. Un conjunto de cookies para su ruta actual anulará una cookie con el mismo nombre establecido en la ruta base. –

Respuesta

5

Configurar la ruta de la cookie a / debe ponerla a disposición de todo el dominio. Si configura su cookie así, y no se envía, hay algo más que está mal.

Pruebe usar el complemento Web Developer en Firefox. Muestra los detalles sobre las cookies disponibles. Tal vez eso pueda ayudarte a diagnosticar el problema.

25

intente incluir el parámetro de dominio:

setcookie("name", "val", expire_time, "/", ".domain.com"); 
// don't forget the prefixing period: .domain.com 

que permitirá a todos los sudomains de "domain.com"

+2

La pregunta no hizo preguntas sobre el subdominio, en lugar de los subdirectorios. –

19

¿Usted está poniendo a prueba en el servidor local? En ese caso, debe pasar nulo como el valor de $domain.

+6

Gracias, esto me ayudó a resolverlo para mi instalación localhost – onjegolders

2

Tarde en la fiesta, lo sé. Pero descubrí que mi problema era bastante estúpido, pero lo publicaré para su finalización:

Estaba dejando de añadir time() al tiempo de caducidad de la cookie, por lo que expiró inmediatamente.

El expira el tiempo debería ser el tiempo() + segundos

Cuestiones relacionadas