Foros del Web » Programando para Internet » PHP »

Control de sesiones en PHP

Estas en el tema de Control de sesiones en PHP en el foro de PHP en Foros del Web. Hola amigo tengo este problema como puedo controlar a los usuario que son 2 administrador y un usuario normal que si inicio sesión con el ...
  #1 (permalink)  
Antiguo 20/09/2015, 12:00
Avatar de joseanguiano  
Fecha de Ingreso: agosto-2015
Ubicación: Coatzacoalcos
Mensajes: 87
Antigüedad: 9 años, 2 meses
Puntos: 1
Pregunta Control de sesiones en PHP

Hola amigo tengo este problema como puedo controlar a los usuario que son 2 administrador y un usuario normal que si inicio sesión con el usuario este personaje NO pueda acceder a cosas del administrador por medio de la URL ejemplo localhost/usuario/index.php y coloque en vez de usuario coloque administrador como controlo esa parte que el usuario no ingrese a cosas que solo el administrador puede ver y viceversa Ayuda PORFAVOR saludos buen dia anexo el código

Este scrip control el inicio de sesión del usuario llamado proceso.php
Código PHP:
<?php



session_start
();



$usernamesistema =$_POST['usernamesistema'];

$passwordsistema =$_POST['passwordsistema'];



include(
"sistema/conexion.php");



$proceso $mysqli->query("SELECT * FROM usersistema WHERE usernamesistema='$usernamesistema' AND passwordsistema='$passwordsistema'");



if(
$resultado mysqli_fetch_array($proceso)){

    
$_SESSION['u_usuario'] = $usernamesistema;

$role $resultado["profile"];
switch (
$role) {
    case 
'Trabajador':
        
header("Location: Usuario/index.php");
            
//header("Location: Trabajador/");
        
break;
    
    case 
'Gerente':
        
header("Location: Gerente/index.php");
        break;

    case 
'Admin':
        
header("Location: Administrador/index.php");
        break;
    default:
            echo 
"<script type=\"text/javascript\">alert('¡Opps! Si no tienes un perfil, estás descartado'); window.location='index.html';</script>";  

}
}

else{
    echo
"<script type=\"text/javascript\">alert('Usuario o Contraseña incorrectos'); window.location='index.html';</script>";  

}





?>

este scrip controla la sesión en el usuario normal llamado index.php

Código PHP:
<?php

        session_start
();

        
//session_destroy();

        
if(isset($_SESSION['u_usuario'])){

            
//echo "<a href='cerrar_sesion.php'>Cerrar sesion</a";

                    
}

        else{

            
header("Location: index.html");

        }

    
?>
ayuda porfavor toda respuesta será bienvenida
__________________
Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre.

Última edición por joseanguiano; 20/09/2015 a las 12:02 Razón: c
  #2 (permalink)  
Antiguo 20/09/2015, 15:35
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Control de sesiones en PHP

las paginas que van a ver los administradores colocas esto algo asi:

Código PHP:
Ver original
  1. //cabecera de las paginas para solo Administradores
  2.     session_start();
  3.      
  4.     if (isset($_SESSION['MM_Username']) &&  $_SESSION['nivel']=="Administrador")
  5.     {
  6.     }
  7.     else
  8.     {
  9.         header('Location:/app/error_acceso.php');
  10.    
  11.     echo "<br/>" . "Esta pagina es solo para usuarios registrados." . "<br/>";
  12.    
  13.     echo "<br/>" . "<a href='index.php'>Ingresa aqui!!!</a>";
  14.      
  15.     exit;
  16.     }
  17.  
  18.  
  19. //cabecera de las paginas para todos
  20.     session_start();
  21.      
  22.     if (isset($_SESSION['MM_Username']))
  23.     {
  24.     }
  25.     else
  26.     {
  27.         header('Location:/app/error_acceso.php');
  28.    
  29.     echo "<br/>" . "Esta pagina es solo para usuarios registrados." . "<br/>";
  30.    
  31.     echo "<br/>" . "<a href='index.php'>Ingresa aqui!!!</a>";
  32.      
  33.     exit;
  34.     }
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 20/09/2015, 16:03
Avatar de joseanguiano  
Fecha de Ingreso: agosto-2015
Ubicación: Coatzacoalcos
Mensajes: 87
Antigüedad: 9 años, 2 meses
Puntos: 1
Pregunta Respuesta: Control de sesiones en PHP

Cita:
Iniciado por xfxstudios Ver Mensaje
las paginas que van a ver los administradores colocas esto algo asi:

Código PHP:
Ver original
  1. //cabecera de las paginas para solo Administradores
  2.     session_start();
  3.      
  4.     if (isset($_SESSION['MM_Username']) &&  $_SESSION['nivel']=="Administrador")
  5.     {
  6.     }
  7.     else
  8.     {
  9.         header('Location:/app/error_acceso.php');
  10.    
  11.     echo "<br/>" . "Esta pagina es solo para usuarios registrados." . "<br/>";
  12.    
  13.     echo "<br/>" . "<a href='index.php'>Ingresa aqui!!!</a>";
  14.      
  15.     exit;
  16.     }
  17.  
  18.  
  19. //cabecera de las paginas para todos
  20.     session_start();
  21.      
  22.     if (isset($_SESSION['MM_Username']))
  23.     {
  24.     }
  25.     else
  26.     {
  27.         header('Location:/app/error_acceso.php');
  28.    
  29.     echo "<br/>" . "Esta pagina es solo para usuarios registrados." . "<br/>";
  30.    
  31.     echo "<br/>" . "<a href='index.php'>Ingresa aqui!!!</a>";
  32.      
  33.     exit;
  34.     }
Hola amigo gracias por apoyarme de esta manera el codigo funciona los usuarios normales no pueden ver cosas del administrador hasta ese momento todo esta perfecto mas sin embargo no puedo accesar como administrador? te muestro el codigo para ver si me puedes seguir orientado me vendria muy bien que me pudieras seguir apoyando te agradesco.

Código PHP:
<?php
 session_start
();
     
    if (isset(
$_SESSION['u_usuario']) &&  $_SESSION['profile']=="Administrador")
    {
        
header('Location:Administrador/index.php');
    }
    else
    {
        
header('Location:../index.html');
    
    echo 
"<br/>" "Esta pagina es solo para usuarios registrados." "<br/>";
    
    echo 
"<br/>" "<a href='index.php'>Ingresa aqui!!!</a>";
     
    exit;
    }
 


    
?>
por cierto tu codigo me parecio exelente
__________________
Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre.
  #4 (permalink)  
Antiguo 20/09/2015, 19:13
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 9 meses
Puntos: 69
Respuesta: Control de sesiones en PHP

No estás definiendo la variable de sesión profile, por eso cada vez que hace la comparación con el if nunca va a entrar en la parte del administrador porque no se cumplen las dos condiciones del if. Podrías usar la variable $role que tienes en la página de logueo para crear una nueva variable de sesión profile así:

Código PHP:
Ver original
  1. $_SESSION['profile'] = $role;

Y en el if tendrías que poner:

Código PHP:
Ver original
  1. if (isset($_SESSION['u_usuario']) && *$_SESSION['profile']=="Admin")
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #5 (permalink)  
Antiguo 20/09/2015, 20:06
Avatar de joseanguiano  
Fecha de Ingreso: agosto-2015
Ubicación: Coatzacoalcos
Mensajes: 87
Antigüedad: 9 años, 2 meses
Puntos: 1
De acuerdo Respuesta: Control de sesiones en PHP

Cita:
Iniciado por chronos682 Ver Mensaje
No estás definiendo la variable de sesión profile, por eso cada vez que hace la comparación con el if nunca va a entrar en la parte del administrador porque no se cumplen las dos condiciones del if. Podrías usar la variable $role que tienes en la página de logueo para crear una nueva variable de sesión profile así:

Código PHP:
Ver original
  1. $_SESSION['profile'] = $role;

Y en el if tendrías que poner:

Código PHP:
Ver original
  1. if (isset($_SESSION['u_usuario']) && *$_SESSION['profile']=="Admin")
Hola compañeros gracias por brindarme un poco de su tiempo lo agradezco compañero chronos682 realice el código mas sin embargo no se si estoy bien realice las pruebas pero me sale me vota nuevamente al índex no me deja entrar en la pagina del administrador

coloque esto en mi pagina proceso.php
Código PHP:
<?php



session_start
();



$usernamesistema =$_POST['usernamesistema'];

$passwordsistema =$_POST['passwordsistema'];



include(
"sistema/conexion.php");



$proceso $mysqli->query("SELECT * FROM usersistema WHERE usernamesistema='$usernamesistema' AND passwordsistema='$passwordsistema'");



if(
$resultado mysqli_fetch_array($proceso)){

    
$_SESSION['u_usuario'] = $usernamesistema;
    
$_SESSION['profile'] = $role;

$role $resultado["profile"];
switch (
$role) {
    case 
'Trabajador':
        
header("Location: Usuario/index.php");
            
//header("Location: Trabajador/");
        
break;
    
    case 
'Gerente':
        
header("Location: Gerente/index.php");
        break;

    case 
'Admin':
        
header("Location: Administrador/index.php");
        break;
    default:
            echo 
"<script type=\"text/javascript\">alert('¡Opps! Si no tienes un perfil, estás descartado'); window.location='index.html';</script>";  

}
}

else{
    echo
"<script type=\"text/javascript\">alert('Usuario o Contraseña incorrectos'); window.location='index.html';</script>";  

}





?>
posteriormente coloque esto en la pagina index de administrador

Código PHP:
<?php
 session_start
();
     
    
//if (isset($_SESSION['u_usuario']) &&  $_SESSION['profile']=="Administrador") if (isset($_SESSION['u_usuario']) && *$_SESSION['profile']=="Admin")
    
if (isset($_SESSION['u_usuario']) && $_SESSION['profile']=="Administrador")
    {
        
header('Location:Administrador/index.php');
    }
    else
    {
        
header('Location:../index.html');
    
    echo 
"<br/>" "Esta pagina es solo para usuarios registrados." "<br/>";
    
     
    exit;
    }
 


    
?>
pero el resultado sigue siendo que me bota al index de inicio de sesión que será lo que tengo mal
__________________
Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre.
  #6 (permalink)  
Antiguo 20/09/2015, 20:28
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 9 meses
Puntos: 69
Respuesta: Control de sesiones en PHP

Lo estas poniendo mal:

Código PHP:
Ver original
  1. $_SESSION['profile'] = $role;
  2. $role = $resultado["profile"];

Es lo contrario:
Código PHP:
Ver original
  1. $role = $resultado["profile"];
  2. $_SESSION['profile'] = $role;

Y el if no lo cambiaste. Debes ponerlo así:
Código PHP:
Ver original
  1. if (isset($_SESSION['u_usuario']) && $_SESSION['profile']=="Admin")
  2.     {
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #7 (permalink)  
Antiguo 20/09/2015, 21:10
Avatar de joseanguiano  
Fecha de Ingreso: agosto-2015
Ubicación: Coatzacoalcos
Mensajes: 87
Antigüedad: 9 años, 2 meses
Puntos: 1
Pregunta Respuesta: Control de sesiones en PHP

Cita:
Iniciado por chronos682 Ver Mensaje
Lo estas poniendo mal:

Código PHP:
Ver original
  1. $_SESSION['profile'] = $role;
  2. $role = $resultado["profile"];

Es lo contrario:
Código PHP:
Ver original
  1. $role = $resultado["profile"];
  2. $_SESSION['profile'] = $role;

Y el if no lo cambiaste. Debes ponerlo así:
Código PHP:
Ver original
  1. if (isset($_SESSION['u_usuario']) && $_SESSION['profile']=="Admin")
  2.     {
Hola de nuevo amigo TE AGRADESCO ENORMEMENTE enserio funciono a la perfeccion tu código pero tengo un duda de donde sacaste esto

Código PHP:
"Admin"
básicamente funciono perfecto pero de donde sacaste admin si mis variables de inicio son Gerente, Trabajador y Administrador mi duda es por que Admin? quise colocar Administrador y no funciono fue entonces que coloque Admin y corrió como fue que sucedió eso? Te agradesco MUCHISIMAS GRACIAS a los 2 por brindarme su apoyo espero y puedas aclarar mi duda entonces que pasaría si mi usuario es un gerente que tipo de dato pondría me imagino que no seria admin! seria gerente? o como seria?
__________________
Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre.
  #8 (permalink)  
Antiguo 20/09/2015, 21:18
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Control de sesiones en PHP

tu mismo la estas declarando aqui:

Cita:
case 'Admin':
header("Location: Administrador/index.php");
break;
default:
echo "<script type=\"text/javascript\">alert('¡Opps! Si no tienes un perfil, estás descartado'); window.location='index.html';</script>";
y si la estas declarando alli es porque asi la debes tener en tu base
__________________
[email protected]
HITCEL
  #9 (permalink)  
Antiguo 20/09/2015, 21:23
Avatar de joseanguiano  
Fecha de Ingreso: agosto-2015
Ubicación: Coatzacoalcos
Mensajes: 87
Antigüedad: 9 años, 2 meses
Puntos: 1
Mensaje Respuesta: Control de sesiones en PHP

[QUOTE=xfxstudios;4743318]tu mismo la estas declarando aqui:



y si la estas declarando alli es porque asi la debes tener en tu base[/QUOTE

tendre que investigar un poco mas Definitivamente pensé que esa variable era la de la base de datos y desgraciadamente pensé mal agradezco sus valiosas ayuda saludos y asta pronto agradezco por la paciencia que me brindaron lo agrasco enserio a los dos !
__________________
Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre.

Etiquetas: myslq, sesiones, sesiones_en_php
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 15:10.