Foros del Web » Programando para Internet » PHP »

Sesiones: se pierden variables!

Estas en el tema de Sesiones: se pierden variables! en el foro de PHP en Foros del Web. Amigos: estoy muy confundido porque despues de setear variables de sesion, los valores parecen resetearse. Formulario (OK) Código HTML: <form action= "login_.php" method= "POST" ENCTYPE= ...
  #1 (permalink)  
Antiguo 09/01/2008, 17:41
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Sesiones: se pierden variables!

Amigos: estoy muy confundido porque despues de setear variables de sesion, los valores parecen resetearse.

Formulario (OK)

Código HTML:
<form  action="login_.php"  method="POST"  ENCTYPE="application/x-www-form-urlencoded" >
  
   <label >E-mail: <span ></span></label>
   <input type="text" size="15" name="correo"  /><br/>
   
   <label >Clave : <span ></span></label>
   <input type="text" size="15" name="password" />
   
   <p class="clear"></p>
   <p><input type="submit" class="boton" value="Login" /></p>  
   
</form> 
login_.php

Código PHP:
<?php
Include "../base.inc";  // conexion a la base

$correo=$_POST["correo"]; 
$password=$_POST["password"];  // clave

$sql="SELECT correo,password FROM usuario WHERE correo = '$correo' and password='$password'";
$result mysql_query($sql) or die('An error occured: ' mysql_error());     
$veces mysql_num_rows($result); // vale 1 (o mas) si se encuentra la combinacion de correo y password

session_start(); // inicio Sesion
if($veces>0){    // comprobar user and pass
  
$_SESSION['user']=session_id();  
  
$_SESSION['correo']= $correo;  
  
$_SESSION['password']= $password;  
}
  
?>
Compruebo valores de la variables de sesion (problemas!!!)

Código PHP:
<?php
session_start
(); // inicio Sesion  

$correo =  $_SESSION['correo'];
$pass =  $_SESSION['password'];

echo 
$correo; echo $pass// estan vacias!!!!!!!!!!! :(((((

?>
Estoy cansado de probar y no se me ocurre nada... ideas ??
__________________
Salu2!
  #2 (permalink)  
Antiguo 09/01/2008, 17:57
Avatar de lacho  
Fecha de Ingreso: enero-2008
Mensajes: 26
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Sesiones: se pierden variables!

para que necesitas $veces? es alguna especie de contador? esque bueno mira no se si encontras el usuario en la base de datos eso seria todo, si el $result==true entonces encontro el usuario que especificas y puede crear la sesion tal como lo has hecho, sin embargo el nombre de la sesion seria mejor que le asignaras el nombre del usuario para que dieras un mensaje de bienvenida(esto es solo sugerencia :)) y si no es true entonces un mensaje de error con que no se encuentra el usuario, o es equivocado alguno de los datos o simplemente no pase de la pagina del login y para eso podes usar la funcion header("Location; http://elurel");

bueno yo algo asi logeo

Código PHP:
include("clase_usuario.php");
$sto=md5($_POST['pass']);
$usr=usuario::existe($_POST['usuario'],$sto);


if (isset(
$usr))
{
    
session_start();
    
session_register("usuario_actual");
    if (
$usr['permisos']==111)
    {
    
$_SESSION["usuario_actual"]=$usr;
    
header("Location: http://localhost/administrador.php");
    }
        
}
else 
{
header("Location: http://localhost/logeo.html");} 
y lo que hace el metodo existe es consultar en la base de datos el usuario y su password y te regresa true si coinciden ambos datos, practicamente lo que ya tenes :) espero que te sirva
claro podes omitir el if de los permisos porque yo para mi caso manipulo permisos para las actividades que el usuario pueda realizar pero si solo necesitas saber que el usuario existe entonces quitalo y listo.
  #3 (permalink)  
Antiguo 09/01/2008, 18:13
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Re: Sesiones: se pierden variables!

Amigo lacho: gracias por todas las sugerencias ....

No entiendo porque mezclas session_register de PHP3 con $_SESSION de PHP4.... en realidad... estoy muy confundido en todo sentido

Alguien me puede decir por que se pierden los valores en mi script ???
__________________
Salu2!
  #4 (permalink)  
Antiguo 09/01/2008, 18:19
Avatar de lacho  
Fecha de Ingreso: enero-2008
Mensajes: 26
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Sesiones: se pierden variables!

ahh bueno si el register lo use en ese script porque cuando hice eso estaba aprendiendo sesiones(con ejemplos algo viejitos) y pues nunca lo quite pero funciona sin el.

y lo de tu script sigo pensado que es tu if, imprimi su valor y mira si es por eso, o proba quitandolo a ver si te funciona. porque sigo pensado que si no es contador o algo por el estilo esta de mas, ya que si la consulta da false(osea mysql_query) no existe el usuario o la pass tal como la escribieron asi que das el error, sin necesidad de hacer lo de $veces, lo demas creo que esta correctamente escrito.
  #5 (permalink)  
Antiguo 10/01/2008, 06:50
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Re: Sesiones: se pierden variables!

lacho: gracias x todo!

Al final... pude solucionar el problema y eran estos dos:

a) tengo una web modularizada y ejecutaba dos veces session_start()
b) el script para chequear si el user estaba registrado no me funcionaba.

Parece ser que no me funciona bien mysql_num_rows asi que sigo haciendo esto de contar a mi manera (directamente en SQL)


Function registrado(){ // esta el usuario registrado ?
$sql = "SELECT COUNT(DISTINCT `correo`) as `cantidad` FROM usuario WHERE correo = '$correo' and password='$password'";
$tabla_db = mysql_query($sql);
$veces = mysql_result($tabla_db,0,"cantidad");

return($veces);
}

Es una pregunta tonta, pero como hago para que devuelva TRUE si veces es >=1 y FALSE si es ==0 ?
__________________
Salu2!
  #6 (permalink)  
Antiguo 10/01/2008, 07:45
 
Fecha de Ingreso: febrero-2007
Ubicación: Jaén
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 1
Re: Sesiones: se pierden variables!

Hola.

Para que tu funcion te devuelva true o false simplemente tienes que comprobar la variable $veces dentro de la función registrado.

Quedaría:
Código:
if ($veces>=1)
     return true;
else
     if($veces==0)
         return false;
Supongo que con esto te bastará.

Saludos
  #7 (permalink)  
Antiguo 10/01/2008, 10:03
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Re: Sesiones: se pierden variables!

kirkem: gracias! es simple pero lo hice de una manera que no me funcionó (no me tomaba bien los valores y todavia no entiendo porque)
__________________
Salu2!
  #8 (permalink)  
Antiguo 11/01/2008, 05:33
 
Fecha de Ingreso: febrero-2007
Ubicación: Jaén
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 1
Re: Sesiones: se pierden variables!

Entonces, quedó resuelto tu problemilla?
  #9 (permalink)  
Antiguo 11/01/2008, 05:41
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Re: Sesiones: se pierden variables!

kirkem: si gracias...... en realidad era era otra cosa pero no se porqué supuse que el problema pasaba por algo tan simple

suerte que esta todo solucionado
__________________
Salu2!
  #10 (permalink)  
Antiguo 30/04/2008, 08:02
 
Fecha de Ingreso: abril-2008
Mensajes: 4
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Sesiones: se pierden variables!

ando buscando una solucion para encontrar por que se me pierden mis variables de sesion en php cuando paso de una pagina a otra o si tengo frames, veo que italico76 tenia un problema similar, pero no publico su solucion.

mi problema es el siguiente: utilizo el script administrator para loguear validar usuarios lo hago a un conjunto de frames pero necesito que las variables de sesion sigan activas en todos los frames.

gracias
  #11 (permalink)  
Antiguo 30/04/2008, 12:04
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Re: Sesiones: se pierden variables!

Cita:
Al final... pude solucionar el problema y eran estos dos:

a) tengo una web modularizada y ejecutaba dos veces session_start()
b) el script para chequear si el user estaba registrado no me funcionaba
Hola fedemogez78 ... el problema que tenia es que en el programa principal y en el modulo donde manejaba las seciones (dos lugares distintos) hacia uso de session_start() y eso me reseteaba (al menos en mi caso)....... los valores

Espero tu problema sea el mismo o facil de solucionar
__________________
Salu2!
  #12 (permalink)  
Antiguo 11/06/2009, 09:57
 
Fecha de Ingreso: junio-2008
Ubicación: Spain
Mensajes: 39
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Sesiones: se pierden variables!

hola, a ver si esto aun esta activo, me pasa algo un poco mas raro, a mi se me resetea solo una de las 7 variables que utilizo (solo una), y pasa cuando ejecuto alguna consulta que contenga mas de 100 reg. siempre se resetea la misma variable, las otras siguen con su contenido inicial..

a que es raro.

salU2...
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 21:32.