2014-04-16 164 views
0

对于我的网站,我有两个单独的用户 - 工作人员和客户,然后进行两次单独登录,以便用户的电子邮件地址和密码不会授予员工访问权限。但是,尽管我的员工登录他们访问的页面对其他用户来说也是不可见的,但是如果用户找到了URL并键入它们,他们仍然可以查看该链接。我想改变它,以便如果他们找到URL并尝试查看它们,系统会提示他们进行登录。对某些页面的授权访问

我已经创建了一个会话代码,告诉我放置每个页面的顶部,我希望保持私人,但它不起作用,我想问这是否是错误的。

if(isset($_SESSION['staffId'])) 
$_SESSION['staffId']=$_SESSION['staffId']+1; 
else 
$_SESSION['staffId']=1; 
echo "StaffId=". $_SESSION['staffId']; 
session_destroy(); 

在我的数据库中有我STAFFID因为在那里我有我的上市工作人员一列,staffType作为另一种类型S以及他们的其他细节

感谢您的帮助!

回答

0

即使您破坏会话,流程仍在继续,人们可以看到页面的其余部分。你可以做到以下几点:

套装$_SESSION['staffId']当员工登录

设置$_SESSION['customerID']当客户登录

为员工专属网页使用:

if(!isset($_SESSION['staffId'])) 
    die("Access not allowed for customers"); 

但对于客户页面,您仍然需要检查他们是否确实已登录:

if(!isset($_SESSION['customerID'])) 
    die("Access not allowed for not logged in members"); 
+0

感谢您的回复,所以我的'getstafflogin'页面处理我放置$ _SESSION ['staffId']的窗体?并在其他页面我删除我写上面的代码,并把 if(isset($ _ SESSION ['staffId'])) else die(“Access not allowed”); 对不起,我试图教我自己的愚蠢问题,我很新!确切地说,是 – user3527721

+0

。当员工登录时,只有您设置了$ _SESSION ['staffId']。对于普通用户,你根本不设置它。请记住,普通用户可以在不登录的情况下访问“用户页面”。 – Aris

+0

非常感谢您的帮助,它意味着很多!当我将代码放入另一页时,我收到了我写'else'的行的语法错误:解析错误:语法错误,/home/unix/student10/w122856/public_html/STF/DropDown.php中意外的T_ELSE在线7 – user3527721