Я работаю над секцией администратора, в которой есть страница входа с идентификатором входа и формой пароля. в моем админ разделе я много страниц говорят как login.php, st_admin.php, tmg_admin.php и т.д.не удалось ограничить сеанс для администрирования pager
, если я должен получить доступ к странице st_admin.php, то я могу получить к нему доступ, просто введя ссылку без ввода Логин пользователя и пароль.
Я хочу ограничить доступ ко всем страницам только через панель администратора. Никто не может получить доступ к какой-либо странице, набрав URL напрямую. как это возможно??
login.php код:
<?php require_once('conn/conn.php'); ?>
<?php
// *** Validate request to login to this site.
session_unset();
session_start();
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)){
$GLOBALS['PreUrl']=$accesscheck;
session_register('PreUrl');
}
if (isset($_POST['staffid'])) {
$loginUsername=$_POST['staffid'];
$password=md5($_POST['password']);
$MM_fldUserAuthorization = "accessid";
$MM_redirectLoginSuccess = "staff/st_admin.php";
$MM_redirectLoginFailed = "login.php?error=1";
$MM_redirecttoReferrer = false;
mysql_select_db($database_conn, $conn);
$LoginRS__query=sprintf("SELECT staffid, password, teamcode, accessid FROM tbl_staff WHERE staffid='%s' AND password='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
$LoginRS = mysql_query($LoginRS__query, $conn) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'accessid');
//declare two session variables and assign them
$GLOBALS['MM_Username'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;
//register the session variables
session_register("MM_Username");
session_register("MM_UserGroup");
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
switch ($loginStrGroup) {
case $MM_fldUserAuthorization='2':
$_SESSION['staffid']=$loginUsername;
header("Location: tutor/tr_admin.php");
break;
case $MM_fldUserAuthorization='3':
$_SESSION['staffid'] = $loginUsername;
header("Location: manager/mg_calendar.php");
break;
default:
$_SESSION['staffid'] = $loginUsername;
header("Location: " . $MM_redirectLoginSuccess);
}
} else {
header("Location: ". $MM_redirectLoginFailed);
}
}
?>
st_admin.php код:
<?php
session_start();
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
// For security, start by assuming the visitor is NOT authorized.
$isValid = False;
// When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
// Therefore, we know that a user is NOT logged in if that Session variable is blank.
if (!empty($UserName)) {
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
// Parse the strings into arrays.
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
// Or, you may restrict access to only certain users based on their username.
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && true) {
$isValid = true;
}
}
return $isValid;
}
?>
Я очень признателен за любые советы.
Я хотел бы убедиться, что код будет добавлен в St.admin.php и после возврата $ isValid; }? – Mahou
Я попробовал, он не может работать над «NOACCESS» !! – Mahou
, вы должны добавить его в начало любого файла, к которому вы пытаетесь ограничить доступ. таким образом, скрипт перестает выполняться, когда он попадает в эту строку. – KyleMassacre