Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2007, 11:09
miguel867
 
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!!!