Foros del Web » Programando para Internet » PHP »

cookies y session_start()

Estas en el tema de cookies y session_start() en el foro de PHP en Foros del Web. Alguien me podría decir si hay incompatibilidad entre las sesiones y las cookies. En mi sistema de comprovación de usuario utilizo session_start que me permite ...
  #1 (permalink)  
Antiguo 20/02/2006, 09:25
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 12 años, 11 meses
Puntos: 0
cookies y session_start()

Alguien me podría decir si hay incompatibilidad entre las sesiones y las cookies.

En mi sistema de comprovación de usuario utilizo session_start que me permite guardar en una variable de sesión el id.

En esta misma página quiero también recordar el nick de ese usuario mediante una cookie. Utilizo la función set_cookie para tal fin.

Quando el usuario se ha logueado entra en el privado sin problemas pero no hay manera de que aparezca la cookie. Sin embargo he probado de poner simplemente el set_cookie y si que la coge. Lo que me da a entender que no se puede utilizar el set_cookie en una página donde hay un session_start.
__________________
.
  #2 (permalink)  
Antiguo 21/02/2006, 02:56
Avatar de elquique  
Fecha de Ingreso: marzo-2004
Ubicación: Florida, Uruguay
Mensajes: 2.495
Antigüedad: 13 años, 8 meses
Puntos: 78
mm y no sera que tienes los mismos nombres ??
__________________
Blog Jorge Oyhenard | Tutoriales Photoshop
  #3 (permalink)  
Antiguo 21/02/2006, 07:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No hay problemas en definir una cookie antes de inicializar sesiones.

Sólo habría que corroborar como accedes a tus variables de sesión/cookies.

Si usas acceso "global": $nombre_variable_Sesion o $nombre_variable_cookie .. así tendrás muchos problemas y confusiones. Debes usar en principio para descartar problemas de ese estilo los arrays superglobales: $_SESSION para sesiones y $_COOKIE para cookies creadas con setcookies() ...

Un saludo,
  #4 (permalink)  
Antiguo 24/02/2006, 07:23
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 12 años, 11 meses
Puntos: 0
Claro se tiene que definir la cookie (set_cookie) antes de abrir la sesión (session_start). Es lo que estaba diciendo, no puedo poner arriba de la página session_start(); y debajo un set_cookie();
__________________
.
  #5 (permalink)  
Antiguo 27/02/2006, 02:20
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 12 años, 11 meses
Puntos: 0
He descubierto que el problema no está en usar session_start().
He puesto el código dónde había el set_cookie() en otra página, para primero crear las cookies y luego pasar a otra página, mediante un header(), dónde se crearía la variable de sesión.

Por lo tanto de el formulario paso a la página llamada setcookie.php en la que hay, más o menos, este código:

Código:
setcookie( 'CookieNombre', $_POST['nom'], time() + 31536000 );
header( "location:" . __URL__ . "acceso.php" );
Cuando no hay ningún problema y se pasa a la página acceso.php la cookie no se crea. En cambio si pongo algo que haga petar el header, por ejemplo un echo, o sencillamente no pongo el header, la cookie se crea perfectamente.

La gran pregunta: ¿Alguien sabe por qué?

¿A alguien le ha pasado esto antes? ¿Puede ser algo en la configuración del php?

Espero que me podais ayudar...
__________________
.
  #6 (permalink)  
Antiguo 27/02/2006, 05:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El procedimiento último que describes es muy típico usarlo:
Definir una cookie -> redireccionar con cabeceras HTTP.

Como las cookies dependen directamente del "cliente" al igual que las cabeceras HTTP son interpretadas por el cliente (navegador) .. creo que más bien el problema podría darse entre el servidor HTTP (que es por el que se envian las cabeceras y "Seteos" de cookeis) y el cliente (navegador en tu caso) que es quien en última instancia las interpreta.

De todas formas nunca hay que descartar que fuese configuración de PHP .. pero por mi parte ahora no me viene a la cabeza ninguna directiva que podría influir.

Un saludo,

Un saludo,
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 05:57.