MySQL - restriccion de usuarios

   
Vista:

restriccion de usuarios

Publicado por Fran (7 intervenciones) el 09/06/2011 20:23:12
Hola que tal... estoy haciendo una web con sistema de login de usuarios... lo que es el login funciona perfectamente....si yo introduzco un usuario y una contraseña que este en la BD, entro en la "zona privada"... el problema es que lo que pretendo es que haya como un usuario "master" que al introducir su usuario y contraseña accediera a una pagina con un pequeño panel de control...y que todos los demas accedieran a su pagina privada..el codigo que tengo de momento es el siguiente:

<?php require_once('../Connections/conexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
?><?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['login'])) {
$loginUsername=$_POST['login'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "Usuario";
$MM_redirectLoginSuccess = "zonaprivada.php";
$MM_redirectLoginFailed = "incorrecto.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_conexion, $conexion);

$LoginRS__query=sprintf("SELECT Usuario, Password, Usuario FROM usuarios WHERE Usuario=%s AND Password=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));

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

$loginStrGroup = mysql_result($LoginRS,0,'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 );
}
}
?>

Como he dicho, el sistema de login funciona, pero a partir de aqui ando perdido... como puedo añadir el codigo necesario para que determinado usuario con privilegios acceda a la pagina pnel.php???
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

restriccion de usuarios

Publicado por xve (899 intervenciones) el 09/06/2011 21:34:51
Hola Fran, creo que lo tienes bastante bien...
Yo generaría una variable de session que determinara los privilegios de cada usuario, de tal manera, que si el usuario tiene privilegios para visualizar el panel, se lo mostraría en el menú (si lo hay), o lo redireccionaria directamente una vez se ha validado el usuario.

Por ejemplo, en tu código seria algo así:
1
2
3
4
if ($loginFoundUser) {
    $MM_redirectLoginSuccess = "panel.php";
    $_SESSION["privileges"]=1;
    ....

Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

restriccion de usuarios

Publicado por fran (7 intervenciones) el 11/06/2011 16:46:30
hola de nuevo xve y gracias por responder...lo he estado probando y pense que me resultaria mas facil directamente que compruebe directamente si el usuario introducido es "x".. pero resulta que ahora meta el usuario que meta me lleva a panel.php cuando solo me debria mandar en caso de que el usuario introducido fuese "edulucas"..este es el codigo que he modificado:

if (isset($_POST['login'])) {
$loginUsername=$_POST['login'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "Usuario"; {

if (($loginUsername = "edulucas") && ($password = "123456789")) {


$MM_redirectLoginSuccess = "panel.php";
$MM_redirecttoReferrer = false;
}else {

$MM_redirectLoginSuccess = "zonaprivada.php";
$MM_redirectLoginFailed = "incorrecto.php";
$MM_redirecttoReferrer = false;
}
}
mysql_select_db($database_conexion, $conexion);

No se si si seria factible hacerlo de esta manera...es que el otro me parece mas dificil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar