我有php应用程序,当用户登录到应用程序然后会话开始。在会话中,我已存储用户类型和ID。使用用户类型限制用户页面的访问,如add.php,display.php,edit.php等。
我的问题是,当用户登录到应用程序时,用户类型和id将存储在会话中,但是当任何用户更改url时,如add.php。其他用户将访问此页面。
我想在用户更改网址时再做一些错误信息。
<?php
session_start();
if(!isset($_SESSION['username']) || !isset($_SESSION['login_type']) )
{
header("Location:logout.php");
exit;
}
?>
答案 0 :(得分:0)
不要只使用isset
。这只会检查变量是否存在,并且不会检查变量包含的值
所以,你可以在函数
中包含这样的东西if(!isset($_SESSION['username']) && $_SESSION['login_type'] != 'Admin') )
{
header("Location:logout.php"); //Do not allow him to access.
exit;
}
首先,当您要创建会话时,创建session
个logintype
变量user,admin,superadmin
然后创建一个通用函数来检查会话。像
checkSession();
将此功能放在您include
的文件中
在处理和显示文件之前,此功能应该能够验证用户是否在顶部被授权。