Foros del Web » Programando para Internet » PHP »

Problema con sesiones

Estas en el tema de Problema con sesiones en el foro de PHP en Foros del Web. Hola amigos estoy intentando utilizar sesiones en una web con Flash y PHP. Los scripts que utilizo son los siguientes: script "control.php" que comprueba si ...
  #1 (permalink)  
Antiguo 23/09/2007, 11:09
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 18 años
Puntos: 1
Problema con sesiones

Hola amigos estoy intentando utilizar sesiones en una web con Flash y PHP. Los scripts que utilizo son los siguientes:

script "control.php" que comprueba si existe el user y pass, y si existe crea la sesión con el dni del usuario
Código PHP:
<?PHP

$user 
$_POST["dni"];
$pass $_POST["clave"];
mysql_select_db($database_conex$conex);
$query_consulta "SELECT * FROM clientes WHERE dni='$user' and clave='$pass'";
$consulta mysql_query($query_consulta$conex) or die(mysql_error());
$totalRows_consulta mysql_num_rows($consulta);

//Vemos si el usuario y contraseña es válido 
if (mysql_num_rows($consulta)!= 0)

    
//usuario y contraseña válidos 
    
session_start();
    
session_register('cliente');
    
$_SESSION['cliente'] = $_POST["dni"];
    exit();
}

...
?>

script "saludo.php" donde se redirige cuando el usuario logeado existe en la BD. Entre otras cosas se quiere mostrar el valor de la variable de sesión.
Código PHP:

session_start
();
$uss $_SESSION['cliente'];

// a continuación utilizo la variable $uss para mostrar su contenido en la web entre otras cosas 

... 
El problema está en que me di cuenta que sólo se muestra el valor de la variable de sesión si la página está almacenada en la caché del navegador. Si entras por primera vez a la página o limpias las caché, te logea bien pero no te muestra la variable de sesión.

Inspeccionando en la carpeta "sessions" que defines en la configuración de PHP donde se guardan las sesiones, me doy cuenta que se crean dos ficheros de sesiones cuando se invoca a la función "session_start()", una por cada script. Un fichero de sesion vacío que no contiente nada (correspondiente a la invocación de session_start en "saludo.php") y otro fichero de sesión con el valor correcto del cliente (correspondiente a la invocación de session_start en "control.php"). Por tanto, intenté omitir la invocación a session_start en "saludo.php" pero es inevitable invocarla si quieres utilizar la variable de sesión ya inicializada en "control.php".

Ya he probado todo, pero no sé que puede estar sucediendo, nunca me había pasado esto. No sé si tiene algo que ver que utilizo los scripts PHP a través de las páginas en Flash con las funciones "sendAndLoad", "load" o "getUrl", pero no creo que tenga relación.

Si alguien tiene alguna idea, se lo agradecería porque ya no sé que hacer.

Gracias y saludos!!!
  #2 (permalink)  
Antiguo 23/09/2007, 11:30
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Problema con sesiones

ni idea, seguro que no es el temporal que se genera y despues se borra?
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 23/09/2007, 11:39
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 18 años
Puntos: 1
Re: Problema con sesiones

Hola Kaninox,

Las sesiones sólo se destruyen en la carpeta "sessions" cuando se pincha el link "cerrar sesión", en cuyo script se invoca a la función "session_destroy".

No sé si te referías a esa carpeta temporal.
  #4 (permalink)  
Antiguo 23/09/2007, 12:08
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Problema con sesiones

nop me referia a que cuando creas una sesion aparte se genera un temporal que a la vista no tiene nada y al eliminar se eliminan ambos, sera eso tu problema :/, esque como dices que se te generan dos archivos, supongo es el tipico temporal de la sesion :/
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #5 (permalink)  
Antiguo 23/09/2007, 12:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 20
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Problema con sesiones

Cuando llamas a php desde flash no se referencian las sesiones. Deberías crear la sesión antes de lanzar el .swf y pasarle como parámetro el session_id para luego devolverlo en la consulta y enlazarlo en php... también podría serte útil manejar las sesiones en bases de datos.
  #6 (permalink)  
Antiguo 24/09/2007, 02:03
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 18 años
Puntos: 1
Re: Problema con sesiones

Hola rubenlopez,

¿Cómo puedo en la función session_start() o con otra función indicarle que quiero utilizar la sesión abierta con el id correspondiente que le paso al script, tal y como me has dicho que hiciera?

¿A qué te refieres con manejar las sesiones en bases de datos? ... ¿A guardarte los datos de las variables de sesión en la BD?

A ver si con vuestra ayuda lo soluciona ya de una vez...

Gracias.
  #7 (permalink)  
Antiguo 24/09/2007, 05:15
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 18 años
Puntos: 1
Re: Problema con sesiones

Ya lo he solucionado por fin!!!

buscando por internet, he visto que alguien utilizaba las sesiones así:

Código PHP:
session_id ("temp");
session_start();
... 
para forzar que el id de la sesión fuera "temp" cada vez que se necesitaba usar las variables de sesión.

Gracias a todos por la ayuda!!!
  #8 (permalink)  
Antiguo 25/09/2007, 01:50
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 18 años
Puntos: 1
Re: Problema con sesiones

Hola otra vez amigos,

después de resolver este problema, mi duda es ¿cómo puedo tener almacenados variables de sesión de dos navegadores distintos (serían dos clientes distintos cada uno en su pc correspondiente)?

Actualmente lo que me pasa es que si el primer cliente se logea
correctamente, se crea la sesión con sus datos en un fichero y cuando se logea el segundo cliente no crea otro fichero de sesión con sus datos, sino que la invocación a "session_start" utiliza los datos de la sesión ya abierta.

¿Alguien sabe qué puedo hacer para poder tener abiertas varias sesiones y almacenar los datos de los dos clientes?

saludos
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 04:32.