堆栈溢出总是有帮助,但这一次我没有找到任何关于它的东西。我正在创建一个系统,比如wordpress: /admin/ /content/ /index.php
所以,作为可湿性粉剂,在“内容”里面会有“主题”,但我的问题不是关于它的。管理员,当然,用户必须登录。如何将/admin/*中的所有内容重定向到我的/admin/login.php?我找到了一个可以使用的代码,比如:
php代码:
if (!empty($_SESSION['logged_in']))
echo something;
else
redirect something;但是,我不想让它出现在每个页面中,我想要像在header.php中一样,一开始就这样做:
if (!empty($_SESSION['logged_in']))
header ('Location: webpage');这里是HTMLCODE。
但是,我不想加载HTML代码,我想先重定向,然后再显示html。有可能吗?
发布于 2013-06-20 02:03:01
尝试如下所示:
if (!empty($_SESSION['logged_in'])) {
header ('Location: /admin/login.php');
exit;
}
else
{
// HTML
}确保在向浏览器发送任何其他head信息之前调用header()。
发布于 2013-06-20 02:21:02
如果您希望至少检测您的帐户,如果您是管理员,那么请考虑您已经检索了帐户的sql数据并将其存储到会话中。
让我考虑一下$_SESSION['user_id']和$_SESSION['user_prev'],user_id是您的sql的帐户主键,user_prev是特权。
Member = 1
Developer = 50
Admin = 99这些是你的特权的编号,当然它们必须存储在你的数据库中并检索数据...
我们需要假设某个“访问者”做了login...we,不知道它是成员/开发人员还是管理员。
if(isset($_SESSION['user_id']))
{
if(isset($_SESSION['user_prev'])) {
/*We need to check if it is Admin or else it might be
*a Developer or just a Member
*/
if($_SESSION['user_prev'] == 99) {
include_once 'admin_content.php';
}elseif($_SESSION['user_prev'] == 50) {
include_once 'developer_content.php';
}else{
include_once 'member_content.php';
}
}
}else {
header("Location: login.php");
}我使用了'include_once‘而不是将用户重定向到某个内容/php...这也会帮助你保护你的内容...
https://stackoverflow.com/questions/17198109
复制相似问题