Foros del Web » Programando para Internet » PHP »

acceso segun nivel usuario

Estas en el tema de acceso segun nivel usuario en el foro de PHP en Foros del Web. Este es el codigo de mi aplicacion. Lo que quiero hacer es que dependiendo del tipo de usuario cuando introduzca el login y la clave, ...
  #1 (permalink)  
Antiguo 23/04/2009, 09:43
 
Fecha de Ingreso: abril-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
acceso segun nivel usuario

Este es el codigo de mi aplicacion. Lo que quiero hacer es que dependiendo del tipo de usuario cuando introduzca el login y la clave, acceda a una pagina u otra. La tabla de la bbdd es: usuarios(login,contraseña,tipo_usuario).

<?php require_once('Connections/acceso.php'); ?>
<?php

// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['usuario'])) {
$loginUsername=$_POST['usuario'];
$password=$_POST['contraseña'];
$MM_fldUserAuthorization = "tipo_usuario";
$MM_redirectLoginSuccess = "nivel_cliente.php";
$MM_redirectLoginFailed = "fallo_conexion.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_acceso, $acceso);
$LoginRS__query=sprintf("SELECT login, clave, tipo_usuario FROM usuario WHERE login='%s' AND clave='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $acceso) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'tipo_usuario');

//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;

if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
  #2 (permalink)  
Antiguo 23/04/2009, 16:53
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: acceso segun nivel usuario

Te muestro un tutorial donde aplican lo que deseas:
http://www.roscripts.com/PHP_login_script-143.html
  #3 (permalink)  
Antiguo 24/04/2009, 01:38
 
Fecha de Ingreso: abril-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: acceso segun nivel usuario

Ronruby, gracias por el tutorial pero no logro entenderlo, ya que soy nuevo en php. Te agradeceria si me lo aplicaras a mi codigo. Muchas gracias.
  #4 (permalink)  
Antiguo 24/04/2009, 04:58
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: acceso segun nivel usuario

Buenas

Si el usuario es correcto, te manda a la página nivel_cliente.php, cierto?
Pues es ahí donde deberías gestionar la redirección hacia otra página según el usuario o el grupo de usuario que sea... Por ejemplo:

Código PHP:
// página nivel_cliente.php

if ($_SESSION['MM_Username']=='Administrador'){
     
header('location:adminPanel.php');
}
else if (
$_SESSION['MM_UserGroup']=='Usuarios'){
     
header('location:paginaCliente.php');

Saludos
  #5 (permalink)  
Antiguo 27/04/2009, 04:16
 
Fecha de Ingreso: abril-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: acceso segun nivel usuario

Gracias kamae, pero deben estar todo el codigo en el mismo documento. De todas formas lo probare para ver si funciona correctamente. Si lo aplicaras a mi codigo te lo agradeceria, y aque soy novato en esto de php, y ese codigo lo ha generado automaticamente dreamweaver, por eso no se por donde meterle mano.

Un saludo y necesito vuestra ayuda. Gracias.
  #6 (permalink)  
Antiguo 29/04/2009, 00:21
 
Fecha de Ingreso: abril-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: acceso segun nivel usuario

el codigo me lo ha generado automaticamente dreamweaver, por ese motivo no lo entiendo mucho. Si me podeis ayudar lo agradeceria.
  #7 (permalink)  
Antiguo 05/05/2009, 01:21
 
Fecha de Ingreso: abril-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: acceso segun nivel usuario

¿Alguien me puede ayudar con lo del acceso para diferentes usuarios?
  #8 (permalink)  
Antiguo 08/05/2009, 00:51
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: acceso segun nivel usuario

Buenas

Sorry no lo había leído:

Código PHP:
<?php require_once('Connections/acceso.php'); ?>
<?php

     
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
   
session_start();
}

$loginFormAction $_SERVER['PHP_SELF'];
if (isset(
$_GET['accesscheck'])) {
   
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset(
$_POST['usuario'])) {
   
$loginUsername=$_POST['usuario'];
   
$password=$_POST['contraseña'];
   
$MM_fldUserAuthorization "tipo_usuario";
   
$MM_redirectLoginSuccess "nivel_cliente.php";
   
$MM_redirectLoginFailed "fallo_conexion.php";
   
$MM_redirecttoReferrer false;
   
mysql_select_db($database_acceso$acceso);
   
$LoginRS__query=sprintf("SELECT login, clave, tipo_usuario FROM usuario WHERE login='%s' AND clave='%s'",
   
get_magic_quotes_gpc() ? $loginUsername addslashes($loginUsername), get_magic_quotes_gpc() ? $password addslashes($password));

   
$LoginRS mysql_query($LoginRS__query$acceso) or die(mysql_error());
   
$loginFoundUser mysql_num_rows($LoginRS);

        
// Si el usuario ha sido encontrado
   
if ($loginFoundUser) {
      
$loginStrGroup mysql_result($LoginRS,0,'tipo_usuario');

           
// Declaramos las 2 sesiones
      
$_SESSION['MM_Username'] = $loginUsername;
      
$_SESSION['MM_UserGroup'] = $loginStrGroup;

      if (isset(
$_SESSION['PrevUrl']) && false) {
         
$MM_redirectLoginSuccess $_SESSION['PrevUrl'];
      }
      if (
$_SESSION['MM_Username']=='Administrador'){ // Cambia Administrador por alguno de tus grupos
         
header('location:adminPanel.php');
      }
      else if (
$_SESSION['MM_UserGroup']=='Usuarios'){ // Cambia Usuarios por alguno de tus grupos
         
header('location:paginaCliente.php');
      }
   }

        
// Si el usuario es incorrecto
   
else {
      
header("Location: "$MM_redirectLoginFailed );
   }
}
?>
Espero que te sirva

Saludos
  #9 (permalink)  
Antiguo 12/05/2009, 01:10
 
Fecha de Ingreso: abril-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: acceso segun nivel usuario

Gracias kamae por tu ayuda, pero tengo 3 niveles diferentes: cliente, empleado y administrador.

¿Me puedes decir como seria para los 3 niveles? Es que creo que me lo has explicado solo para 2 niveles.

Un saludo y muchas gracias
  #10 (permalink)  
Antiguo 12/05/2009, 03:16
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: acceso segun nivel usuario

Después de esto:
Código PHP:
else if ($_SESSION['MM_UserGroup']=='Usuarios'){ // Cambia Usuarios por alguno de tus grupos 
         
header('location:paginaCliente.php'); 
      } 
Tendrías que añadir otra cosa parecida:
Código PHP:
else if ($_SESSION['MM_UserGroup']=='Empleados'){ // Cambia Empleados por alguno de tus grupos 
         
header('location:paginaEmpleado.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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 23:39.