Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No funcionan las cookies

Estas en el tema de No funcionan las cookies en el foro de PHP en Foros del Web. Tengo los dos siguientes archivos: cookies.php e index.php. Como se puede ver en el archivo cookies.php se generan las cookies, que recibe por GET (eso ...
  #1 (permalink)  
Antiguo 31/10/2015, 07:02
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
No funcionan las cookies

Tengo los dos siguientes archivos: cookies.php e index.php. Como se puede ver en el archivo cookies.php se generan las cookies, que recibe por GET (eso da igual) y luego se envían a índex.php ¿Por qué en índex.php me dice que no existe el array? Gracias
cookies.php

Código PHP:
Ver original
  1. <?php
  2. /* 1. Recibo las variables de los enlaces */
  3. $IDUsuario = $_GET['IDUsuario'];
  4. $NombreUsuario = $_GET['NombreUsuario'];
  5. $ClaveUsuario = $_GET['ClaveUsuario'];
  6. $RolUsuario = $_GET['RolUsuario'];
  7. $NombreCompletoN = $_GET['NombreCompletoN'];
  8. $NombreCompletoA1 = $_GET['NombreCompletoA1'];
  9. $NombreCompletoA2 = $_GET['NombreCompletoA2'];
  10. /* 2. Creo las cookies */
  11. setcookie("IDUsuario", $IDUsuario, time() + 3000);
  12. setcookie("NombreUsuario", $NombreUsuario, time() + 3000);
  13. setcookie("ClaveUsuario", $ClaveUsuario, time() + 3000);
  14. setcookie("RolUsuario", $RolUsuario, time() + 3000);
  15. setcookie("NombreCompletoN", $NombreCompletoN, time() + 3000);
  16. setcookie("NombreCompletoA1", $NombreCompletoA1, time() + 3000);
  17. setcookie("NombreCompletoA2", $NombreCompletoA2, time() + 3000);
  18. /* 3. Veo los datos */
  19. print_r($_COOKIE);
  20. /* 4. Cinco segundos después de ver los datos, redirijo a la página de inicio */
  21. echo '<meta http-equiv="refresh" content="5;URL=../index.php"/>';
  22. ?>
index.php

Código PHP:
Ver original
  1. <?php
  2. echo $_COOKIE['RolUsuario'];
  3.  
  4.  
  5. ?>
  #2 (permalink)  
Antiguo 31/10/2015, 07:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No funcionan las cookies

Pues acabo de hacer esta prueba y funciona perfecto:

cookie.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. if (isset($_GET['x'])) {
  4.   setcookie('x', $_GET['x']);
  5. }
  6.  
  7. header('Location: show.php');

show.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. var_dump($_COOKIE);

Si coloco cualquier valor en cookie.php?x=y en show.php me muestra perfectamente la cookie creada.

Estaría bien que revisaras tu configuración al respecto, igual lo mejor es que en tu index.php uses var_dump($_COOKIE) para verificar la presencia de la cookie.

Porque incluso es posible que sí hayas creado la cookie, pero no haya almacenado valor alguno, que es diferente y entonces el problema radicaría en el script que la crea ¿no te parece?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 31/10/2015, 09:25
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No funcionan las cookies

Muy buenas.

Sí que es verdad que cuando carga el cookies.php parece que al mostrar las variables la primera vez no las muestra pero sí si recargo la página. Sin embargo, cuando va a la siguiente página (la índex.php) no se carga ninguna cookie (lo sé gracias a una extensión de Chrome que muestra las variables que utiliza el sitio web. ¿Cuál podría ser la solución a este problema? Muchas gracias de antemano.
  #4 (permalink)  
Antiguo 31/10/2015, 09:30
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No funcionan las cookies

Adjunto tres imágenes en orden según los archivos que se cargan (los links están en orden).

Imagen 1
Imagen 2
Imagen 3
  #5 (permalink)  
Antiguo 31/10/2015, 11:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No funcionan las cookies

Cita:
parece que al mostrar las variables la primera vez no las muestra pero sí si recargo la página
En esa parte no hay ningún problema, ese es el comportamiento natural de las cookies.

Cita:
cuando va a la siguiente página (la índex.php) no se carga ninguna cookie
Bien, ahora viendo los screenshots que hiciste me doy cuenta que el archivo de cookies.php e index.php no están en la misma carpeta y eso definitivamente afecta el comportamiento de las cookies.

Consulta en el manual de setcookie(), ahí se explica cómo configurar la ruta de la cookie, etc.

http://php.net/setcookie
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 31/10/2015, 11:53
 
Fecha de Ingreso: octubre-2015
Ubicación: España
Mensajes: 21
Antigüedad: 8 años, 6 meses
Puntos: 6
Respuesta: No funcionan las cookies

Efectivamente según pateketrueke te dice, afecta al comportamiento de las COOKIES.

Pero oye, creo que cometes un error al hacer un sistema de login almacenando los datos en una COOKIE debido a que éstas son públicas para el navegador. Y tan sólo con un simple ataque XSS que disponga tu sitio web podrían obtener las credenciales, o si dejas abierto tu navegador.

Hay una opción más recomendada que es el uso de sesiones: http://php.net/manual/es/book.session.php

Échale un ojo y replantéatelo!!

Un saludo.
  #7 (permalink)  
Antiguo 31/10/2015, 18:28
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No funcionan las cookies

Muchas gracias a los dos. Echo un vistazo a las sesiones y me encanta la idea pero trabajé con ellas y no me fue muy bien. Entonces, una pregunta: ¿todas los archivos que trabaje con cookies deben estar en la misma página?
  #8 (permalink)  
Antiguo 31/10/2015, 18:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No funcionan las cookies

Cita:
¿todas los archivos que trabaje con cookies deben estar en la misma página?
No, sencillamente debes usar de manera correcta la función setcookie() o bien configurar de manera global para que el comportamiento sea el que esperas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: cookies, funcionan, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:47.