我正在为一个制作简单多页网站的课程做练习。其中一个页面是" addeddit.php'页面要求用户成为管理员。但是,如果网站的用户是经纪人,则应拒绝他们访问此页面。
我不确定如何正确编码" addedit.php'页。
我有一个用用户名和密码保存的数据库以及一个' Y'或者' N'如果他们是管理员 我的登录页面的php如下所示,我添加了$ isadmin变量。
我的' addedit.php'到目前为止的代码如下: 在session_start();
<?php
session_start();
if($isadmin==true){
header("location:addedit.php");
exit;
}
else
{
echo "Sorry, you must be an administrator to view this";
}
}
?>
答案 0 :(得分:0)
尝试此操作后,请按此设置会话
$_SESSION['admin']= $fetchresult['admin'];
在主页面和'addedit.php'中尝试这样..
<?php
session_start();
if($_SESSION['admin'] == 'Y'){
header("location:addedit.php");
exit;
}
else
{
echo "Sorry, you must be an administrator to view this";
}
}
?>
答案 1 :(得分:0)
在此处更改此类代码
$fetchresult = $result->fetchRow();
$userid = $fetchresult['username'];
$_SESSION['isAdmin'] = $fetchresult['admin'];
header("location:mainpage.php");
现在,addedit.php
<?php
session_start();
if(isset($_SESSION)){
if($_SESSION['isAdmin'] == true){
header("location:addedit.php");
exit;
}
else {
echo "Sorry, you must be an administrator to view this";
}
}
?>
答案 2 :(得分:0)
在登录用户的页面中,您应该将值存储在会话中,例如
$_SESSION['userid'] = $userid;
$_SESSION['isadmin'] = $isadmin;
然后在您的addedit.php页面上,您需要从SESSION对象中检索值,例如
$isadmin = $_SESSION['isadmin'];
如果这是你在$ isadmin中存储的内容,请务必检查'Y'标志,例如
if ($isadmin == 'Y')
答案 3 :(得分:0)
更改您的其他声明。
else
{
$fetchresult = $result->fetchRow();
$userid = $fetchresult['username'];
$isadmin = $fetchresult['admin'];
if($isadmin=='N' || $isadmin='Y')//As you mention in the question
//That admin column of two value one is N and one is Y
$_SESSION['admin']=$isadmin;
header("location:mainpage.php");
}
?>
现在您的addedit.php看起来像这样
<?php
session_start();
$_SESSION['admin']=$isadmin;//Only added this line
if($isadmin==TRUE){//rest of the code remain same. i change only true to
//TRUE. But it should work with true as well
header("location:addedit.php");
exit;
}
else
{
echo "Sorry, you must be an administrator to view this";
}
}
?>