Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/05/2012, 14:34
markos22
 
Fecha de Ingreso: mayo-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 2
Pregunta problema con sesion de varios usuarios

hola, estoy con el desarrollo de una aplicacion sencilla, pero me esta dando dolor de cabeza la sesion de multiples usuarios, la idea es crear dos o 3 niveles de usuarios q de echo ya tengo las tablas armadas, a continuacion les muestro el archivo que valida mi login de inicio:


Código PHP:
Ver original
  1. <?php
  2. include("config/conexion.php");
  3.  
  4. if (!isset($_POST["username"]) || !isset($_POST["password"])){
  5.     header("location: index.php?errorlogin=1");
  6.  
  7.    
  8. }elseif($_POST["username"]=="" || $_POST["password"]==""){
  9.     header("location: index.php?errorlogin=2");    
  10. }else{  
  11.    
  12.     $ssql="select * from usuario where username='" . $_POST["username"] . "'";
  13.  
  14.     $conexion = Conectarse();
  15.     if(!$record_usuario = mysql_query($ssql)){
  16.         header("location: index.php?errorlogin=3");
  17.        
  18.     }else{
  19.        
  20.         if(mysql_num_rows($record_usuario)!=1){
  21.             header("location: index.php?errorlogin=4");
  22.            
  23.         }else{
  24.             $usuario_encontrado = mysql_fetch_array($record_usuario);
  25.            
  26.             $nivel = $usuario_encontrado["level"];
  27.             $usernameBD = $usuario_encontrado["username"];
  28.             $passwordBD = $usuario_encontrado["password"];
  29.            
  30.             if ($usuario_encontrado["password"] != md5($_POST["password"])){
  31.                 header("location: index.php?errorlogin=5");
  32.  
  33.             }else{
  34.              
  35.               session_start();
  36.              
  37.         $_SESSION["username_usuario"] = $_POST["username"];
  38.                 $_SESSION["nombre_usuario"] = $usuario_encontrado ["nombre"];
  39.                 $_SESSION["apellido_usuario"] = $usuario_encontrado ["apellido"];
  40.         $_SESSION["level_usuario"] = $usuario_encontrado ["level"];
  41.              
  42.               if($_SESSION["level_usuario"] == "1"){
  43.                 header ("Location: admin/index.php");
  44.                 }
  45.                
  46.               if($_SESSION["level_usuario"] == "2"){
  47.                 header ("Location: index2.php");
  48.                 }
  49.  
  50.             }
  51.         }
  52.     }
  53.  
  54. }
  55.  
  56. ?>

la configuracion de la BD, la tengo en el archivo conexion.php (al cual esta ingresado la funcion conectarse), obviamente tengo las tablas creadas, (id,username,password,nombre,apellido,level)

como ven en la ultima parte donde inicio la sesion, doy a elegir si el level de usuario 1 administrador, y 2 user normal.

respecto al registro de usuario anda perfecto, todo bien..
el problema es cuando uno se logea por ej. un usuario normal y va a dicha seccion, no solo puede ver las secciones de el, sino tambien las otras secciones de admin.

el archivo de authentifiacion (auth.php), lo tengo al inicio de cada pagina, es este:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if($_SESSION["level_usuario"] !== $nivel_pagina){
  4. echo "Debes estar autorizado e iniciar sesion para ver esta página. <a href='index.php'>Ingresar</a>";
  5.  
  6. }

la variable nivel_pagina, la tengo en cada pagina determinando q nivel de usuario puede ingresar.

Código PHP:
Ver original
  1. <?php
  2. //inicio de la pagina
  3.  
  4.  $nivel_pagina = 1;    
  5.  
  6. //aqui viene el archivo auth.php
  7.  
  8. ?>

el problema es q algo estoy haciendo mal, por q no me detecta q nivel de acceso tiene cada pagina

esa es mi pregunta como puedo colocar en el auth.php y el inicio de cada pagina, para determinar q usuario (osea q nivel) puede ver tal tipo de pagina y cual no.

gracias desde ya, espero q puedan ayudarme, saludos.