Foros del Web » Programando para Internet » PHP »

problema con mis sesiones

Estas en el tema de problema con mis sesiones en el foro de PHP en Foros del Web. Saludos, e estado aprendiendo el lenguaje de programación php y estoy haciendo un sistema de inicio de sesión de con diferentes tipos, donde ya logre ...
  #1 (permalink)  
Antiguo 26/07/2013, 13:11
Avatar de ghiper  
Fecha de Ingreso: julio-2013
Ubicación: Guadalajara Jalisco
Mensajes: 80
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta problema con mis sesiones

Saludos, e estado aprendiendo el lenguaje de programación php y estoy haciendo un sistema de inicio de sesión de con diferentes tipos, donde ya logre hacer el inicio de sesión a cada tipo de usuario ´mi codigo es el siguiente:
Código PHP:
<?php
session_start
();
include_once 
"conexion.php";
function 
verificar_login($user,$password,&$result) {
    
$sql "SELECT * FROM usuarios WHERE usuario = '$user' and password = '$password'";
    
$rec mysql_query($sql);
    
$count 0;
    
 
    while(
$row mysql_fetch_object($rec))
    {
        
$count++;
        
$result $row;
    }
 
    if(
$count == 1)
    {
        return 
1;
    }
 
    else
    {
        return 
0;
    }
    
}
 
if(!isset(
$_SESSION['userid']))
{
    if(isset(
$_POST['login']))
    {
        if(
verificar_login($_POST['user'],$_POST['password'],$result) == 1)
        {
            
$_SESSION['userid'] = $result;
            switch(
$result->tipo)
{                
            case 
'0':            
            
header('location:principal.php');
            exit;
            break;
             
            case 
'1':            
            
header('location:principal2.php');
            exit;
            break;
             
            case 
'2':            
            
header('location:principal3.php');
            exit;
            break;
             
            case 
'3':            
            
header('location:principal4.php');
            exit;
            break;
             
            default:
            
header('location:index.php');
            exit;
}
        }        
        else
        {
            echo 
'<div class="error">Su usuario es incorrecto, intente nuevamente.</div>';
        }
        
    }    
?>
<form action="" method="post" class="login">
    <div><label>Nombre de Usuario</label><input name="user" type="text" ></div>
    <div><label>Contrase&ntilde;a</label><input name="password" type="password"></div>
    <div><input name="login" type="submit" value="Inicio"></div>
    <div><a href="login.php" class="registrar"></a></div>
</form>
<?php
}
else {
    include_once(
"index.php");
    }
?>
esto ya me dirige a cada tipo de usuario según sea el login.

mi problema que cuando agrego los archivos "principal.php" por ejemplo, donde tomo mi variable de sesión para mostrar el usuario no me imprime el nombre del usuario solo el texto de "bienvenido" mas no el nombre el codigo que uso es el siguiente:
Código PHP:
<?php
  session_start
();
  
// Inicia sesión
  // Si la sesión de usuario no se establece,
  // esta página saltará a página de acceso
  
if (!isset($_SESSION['userid'])) { 
     
header('Location: index.php');
  } else {
session_unset('userid');}
   
//Borra la variable de sesión
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
</head>

<body>
<p>Bienvenido:<?php echo $_SESSION['userid']; ?></p>
<br/><a href="logout.php">Logout</a>

</body>
</html>
espero me entiendan en mi pregunta y me puedan ayudar repito tengo escaso una semana aprendiendo el lenguaje y aun me tengo muchas dudas
  #2 (permalink)  
Antiguo 26/07/2013, 15:16
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: problema con mis sesiones

Bueno, para comenzar tienes idea de lo que hace session_unset()?, al parecer no tienes mucha idea, por otro lado, has analizado la condición que haces?, veamos con mas detenimiento lo que haces...

Código PHP:
Ver original
  1. <?php
  2.  
  3. if (!isset($_SESSION['userid'])) {
  4.      //primero dices "si no existe la variable $_SESSION['userid'] hacer una redirección"...
  5.      header('location: index.php');
  6.      //por cierto, SIEMPRE que haces un header('location: ....') debes llamar a exit(); para detener
  7.      //la ejecución del script!
  8.      exit();
  9. }else {
  10.      //luego dices que SI EXISTE la variable $_SESSION['userid'] mandas a llamar session_unset();
  11.      //por cierto, session_unset() no se le pasan parámetros, el 'userid' esta demás...
  12.     session_unset();
  13. }
  14.  
  15. <!doctype html>
  16. <html>
  17. <head>
  18. <meta charset="utf-8">
  19. <title>Documento sin título</title>
  20. </head>
  21.  
  22. <body>
  23. <!--
  24.      Ahora, recordemos lo que hace session_unset(), lo que hace es
  25.      BORRAR TODAS las variables dentro del super array $_SESSION,
  26.      por lo tanto, cuando mandas a llamar $_SESSION['userid'] este
  27.      YA NO EXISTE, por lo tanto, es lógico que solo se vea "Bienvenido"
  28. -->
  29. <p>Bienvenido:<?php echo $_SESSION['userid']; ?></p>
  30. <br/><a href="logout.php">Logout</a>
  31.  
  32. </body>
  33. </html>
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 26/07/2013, 15:48
Avatar de ghiper  
Fecha de Ingreso: julio-2013
Ubicación: Guadalajara Jalisco
Mensajes: 80
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problema con mis sesiones

gracias por tu respuesta,

Última edición por ghiper; 26/07/2013 a las 15:52 Razón: modificar comentario
  #4 (permalink)  
Antiguo 26/07/2013, 15:55
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: problema con mis sesiones

Leiste los comentarios que deje en el código? solo es cuestión de analizar lo que estas haciendo, y ver por ti mismo los errores que has cometido, vamos, es solo un problema de lógica, no puedes imprimir algo que no existe!, si estas comenzando como dices no te daré la solución directa, porque es alimentar el que no busques la solución por tu cuenta, mas cuando es un problema muy sencillo...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 26/07/2013, 16:00
Avatar de ghiper  
Fecha de Ingreso: julio-2013
Ubicación: Guadalajara Jalisco
Mensajes: 80
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problema con mis sesiones

si gracias lo c, ya entendí a que te refieres, por eso modifique el comentario anterior.

Etiquetas: html, mysql, select, sesiones, sql, usuarios, variable
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 12:55.