Foros del Web » Programando para Internet » PHP »

Problemas con Sessiones en PHP

Estas en el tema de Problemas con Sessiones en PHP en el foro de PHP en Foros del Web. Saludos, Mi gente muchas gracias por anticipado, necesito que me ayuden ya que estoy creando una pagina la cual permite a los usuarios conectarse a ...
  #1 (permalink)  
Antiguo 18/02/2011, 14:42
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 3
Problemas con Sessiones en PHP

Saludos,
Mi gente muchas gracias por anticipado, necesito que me ayuden ya que estoy creando una pagina la cual permite a los usuarios conectarse a una base de datos e iniciar session., pero ahi no es en donde esta mi problema, mi problema esta en que en mi tabla tusuario tengo un campo que se llama nivel_usuario el cual si es 1 me direcciona a una pagina que es donde administro el contenido de mi pagina, pero si el usuario es nivel 2 me lleva a otra pagina., hasta ahi estoy bien.

Sucede que ahora cuando inicio session con el usuario limitado, luego puedo escribir en la barra de direccion la ruta de la pagina que utilizo para administrar y me permite entrar aun siendo un usuario limitado.

He leido que tengoq ue hacer una validacion en la pagina que administra para decirle que si el nivel es 2 que denegue el acceso.,

Ahora bien, como yo hago esa validacion ya que todas las variables que le pongo me dice que no estan definidas, y etc etc...

Espero que me ayuden...
Gracias
  #2 (permalink)  
Antiguo 18/02/2011, 15:01
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Problemas con Sessiones en PHP

Al momento de hacer el login, crea una variable de SESSION con el tipo de usuario, ya sea 1 o 2.
Luego en tu pagina administrativa basta con hacer un simple if()

Código PHP:
Ver original
  1. if($_SESSION['roleUsuario'] > 1) {
  2.   //No tienes acceso
  3. }
  #3 (permalink)  
Antiguo 18/02/2011, 15:05
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 13 años, 11 meses
Puntos: 461
Respuesta: Problemas con Sessiones en PHP

cuando haces el login imagino que declaras una variable con el nivel de usuario un ejemplo
Código PHP:
Ver original
  1. /*despues de autenticar y hacer todo lo que hagas con el login*/
  2. $_SESSION['nivelUsuario'] = $row['nivel'];

que vas a hacer en tus paginas restringidas solo para el admin haces una validacion como?? asi
Código PHP:
Ver original
  1. if(isset($_SESSION['nivelUsuario']) && $_SESSION['nivelUsuario'] == 'admin'){
  2. echo "aca el admin"
  3. }
  4. else{
  5.    header('location:index.php');
  6.    exit;
  7. }
de tal manera que si existe la variable con el nivel y el nivel es administrador puede ingresar de lo contrario redireccionas al index, espero te sirva de ayuda, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 18/02/2011, 15:23
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Problemas con Sessiones en PHP

jejeje... Mis hermanitos muchas gracias por su ayuda... en base a lo que me dijeron, pude resolver.,

Gracias por todo....
  #5 (permalink)  
Antiguo 18/02/2011, 16:00
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 8 meses
Puntos: 21
Respuesta: Problemas con Sessiones en PHP

Una forma de hacerlo es de la siguiente manera
Código PHP:
    session_start();
    if (
session_is_registered('nombre') && !empty($_SESSION['nombre']))
    {
        
session_unset();
        
session_destroy();
    } 
Un formulario en HTML, independientemente de la forma en que esté programada

Código HTML:
<form id="form1" name="form1" method="post" action="IniciarSesion.php">
<input name="nombre" type="text" id="clave" size="20" />
<input name="clave" type="password" id="clave" size="20" /> 
Luego...

Código PHP:
session_start();
$usuario=$_POST["usuario"];
$clave=$_POST["clave"];
$query="SELECT * FROM usuario where login='$usuario' and password='$clave'";
$result=mysql_query($query);//consultar a la BD;
if(mysql_num_rows($result)>0)//verifica si es un usuario con cuenta;
{
    
$reg=mysql_fetch_object($result);
    
$query2="SELECT nombre,apellido FROM tabla WHERE id='$reg->id'"//consulta a la BD donde aplica la condición encontrada en la consulta anterior;
    
$result2=mysql_query($query2) or die(mysql_error());//consultar a la BD
    
$reg2=mysql_fetch_object($result2) ;
    
$nombre=$reg2->nombre;
    
session_register('nombre');//(mientas tanto) despues buscar el nombre en la tabla empleado y guardar en login de sesion;
    
$_SESSION['nombre']=$reg2->nombre;//alamacena el login en el arreglo de sesion;
    
$_SESSION['apellido']=$reg2->apellido;//alamacena el login en el arreglo de sesion;
    
if($reg->tipo=='Usuario')//verifica que tipo de usuario
        
header("Location:Index2.php");//redireccionamiento;
    
else
    if(
$reg->tipo=='Administrador')//verifica que tipo de usuario
        
header("Location:Index3.php");//redireccionamiento; 
Espero que este código les sirva de ayuda

Etiquetas: sesiones
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 00:30.