我创建了一个包含一个管理员且可以拥有多个用户的表。当用户登录时,他可以执行CRUD操作,用户只能在登录时查看数据。但是有一个问题,因为我不知道如何省略普通用户只需输入地址中的地址栏和访问他不应该的页面(只有管理员才能访问的页面)。由于我是PHP的新手,我知道我应该使用会话,但我不知道如何。我需要使用的函数是什么,表中的哪一列(userid或类型 - 管理员和用户 - 这些是表中的用户类型)以及我应该在哪里将if语句放在我的代码中?
答案 0 :(得分:2)
您可以使用header
和session
..
当用户登录时......将他/她id
保存在session variable
中,让我们说$_SESSION['user_id']
...
并且在只有管理员可以访问的所有页面中放置if condition
之类的..
if(isset($_SESSION['user_id']) && $_SESSION['user_id'] != '')
{
$_SESSION['error_message'] = 'Access Denied';
header('location:user_page.php');
exit();
}
并在user_page.php
回显session error message and unset it
echo $_SESSSION['error_message'];
unset($_SESSION['error_message']);
如果您需要任何进一步的指导,请与我们联系。
答案 1 :(得分:0)
如何“登录”您的用户?你正在使用核心PHP或一些框架?更多细节请。
答案 2 :(得分:0)
简单的普通话PHP ...(不是Zend或Symphony等)
您可以在会话中存储详细信息,它是一个名为$ _SESSION的全局,并且在会话启动时可用。
本教程可能有所帮助; http://html.net/tutorials/php/lesson12.php
请记住,当您的浏览器关闭时,会话中的任何内容都会被清除 - 但这对用户活动来说通常是件好事。
浏览器使用的持久性,将会话存储在cookie中。
答案 3 :(得分:0)
将用户类型传递给会话
$_SESSION['usertype'] = $user['usertype'];
并检查会议
<?php
if($_SESSION['usertype'] = "user") {
load your user page
}
else
{
加载管理页面 } ?&GT;