Foros del Web » Programando para Internet » PHP »

enviar a pagina según usuario

Estas en el tema de enviar a pagina según usuario en el foro de PHP en Foros del Web. Saludos, Tengo un pequeño proyecto que estoy empezando a trabajar y tengo un problema para agregar una seguridad entre usuarios por ejemplo: que al ingresar ...
  #1 (permalink)  
Antiguo 02/09/2013, 13:39
Avatar de ghiper  
Fecha de Ingreso: julio-2013
Ubicación: Guadalajara Jalisco
Mensajes: 80
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta enviar a pagina según usuario

Saludos,
Tengo un pequeño proyecto que estoy empezando a trabajar y tengo un problema para agregar una seguridad entre usuarios por ejemplo:
que al ingresar como administrador no pueda entrar a ninguna otra pagina mas que a las que se le asignen los permisos de la siguiente manera

administrador --> pagina 1
gerente --> pagina 2
usuario --> pagina 3
promotor --> pagina 4

espero me puedan ayudar y de ante mano gracias.
  #2 (permalink)  
Antiguo 02/09/2013, 13:43
Avatar de andinog  
Fecha de Ingreso: febrero-2012
Mensajes: 50
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: enviar a pagina según usuario

Tendrias que averiguar un poco sobre

session_start()

$_SESSION[]

al hacer el login, segun el tipo de usuario, guardarte una variable de sesion que indique el nivel de acceso que tiene el usuario.

Al inicio de cada pagina, comprobar esa variable de sesion y aceptar o rechazar segun corresponda.
__________________
"El que nada duda nada sabe"
Ser Programador
  #3 (permalink)  
Antiguo 02/09/2013, 13:50
Avatar de ghiper  
Fecha de Ingreso: julio-2013
Ubicación: Guadalajara Jalisco
Mensajes: 80
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: enviar a pagina según usuario

eso ya lo tengo hecho pero solo me funciona para los que no están logueados pero en cambio si entro comoo administrador y en el navegador escribo por ejemplo pagina 4 me permite entrar lo que quiero es aplicar seguridad a eso mostrando un mensaje de error o algo por el estilo
  #4 (permalink)  
Antiguo 02/09/2013, 13:52
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: enviar a pagina según usuario

Hola, coloca tu codigo para ver como te ayudamos.

Saludos
  #5 (permalink)  
Antiguo 02/09/2013, 14:00
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: enviar a pagina según usuario

Al momento de loguearse un usuario (en tu pagina le login) debes almacenar en una variable de sesión un valor que te indique si esta logueado o no, ej:

Código PHP:
$_SESSION["Autenticado"]!="1"  // el uno (1) indica que esta logueado 
luego en cada pagina php que necesites la seguridad coloca este código al inicio:

Código PHP:
session_start();
if(
$_SESSION["Autenticado"]!="1"){
      
header("location:index.php");

Cualquier valor distinto de "1" indica que no esta logueado y por lo tanto te redirige a otra pagina.

Saludos!
  #6 (permalink)  
Antiguo 02/09/2013, 14:03
Avatar de ghiper  
Fecha de Ingreso: julio-2013
Ubicación: Guadalajara Jalisco
Mensajes: 80
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: enviar a pagina según usuario

Ok empezare con el login para que sea mas claro mi duda espero les sirva:

Código PHP:
Ver original
  1. session_start();
  2. include_once("conexion.php");
  3. function verificar_login($user,$password,&$result) {
  4.     $sql = "SELECT * FROM usuarios WHERE usuario = '$user' and password = '$password'";
  5.     $rec = mysql_query($sql);
  6.     $count = 0;
  7.  
  8.     while($row = mysql_fetch_object($rec))
  9.     {
  10.         $count++;
  11.         $result = $row;
  12.     }
  13.  
  14.     if($count == 1)
  15.     {
  16.         return 1;
  17.     }
  18.  
  19.     else
  20.     {
  21.         return 0;
  22.     }
  23.    
  24. }
  25.  
  26. if(!isset($_SESSION['userid']))
  27. {
  28.     if(isset($_POST['login']))
  29.     {
  30.         if(verificar_login($_POST['user'],$_POST['password'],$result) == 1)
  31.         {
  32.             $_SESSION['userid'] = $result;
  33.             $_SESSION["usuario"] = $_POST['user'];
  34.             switch($result->tipo)
  35. {
  36.             case 'Administrador':
  37.             header('location:registrar.php');
  38.             exit;
  39.             break;
  40.              
  41.             case 'Gerente':
  42.             header('location:registrar.php');
  43.             exit;
  44.             break;
  45.             case 'Usuario':
  46.             header('location:logout.php'); 
  47.             exit;
  48.             break;
  49.             case 'Promotor':
  50.             header('location:logout.php'); 
  51.             exit;
  52.             break;           
  53.             default:
  54.             header('location:logout.php');
  55.             exit;
  56. }
  57.         }      
  58.         else
  59.         {
  60.             echo '<div class="error">Su usuario es incorrecto, intente nuevamente.</div>';
  61.         }
  62.        
  63.     }  
  64. ?>
  65. <link rel="stylesheet" type="text/css" href="style.css"/>
  66. <div class="error">Area solo para Administradores</div>
  67.  
  68. <form action="" method="post" class="login">
  69.     <div><label>Nombre de Usuario</label><input name="user" type="text" ></div>
  70.     <div><label>Contrase&ntilde;a</label><input name="password" type="password"></div>
  71.     <div><input name="login" type="submit" value="Inicio"></div>
  72.     <div><a href="logout.php" class="registrar">Salir</a></div>
  73. </form>
  74. <?php
  75. }
  76. else {
  77.     include_once("index.php");
  78.     }
  79. ?>
En el código anterior es como accedo a mi proyecto y asigno paginas para cada permiso.

En el archivo de seguridad contengo este codigo para que si no es un usuario logueado no se le permite entrar a ver el contenido:

Código PHP:
Ver original
  1. <?php
  2.   // Inicia sesión
  3.   if(!isset($_SESSION["userid"])){
  4.       header("location:index.php");
  5.       exit();}
  6. $_SESSION["userid"];
  7. ?>
este otro código es al que quiero poner la seguridad para que según el usuario entre a su pagina correspondiente y es donde no se como puedo aplicarlo.

Aclaro que los archivos que le asigno a los tipos de usuarios solo tienen menos opciones segun el tipo, por eso solo agregare un archivo para no ponerlo tanto codigo.

Código PHP:
Ver original
  1. <?php include("seguridad.php");?>
  2. <!doctype html>
  3. <html>
  4. <head>
  5. <meta charset="utf-8">
  6. <title>Sistema :: Administador</title>
  7. <link rel="stylesheet" type="text/css" href="style.css"/>
  8. </head>
  9. <body>
  10.  
  11. <div class="cabecera">
  12. <div class="logo"><img src="imagenes/logo.png"></div>
  13. <p class="saludo">Bienvenido: <?php echo $_SESSION['usuario']; ?><br><a href="logout.php" style="float:right;">Cerrar</a></p>
  14.    
  15.  
  16.      <table width="600" border="0" class="iconos">
  17.   <tr>
  18.     <td align="center"><a href="consulta.php" title="Lista de Articulos"><img src="imagenes/crear_listas.png">Lista de Articulos</a></td>
  19.     <td align="center" ><a href="cargar_productos.php" title="Registrar Productos"><img src="imagenes/articulos.png">Registro de Productos</a></td>
  20.     <td align="center"><a href="#" title="Usuarios"><img src="imagenes/user.png">Usuarios</a></td>
  21.     <td align="center"><a href="#" title="Provedores"><img src="imagenes/proveedores.png">Proveedores</a></td>
  22.     <td align="center"><a href="#" title="Sucurales"><img src="imagenes/sucursal.png">Sucursales</a></td>
  23.     <td align="center"><a href="#" title="Lista para proveer"><img src="imagenes/nota.png">Lista para Proveer</a></td>
  24.   </tr>
  25.   <tr>
  26.     <td align="center"><a href="#" title="Facturaci&oacute;n"><img src="imagenes/factura.png">Facturacci&oacute;n</a></td>
  27.     <td align="center"><a href="#" title="Punto de Venta"><img src="imagenes/sales.png"><br/>Punto de Venta</a></td>
  28.     <td align="center"><a href="#" title="Notas y Facturas"><img src="imagenes/notas-facturas.png"><br/>Notas / Facturas</a></td>
  29.     <td align="center"><a href="#" title="Marcas Regitradas"><img src="imagenes/marcas.png"><br/>Marcas</a></td>
  30.     <td align="center"><a href="#" title="Cat&aacute;logos"><img src="imagenes/catalogo.png">Cat&aacute;logos</a></td>
  31.     <td align="center"><a href="#" title="Promociones"><img src="imagenes/oferta.png">Ofertas</a></td>
  32.   </tr>
  33. </table>
  34. </div>
  35. </body>
  36. </html>
  #7 (permalink)  
Antiguo 02/09/2013, 14:08
 
Fecha de Ingreso: diciembre-2012
Mensajes: 21
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: enviar a pagina según usuario

Para usar permisologias según usuarios en tu BD agrega un campo numérico que se guarde así:

administrador=1
gerente=2
usuario=3
promotor=4

luego en tu pagina de login utiliza una variable de sesión que almacene el valor numerico de la permisologia de usuario:

Código PHP:
$_SESSION["Tipo_Usuario"]="X" //Aqui guardas el numero de la BD 
luego en la(s) pagina(s) que lo necesites utilizando condicionales rediriges

Código PHP:
session_start();
if(
$_SESSION["Tipo_Usuario"]=="1"){
      
header("location:pagina1.php");
}
else if(
$_SESSION["Tipo_Usuario"]=="2"){
      
header("location:pagina2.php");
}
else if(
$_SESSION["Tipo_Usuario"]=="3"){
      
header("location:pagina3.php");

  #8 (permalink)  
Antiguo 02/09/2013, 14:54
Avatar de ghiper  
Fecha de Ingreso: julio-2013
Ubicación: Guadalajara Jalisco
Mensajes: 80
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: enviar a pagina según usuario

de hecho asi esta en mi base de datos @sairam2188 solo que en ves de numeros son los nombres correspondientes de cada permiso por que esos mismos datos los tomo para otro archivo que muestra los usuarios y me genera todo de forma automatica tanto el nombre del usuario y el permiso y en ves de tantos if else lo agregue solo en un swicht

Etiquetas: según, usuario, usuarios
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:07.