Foros del Web » Programando para Internet » PHP »

No me funciona la sesion

Estas en el tema de No me funciona la sesion en el foro de PHP en Foros del Web. Hola amigos tengo un problema que llevo ya 2 dias y no doy con la solucion. Mirar esto es uno facil que he hecho para ...
  #1 (permalink)  
Antiguo 12/05/2005, 14:40
 
Fecha de Ingreso: noviembre-2004
Mensajes: 220
Antigüedad: 13 años
Puntos: 0
No me funciona la sesion

Hola amigos tengo un problema que llevo ya 2 dias y no doy con la solucion. Mirar esto es uno facil que he hecho para no poneros todo el codigo y que tampoco me funciona porque lo estoy probando.

Tengo un archivo que se llama prueba.php el codigo es este:

<html>
<body>
<?
session_start();
echo SID;
$_SESSION['nombre']= "Jaris";
$_SESSION['edad'] = "23";
?>
<p><a href="prueba2.php">Pulsa para enviar </a></p>
</body>
</html>

Inicio sesion, asigno variables de sesion y le digo que pulses para ver el prueba2.

Prueba2.php Este es el codigo.

<?
session_start();
echo SID;
echo $_SESSION['nombre'];
echo $_SESSION['edad'];
header ("Location: prueba3.php")
?>

Compruebo los datos, da poco tiempo pero cuando le quito el header el sid es el mismo y logicamente me muestra los valores de la variable. Pero al hacer el header y pasar al prueba3.php me pierde la sesion.

Prueba3.php Este es el codigo:

<?
session_start();
echo SID;
echo $_SESSION['nombre'];
echo $_SESSION['edad'];
?>

Aqui ya no hay session, el SID es diferente y por lo tanto no hay variables. Bueno que esta pasando con esto?. Que hago mal?. ¿Es problema del header o de que es?

Por favor ayudarme que me estoy volviendo loco con algo que creia tenia mas que machacado y que no veo dificil.

Saludos.
  #2 (permalink)  
Antiguo 13/05/2005, 01:04
 
Fecha de Ingreso: noviembre-2004
Mensajes: 220
Antigüedad: 13 años
Puntos: 0
Nadie me puede ayudar?, que estoy realmente desesperado.
  #3 (permalink)  
Antiguo 13/05/2005, 07:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No puedes enviar salida al cliente (navegador en tu caso) antes de enviar cabeceras HTTP vía header() al mismo.

Es decir .. en tu caso particular .. no puedes hacer:
echo "..."; .. ni un simple espacio antes de <? .. o despues de ?> .. etc ..

Sobre los problemas de propagación del SID (Identificador único de sesión) .. Deberías especificar que configuración de PHP sobre sesiones, .. al parecer estás propagando el SID por el URL automáticamente (session.use_trans_sid = 1 de tu php.ini) .. eso significa que PHP va a sobre-escribir ciertos tag's HTML para incrustar en el el SID .. por ejemplo en un link común .. Pero, no lo hace en ciertas condiciones como:

header() .. redireccionamientos de javascript (window.open .. etc) tampoco con <meta de tipo "refresh" (cebeceras por HTML).

En esos casos .. el SID tendrías que propagarlo a mano en tus redireccionamientos:

header ("Location: nose.php?".SID);

o bien propagar el SID en cookies:
session.use_cookies = 1

De hecho . en cuento a seguridad PHP recomienda propagar el SID en cookies vs a que en ese caso debes tener un cliente que las acepte (navegador).

Un saludo,
  #4 (permalink)  
Antiguo 14/05/2005, 03:04
 
Fecha de Ingreso: noviembre-2004
Mensajes: 220
Antigüedad: 13 años
Puntos: 0
Tenias toda la razon, cluster y muchas gracias por responderme. El problema estaba en mi navegador, al parecer no se el motivo, me salia un simbolito de prohibido en la barra de estado del navegador, que por lo visto ese simbolo lo que hace es bloquear las cookies.

Pero es muy raro porque por ejemplo con la misma programacion si la ponia en el servidor la carpeta raiz www, esta me funcionaba y no me salia el simbolito ese. Pero si lo metia en una carpeta e intentaba iniciar la sesion dentro de la carpeta me bloqueaba las cookies.

La solucion de los propietarios del servidor, me dijeron que error mio de programacion y por eso me bloqueaba las cookies pero mi duda es si es eso cierto o solo es una escusa para respaldarse de que estuve 2 dias intentando dar con el fallo y consultandoles los problemas que encontraba y no lo resolvian.

Saludos.
  #5 (permalink)  
Antiguo 16/05/2005, 09:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm bueno .. En principio PHP al propagar el SID en cookies, la definición de una cookie en sí (cualquiera .. no sólo las que PHP crea) se define el "domino" de validez de dicha cookie, .. la ruta donde quedará y tiempos de expiración.

Cuando tu creas una cookie para www.tal.tal .. no tiene validez para otros sub-dominios que pudieras usar .. en su defecto tendrías que crearla para .tal.tal (si mal no recuerdo).

Puedes usar la función:
session_set_cookie_params()
http://www.php.net/manual/en/functio...kie-params.php

para ajustarlos (lee los comentarios de los usuarios de dicha función).

Con respecto a tu servicio de hosting .. si usan la configuración -por defecto- de PHP .. en "combinaciones" (uso de sub-dominos) de uso de sesiones propagnado el SID en cookies, puede que plantee problemas sobre la cookie a nivel de configuraciones de "seguridad" de navegadores al no ser identificada para el "dominio" que la emite (princial) .. (de todo esto estoy sacando "suposiciones" .. no he tenido la oportunidad de estudiarlo bien).

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 12:34.