Foros del Web » Programando para Internet » PHP »

login con $_SESSION y variables de session

Estas en el tema de login con $_SESSION y variables de session en el foro de PHP en Foros del Web. Estoy investigando el tema de las sessiones. He leído varias paginas y tutoriales pero no logro dar con el clavo. A ver si pueden explicarme ...
  #1 (permalink)  
Antiguo 06/09/2008, 01:42
Avatar de WArriola  
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 2 meses
Puntos: 0
Pregunta login con $_SESSION y variables de session

Estoy investigando el tema de las sessiones.

He leído varias paginas y tutoriales pero no logro dar con el clavo.

A ver si pueden explicarme q hago mal

Estos son los códgos q uso:

login.php
Código PHP:
<?php
session_start
();
if(isset(
$SESSION)){
   
header("location:user.php");
} else { 
?>
   <html><head><title>Necesita identificación! </title></head>
      <body>
      <center><h1>Identificate! :D </h1></center>
           <form action="comprueba.php" method="POST">
                Usuario: <input type="text" name="usr"><br>
                Clave: <input type="password" name="pas"><br>
                <input type="submit" value="Entrar">
           </form>
       </body></html>
<?php

?>
comprueba.php
Código PHP:
<?php
// Inicio la session
   
session_start();

// script con datos para acceder a la DB
   
include_once("./datos.php");

// Datos q recibo del formulario
   
$usuario $_POST['usr'];
   
$clave  $_POST['pas'];

// Compruebo q el usuario exista
   
$result comprobar($usuario$clave);

// Verifico el resultado
   
if(mysql_num_rows($result)==0){
      echo 
"No existe el login introducido";
   } else {
      
$array=mysql_fetch_array($result);

      
// Guardo datos en array
      
$datos =array (
          
'firma'      =>$array['Firma'],
          
'msn'       =>$array['msn'],
          
'nombre'  =>$usuario
      
);

// Guardo el array en variables de session
      
$_SESSION["SESSION"]=$datos;

// Redireccono
      
header("location:user.php");
   }
?>

user.php
Código PHP:
<?php
// Inicio session
   
session_start();

// Compruebo q exista
   
if(!isset($_SESSION)){
      echo 
"Nop che";
//header("location:login.php");
   
} else {
      echo 
"<html><body>";
      echo 
"Sip che!!!  lol ";
      echo 
$_SESSION['datos']['nombre'];
      echo 
"<br>Has entrado con el nombre de usuario ";
      echo 
$_SESSION['datos']['firma']." - ";
      echo 
$_SESSION['datos']['msn'];
      echo 
"<br>Para cerrar la sesión, pulsa: <a href='logout.php'>logout</a>";
      echo 
"</body></html>";
   }
?>
logout.php
Código PHP:
<?php
session_start
();
   if(!isset(
$_SESSION)){
      
header("location:login.php");
   } else {
      
session_unset();
      
session_destroy();
      echo 
"Las variables de sesión han sido eliminadas, y la sesión se ha dado por finalizada correctamente ;-)";
   }
?>
Pues con todo eso, corro el login e ingreso información valida y el resultado es el siguiente:

Cita:
Bienvenido
Has entrado con el nombre de usuario -
Para cerrar la sesión, pulsa: logout

Osea, no hace los echo, mas bien estan vacíos, pero no entiendo q hago mal......

Última edición por WArriola; 06/09/2008 a las 11:44
  #2 (permalink)  
Antiguo 06/09/2008, 02:54
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Ayuda por favor!!!!

en login.php, usas verificas la variable isset($SESSION) o seria isset($_SESSION)

te recomendaria dar como condición una variable de session específica...
  #3 (permalink)  
Antiguo 06/09/2008, 03:17
Avatar de WArriola  
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda por favor!!!!

Sip, ya cambié éso pero sigue igual.

No entendí bien lo de la variable de sessión específica.

Yo tenía la idea de que, en el archivo user.php, en:

if(!isset($_SESSION)){

Como q falta algo ahí, seguro sea eso a lo que te refieres, pero no me doy cuenta que poner.

Ya probé poniendo

if(!isset($_SESSION['datos'])){

pero nada, es que el tema esta allí, ese If es el que hace imprimir en pantalla el mensaje que aparece, pero por alguna razón, si bien evalúa esa variables, no le da los valores que yo quiero recoger, y aparecen vacíos.
La otra opción que se me ocurre es que estoy cargando mal los datos en el array de sessión, ya he probado varias cosas y no me doy cuenta del error.
Los datos en la base ya los verifique por separado y funcionan correctamente, lo mismo la sentencia sql.

=(
  #4 (permalink)  
Antiguo 06/09/2008, 03:26
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Ayuda por favor!!!!

disculpa, no trabajo con arreglo de sessiones, pero en fin, ya que estas en ese movimeinto, te pregunto, esta bien dar valores a tu arreglos session de esta forma ??

// Guardo el array en variables de session
$_SESSION["SESSION"]=$datos;

no seraia

// Guardo el array en variables de session
$_SESSION["datos"]=$datos;

disculpa mi ignorancia, pero no suelo trabajar con arreglos de session....
  #5 (permalink)  
Antiguo 06/09/2008, 11:19
Avatar de WArriola  
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda por favor!!!!

Sabes q tenes razón, observando ese detalle si, ahí tb me equivoqu, es que por lo general como errores de ese tipo, que resultan dificil de darte cuando. pq por lo general buscas el error en la lógica y no en la sintaxis. Lo pruebo y te cuento ok.

No es que yo trabaje siempre con arreglos, es que quiero guardar varios datos en la sessión y fue la forma que se me ocurrió de usar, quiero crear la sessión y guardar en ella esos tres datos, y pensé que esa era la forma de hacer, si conoces una mas simple, bien venida sea.

Y principalmente gracias por el interes, en cuanto llegue a casa pruebo cambiar eso y te cuento.

Salu2!!!
  #6 (permalink)  
Antiguo 06/09/2008, 11:23
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Ayuda por favor!!!!

Hola WArriola,

te invito a que cambies el titulo del mensaje por algo más descriptivo. Los 'Ayuda Urgente' no facilitan la búsqueda de temas ni saber de qué se habla en él.

Gracias y suerte.
  #7 (permalink)  
Antiguo 06/09/2008, 11:45
Avatar de WArriola  
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda por favor!!!!

Cita:
Iniciado por jerkan Ver Mensaje
Hola WArriola,

te invito a que cambies el titulo del mensaje por algo más descriptivo. Los 'Ayuda Urgente' no facilitan la búsqueda de temas ni saber de qué se habla en él.

Gracias y suerte.
Hecho!!!

Creeo q este nuevo titulo si es mas descriptivo. Perdón.
  #8 (permalink)  
Antiguo 06/09/2008, 12:00
Avatar de WArriola  
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: login con $_SESSION y variables de session

Pues lo logré!!!!!

Cambié eso q me dijiste hector2c, probé nuevamente el script y nada.

A parte de eso, estoy tratando de instalar joomla para probarlo, no pude en mi servidor local porque decía no tenía habilitadas las cookies.

Tonces eso me abrió los ojos, y lo subí a mi hosting, lo probé y FUNCIONÓ!!!!!!

O sea que el escript funciona, ahora para poder probarlo en local tengo que modificar mi php.ini para que acepte cookies, tengo q busca ahora como se hace eso.

Muchas gracias y espero le sirva a alguien que lo precise.
  #9 (permalink)  
Antiguo 06/09/2008, 13:20
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: login con $_SESSION y variables de session

jajajaja, bueno, se ayuda en lo que se puede n_n
  #10 (permalink)  
Antiguo 03/12/2009, 22:11
 
Fecha de Ingreso: febrero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: login con $_SESSION y variables de session

A mi me funciono perfectamente, lo que me gustaria saber a mi si puedo guardar el id de usuario con _SESSION y como lo hago..., por que el nombre de usuario lo saco por medio del campo de logeo si mal no entiendo, no es asi?
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 10:51.