Redireccionar según nivel de acceso

Tengo el siguiente código y lo quiero es que me redireccione a diferentes páginas de acuerdo al nivel de acceso. Es decir si el que ingresa es Administrador que se muestre una página que le llamo adm.php. Si es Docente que muestre una página doc.php y si es Alumno una página alu.php, caso contrario que muestre una página de error. Con el siguiente código solo se muestra la página adm.php

--------------------------------------------------------------------------------------

mysql_select_db($database_cnotas, $cnotas);
$query_usu = "SELECT * FROM usuarios";
$usu = mysql_query($query_usu, $cnotas) or die(mysql_error());
$row_usu = mysql_fetch_assoc($usu);
$totalRows_usu = mysql_num_rows($usu);
?><?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['txtusuario'])) {
$loginUsername=$_POST['txtusuario'];
$password=$_POST['txtclave'];
$MM_fldUserAuthorization = "nivel";
$MM_redirectLoginSuccess = "amd.php";
$MM_redirectLoginFailed = "usuario_no_encontrado.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_cnotas, $cnotas);
$LoginRS__query=sprintf("SELECT usuario, clave, nivel FROM usuarios WHERE usuario=%es AND clave=%es",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $cnotas) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'nivel');
//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 );
}
}
?>

------------------------------------------------------------------

Todo este código ha sido generado con dreamweaver.

Por favor si me pueden ayudar se los voy a agradecer. Que código tengo que insertar para que me redireccione a las páginas que estoy especificando.

1 respuesta

Respuesta
1

La cosa es mucho mas simple de lo que crees...

Supongo que estas trabajando con algún Login (para acceder a su cuenta), entonces suponiendo esto, en el archivo que valida la sesión debes tomar el nombre del usuario y su clave de acceso y consultarle a la base de dato como primer paso si existen o no en la BD, si existen consultarle que tipo es este usuario y dependiendo del tipo de usuario que sea se direcciona a las paginas correspondientes (Supongo que debes tener un campo en la Base de Datos que tenga el tipo de usuario).

Si quieres me puedes agregar a skype o a twitter, para guiarte un poco mas:

Twitter:

@JuanGarciaR

Skype:

Jgarciarebolledo

En la tabla estoy trabajando con los campos: usuario, clave y nivel. En el campo nivel es donde estoy diferenciando el ingreso para cada página diferente.

Tengo una página de Login, donde le pido al usuario ingresar el nombre de usuario y contraseña y sólo puedo hacer redireccionar a una sola página, pero lo que realmente deseo es redireccione a tres páginas distintas.

Mira el código inicial que he puesto en el mensaje y allí esta lo que estoy pidiendo.

Muchas gracias EXPERTO por tus respuesta. Ojala me puedas ayudar. He entrado al portal como último recurso porque no puedo hacerlo y cuando he hecho preguntas en TODOEXPERTOS, siempre me han ayudado.

Por favor una vez más mira el código del archivo que te envíe y allí esta lo que quiero

GRACIAS DE ANTEMANO EXPERTO.

Si tienes el nivel en la base de datos es muy fácil, cuando la persona ingresa a su cuenta mediante el login debes tener un archivo que valide la session, entonces debes hacer algo como esto (ejemplo):

¿

<?php

$usuario=$_post["usuario"]; /// Este es el que viene de el formulario Login para acceder a su cuenta

$pass=$_post["pass"];

include "conexión.php";

$consulta=mysql_query("SELECT * FROM usuarios where user=$usuario",$conexión);

$row=mysql_fetch_array($consulta);

$nivel=$row["nivel"];

$userBD=$row["user"];

$passBD=$row["pass"];

if(($usuario == $userBD) AND ($pass == $passBD)){

 if($nivel == "Administrador"){

  Header("Location: paginaAdmin.php");

  }

 if($nivel == "Profesor"){
  Header("Location: paginaProfesor.php");
  }

 if($nivel == "Alumno"){
  Header("Location: paginaAlumno.php");
  }

}else{

Header("Location: index.php?mensaje=ERROR_DE_SESSION");

}

Eso seria mas o menos como deberías trabajar con los niveles que tengas.

Muchas gracias experto. Disculpa la demora pero estaba muy ocupado. quería darte las gracias porque si me ayudo muchísimo. Mil gracias de veras.

Ahora lo que ando buscando es como implementar en mi página web para que cuando un usuario olvida su NOMBRE DE USUARIO Y CONTRASEÑA, el lo pueda pedir mediante el ingreso de su correo electrónico y después a ese correo electrónico que se envíen automáticamente los datos de usuario y contraseña que están en mi base de datos.

Gracias de todas maneras. Voy a tratar de abrir otra pregunta. Pero si tienes este ejemplo envialo a mi correo te lo agradeceré eternamente.

QUE DIOS TE BENDIGA EXPERTO.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas