PHP - No mantiene sesion

 
Vista:

No mantiene sesion

Publicado por Alejandra (15 intervenciones) el 06/08/2007 02:21:56
Hola!, bueno soy nueva en PHP,(otra mas!). Tengo un problema con el paso de sesiones, no me mantiene la sesion de una pagina a otra. Explico: utilizo $_Session, cuando quiero chequear en otras paginas utilizando algunos de las variables de este array me muestra que estan vacios ( o no inicializados para ser exactos).
En cada pagina inicio con session_start() , en la de login cargo el identificador de usuario.

Existe alguna configuracion que deba chequear?. Mi navegador permite cookies.

Saludos y gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No mantiene sesion

Publicado por Diego Romero (1450 intervenciones) el 06/08/2007 07:36:38
Lo único que se me ocurre es que las sesiones no estén activadas en la configuración de PHP, ¿podrías chequear esto?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No mantiene sesion

Publicado por Alejandra (15 intervenciones) el 07/08/2007 02:24:50
Cheque el PHP.ini, y estos son los valores
Whether to use cookies.
session.use_cookies = 1

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.
; session.use_only_cookies = 0

; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 1

Cambie solo auto_start ( que estaba en 0), pero igual no me sigue mantienendo las sesiones.
Probe ingresar a $_SESSION a traves del indice ( en vez de poner el nombre del elemento ponia el numero del vector). Pero no me muestra nada todavia.

I'm thinking... chequee la carpeta TMP y la sesion esta generada.

Alguna idea?

Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No mantiene sesion

Publicado por Diego Romero (1450 intervenciones) el 07/08/2007 06:14:32
Visto desde acá no se me ocurre qué puede ser. Quizá alguien más experimentado en este foro sepa resolverlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No mantiene sesion

Publicado por Gonzalo (84 intervenciones) el 07/08/2007 12:43:35
¿Puedes poner aquí el código en cuestión y qué es lo que sale y lo que no sale?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No mantiene sesion

Publicado por Alejandra (15 intervenciones) el 08/08/2007 01:22:12
Tocando y viendo: se que es un problema de logica, algo pongo mal. O es antes
o despues. Basicamente, conecto a la base de datos, busco el usuario que se conecto en la tabla correspondiente, guardo los datos en $_Session y despues habilito al usuario a ir a otra pagina ( corte alevosamente codigo para que sea mas facil de leer). El asunto es que cuando voy a la pagina TEST3 y quiero ver lo que contiene el array $_Session no me muestra nada.
Es una pavada lo presiento... mas mala me pone! >:(
La sesion se establece porque chequeo en el directorio TEMP y esta generada con los datos que le paso.

Cualquier ayuda bienvenida!.. si encuentro antes la cosa posteo tambien.

Saludos!

<?php
// establezco sesion
session_start();
// Configura los datos de la base de datos
$dbhost='localhost';
$dbuser='root';
$dbuserpass='';
$dbname='INFORMES';
$lband=0;


// Conectar a la base de datos
$link=mysql_connect ($dbhost, $dbuser, $dbuserpass);
mysql_select_db($dbname,$link) or die('Cannot select database');

if ($_POST['StudentId']) {
//Comprobacion del envio del nombre de usuario y password
$StudentId=$_POST['StudentId'];
$password=$_POST['password'];
if ($password==NULL) {
$lband=0;
$message= "Empty password, please try again ";
}else{
$query = mysql_query("SELECT USERS.StuRef,COLLEGE.ParentFirstName,COLLEGE.ParentSurname,COLLEGE.StuFirstname,COLLEGE.StuSurname,USERS.password FROM USERS,COLLEGE WHERE USERS.STUREF = '$StudentId' AND COLLEGE.StuRef='$StudentId' ",$link) or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
$lband=0;
$message= "Wrong password,please try again ";
}else{
$query = mysql_query("SELECT USERS.StuRef,COLLEGE.ParentFirstName,COLLEGE.ParentSurname,COLLEGE.StuFirstname,COLLEGE.StuSurname,USERS.password FROM USERS,COLLEGE WHERE USERS.STUREF = '$StudentId' AND COLLEGE.StuRef='$StudentId' ",$link) or die(mysql_error());
$row = mysql_fetch_array($query);
$lband=1;
if(!isset($_SESSION['s_id'])) {
$_SESSION["s_id"] = session_id(md5(rand(100,999)));
$_SESSION["s_sturef"] = $row[0];
$_SESSION["s_username1"] = $row[1];
$_SESSION["s_username2"] = $row[2];
$_SESSION["s_stuname"] = $row[3];
$_SESSION["s_stusurname"] = $row[4];
}
$message="Welcome ".$_SESSION['s_username1']." " . $_SESSION['s_username2']." please choose the option";
}
}
}
?>
<?php echo $message ?>
<html>
<a href="test3.php">Go to INFORMES</a> // aca corte codigo y llamo directamente a una pagina de test
</html>

///// ACA VIENE EL CODIGO TEST3.PHP

Test3.php ( tiene solo este codigo por ahora)

<?php
session_start();
echo $_SESSION['s_username1'];
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No mantiene sesion

Publicado por Gonzalo (84 intervenciones) el 08/08/2007 07:58:13
Dos preguntas:

1. Por qué cambias el id de sesión ( session_id(md5(rand(100,999))) )?
2. Has mirado en el navegador si estás aceptando cookies y si realmente llega la cookie?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No mantiene sesion

Publicado por Alejandra (15 intervenciones) el 09/08/2007 00:35:07
Hola!.. bueno
1 ) Cambio el id de sesion para hacerlo mas seguro ( a traves del MD5) en realidad hago tambien el Select con seguridad, pero eso lo saque para que sea mas comprensible.
2) Cheque en mi navegador que acepte cookies, y, probe tambien en una pc que no esta en dominio ( por ahi las restricciones que pone el administrador de la red me suena).

Es un misterio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No mantiene sesion - Gracias Gonzalo!

Publicado por Alejandra (15 intervenciones) el 09/08/2007 00:45:22
Funciona!.. saque el MD5() y funciono.. me puse a mirar lo que habia cambiado y anteriormente probe sin MD5 pero en una pc conectada a un dominio que no admite cookies. Gue, tengo que ser mas ordenada en las pruebas.
De todos modos: segun lei es conveniente hacer las consultas SQL y la generacion de sesiones de manera que no sea facil para los malintencionados realizar inyeccion de sql o que nos roben la sesion. Me queda pendiente eso.

A veces las respuestas estan en las preguntas!.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar