¿Qué tal comunidad? Pues bien, vengo planteando una duda bastante grande.
Estoy tratando de hacer login para el área de administración de mi web, pero quiero que solamente los usuarios con rango de administrador puedan entrar al panel y esto es lo que tengo:
Código PHP:
<?php require_once('../Connections/Conexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$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['nick'])) {
$loginUsername=$_POST['nick'];
$password=$_POST['pw'];
$MM_fldUserAuthorization = "usergroup";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "login.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_Conexion, $Conexion);
$LoginRS__query=sprintf("SELECT nick, pw, usergroup FROM users WHERE nick=%s AND pw=%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,'usergroup' == 'Administrador');
if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
//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 );
}
}
?>
<?php require_once $_SERVER["DOCUMENT_ROOT"].'/tecpokemon/Includes/config.ini.php'; ?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="ISO-8859-1">
<title>TecPokémon</title>
<link href="<?php echo BASEURL;?>Public/CSS/Administracion.css" rel="stylesheet" type="text/css" />
<link href='http://fonts.googleapis.com/css?family=Cabin+Condensed:700' rel='stylesheet' type='text/css'>
</head>
<body>
<div class="container">
<?php include ('../Includes/Administracion/CabeceraLogin.php') ?>
<div class="content2">
<div class="Sesion">
<h1 style="color: #b7b6b6">Iniciar Sesión</h1>
<form METHOD="POST" name="admin-sesion" action="<?php echo $loginFormAction; ?>">
<input required type="text" name="nick" placeholder="¡Escribe tu Nick!" autofocus />
<input required type="password" name="pw" placeholder="¡Escribe tu Contraseña!" />
<input class="Boton-Registro" type="submit" value="Iniciar Sesión" />
</form>
</div>
</div>
</div>
</body>
</html>
Entonces el "rango" se obtiene por medio de la entrada de "usergroup" pero no sé como se le tenga que hacer para que solamente los administradores puedan entrar.
El rango se pone dinamicamente pero me da el error.
Espero darme a entender con esto, saludos.