Foros del Web » Programando para Internet » PHP »

Redireccionamiento por nivel de usuario...

Estas en el tema de Redireccionamiento por nivel de usuario... en el foro de PHP en Foros del Web. Hola qe tal, he estado tratando de hacer un redireccionamiento segun los permisos que tenga, primero mediante las herramientas de dw aplico n inicio de ...
  #1 (permalink)  
Antiguo 10/01/2009, 20:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Redireccionamiento por nivel de usuario...

Hola qe tal, he estado tratando de hacer un redireccionamiento segun los permisos que tenga, primero mediante las herramientas de dw aplico n inicio de sesion y cuando se comprueba qe se efecto el login correctamento switcheo la variable que contiene el 'nivel', pero no hace lo qe deberia, se salta el switch, alguien me podria decir si algo estoy haciendo mal? saludos!!!!

if (!isset($_SESSION)) {
session_start();
}

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

if (isset($_POST['textfield'])) {
$loginUsername=$_POST['textfield'];
$password=$_POST['textfield2'];
$MM_fldUserAuthorization = "nivel";
$MM_redirectLoginSuccess = "panelcontrolgrh.php";
$MM_redirectLoginSuccess1 = "iniciocontralor.php";
$MM_redirectLoginSuccess2 = "captrarempleados.php";
$MM_redirectLoginFailed = "noautorizado.html";
$MM_redirecttoReferrer = true;
mysql_select_db($database_usuariossistema, $usuariossistema);

$LoginRS__query=sprintf("SELECT usuario, contrasena, nivel FROM usuariossistema WHERE usuario='%s' AND contrasena='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $usuariossistema) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {

$loginStrGroup = mysql_result($LoginRS,0,'nivel');

$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;

if (isset($_SESSION['PrevUrl']) && true)
{
switch($MM_fldUserAuthorization)
{
case 1:($MM_fldUserAuthorization == "administrador");
header("Location: " . $MM_redirectLoginSuccess );
break;
case 2:($MM_fldUserAuthorization =="contralor");
header("Location: " . $MM_redirectLoginSuccess1 );
break;
case 3:($MM_fldUserAuthorization =="gerente");
header("Location: " . $MM_redirectLoginSuccess2 );
break;

default: header("Location: ". $MM_redirectLoginFailed );

}

}
}

}
?>
  #2 (permalink)  
Antiguo 10/01/2009, 21:02
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redireccionamiento por nivel de usuario...

Verifica que $_SESSION['PrevUrl'] esté definida, pues para que se ejecute el switch esa es la condición. Por otro lado, veo que al inicio del scrip defines $MM_fldUserAuthorization y le asignas el valor "nivel", lo cual no cambia después en absoluto. No estarás confundiendo de variable?

  #3 (permalink)  
Antiguo 10/01/2009, 21:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Respuesta: Redireccionamiento por nivel de usuario...

Cita:
Iniciado por okram Ver Mensaje
Verifica que $_SESSION['PrevUrl'] esté definida, pues para que se ejecute el switch esa es la condición. Por otro lado, veo que al inicio del scrip defines $MM_fldUserAuthorization y le asignas el valor "nivel", lo cual no cambia después en absoluto. No estarás confundiendo de variable?

Si me confundi le escribi "nivel" en vez de 'nivel' y de hecho tambien la cambie de lgar ya que despues de asignar variables se realiza el query, verifiqe lo qe me comentaste de revisar que se cumpla el $MM_fldUserAuthorization eliminando la rutina de switch y si se efectua el login,pero no entra al switch por alguna razon, te lo agradesco. Alguien tiene alguna idea de qe podria estar pasando?
  #4 (permalink)  
Antiguo 10/01/2009, 21:45
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redireccionamiento por nivel de usuario...

Me refería a esto: if (isset($_SESSION['PrevUrl']) && true). Si esa condición devuelve false entonces el switch no se ejecuta. Por lo tanto, verifica que $_SESSION['PrevUrl'] existe (y && true está de más)

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 23:36.