PHP - IF 语句普通用户或管理员有访问权限
PHP - IF statement either regular user OR admin have access
要查看我网站的新闻部分,您必须登录(作为普通帐户 = login_user 或 admin = admin ),您可以按时间顺序查看上传的新闻。如果您未在任何一种情况下登录,请转到其他地方。然而,代码正在考虑 none 即使使用普通帐户或管理员帐户登录并简单地将我引导到其他地方,也满足条件...
<?php
error_reporting(0);
session_start();
if(!isset($_SESSION['admin']) || !isset($_SESSION['login_user']))
{
?>
<div class = "api" style="position: absolute;
top: 140px;
right: 400px;
width: 730px;
height: 400px;word-wrap: break-word;">
<h2 align = "center"> <font color ="red"> You Do Not Have Permission To View this Page. </font> <br><br> Your Options Are:
<br><br><br>
<a href="index.php"> Create and Register for A New Account </a> <br> <br> <br> OR <br> <br> <br> <a href="indexmember.php">Log In With An Existing Account. </h2>
</div>
<?php
}
elseif(isset($_SESSION['admin']) || isset($_SESSION['login_user']))
{
include 'connect.php';
?>
<div class = "api" style="position: absolute;
top: 10px;
right: 220px;
width: 1200px;
height: 3200px;word-wrap: break-word;" id="easyPaginate">
<?php
$query = mysqli_query($con,"select * from news order by date DESC");
while($r = mysqli_fetch_array($query))
{
?>
<section class="propertypage">
<br> <br>
<h4><?php echo "<b><u>Title</u>: </b>".$r['Title']; ?></h4>
<h4><?php echo "<b><u>Detail</u>: </b>".$r['story']; ?></h4>
<h4><?php echo "<b><u>Published Date</u>: </b>".$r['DATE']; ?></h4>
<img src="<?php echo $r['image']; ?>" height="600px" width="1200px"/>
<br> <br> <br>
</section>
<?php
}
?>
</div>
<?php
}
?>
你想要:
if(!isset($_SESSION['admin']) && !isset($_SESSION['login_user']))
// ....
这是说如果用户不是管理员并且用户不是登录用户,那么他们一定没有权限。
!isset($_SESSION['admin']) 和 !isset($_SESSION['login_user']) 两者或至少其中之一将始终为真,因此第一个条件if 语句将永远为真。如果您以管理员身份登录,则您未以普通用户身份登录;如果您以普通用户身份登录,则您未以管理员身份登录。我认为这是问题所在,希望对您有所帮助
这是一道逻辑题。
if(!isset($_SESSION['admin']) || !isset($_SESSION['login_user']))
这意味着如果未设置管理变量或用户变量,您将进行重定向。如果你有一套但没有另一套,它仍然会重定向。
if(isset($_SESSION['admin']) || isset($_SESSION['login_user']))
这可能会解决您的问题。 Not's 和 or's 有时会很棘手。这个条件将确保如果设置了用户或管理员会话,你就成功了。
要查看我网站的新闻部分,您必须登录(作为普通帐户 = login_user 或 admin = admin ),您可以按时间顺序查看上传的新闻。如果您未在任何一种情况下登录,请转到其他地方。然而,代码正在考虑 none 即使使用普通帐户或管理员帐户登录并简单地将我引导到其他地方,也满足条件...
<?php
error_reporting(0);
session_start();
if(!isset($_SESSION['admin']) || !isset($_SESSION['login_user']))
{
?>
<div class = "api" style="position: absolute;
top: 140px;
right: 400px;
width: 730px;
height: 400px;word-wrap: break-word;">
<h2 align = "center"> <font color ="red"> You Do Not Have Permission To View this Page. </font> <br><br> Your Options Are:
<br><br><br>
<a href="index.php"> Create and Register for A New Account </a> <br> <br> <br> OR <br> <br> <br> <a href="indexmember.php">Log In With An Existing Account. </h2>
</div>
<?php
}
elseif(isset($_SESSION['admin']) || isset($_SESSION['login_user']))
{
include 'connect.php';
?>
<div class = "api" style="position: absolute;
top: 10px;
right: 220px;
width: 1200px;
height: 3200px;word-wrap: break-word;" id="easyPaginate">
<?php
$query = mysqli_query($con,"select * from news order by date DESC");
while($r = mysqli_fetch_array($query))
{
?>
<section class="propertypage">
<br> <br>
<h4><?php echo "<b><u>Title</u>: </b>".$r['Title']; ?></h4>
<h4><?php echo "<b><u>Detail</u>: </b>".$r['story']; ?></h4>
<h4><?php echo "<b><u>Published Date</u>: </b>".$r['DATE']; ?></h4>
<img src="<?php echo $r['image']; ?>" height="600px" width="1200px"/>
<br> <br> <br>
</section>
<?php
}
?>
</div>
<?php
}
?>
你想要:
if(!isset($_SESSION['admin']) && !isset($_SESSION['login_user']))
// ....
这是说如果用户不是管理员并且用户不是登录用户,那么他们一定没有权限。
!isset($_SESSION['admin']) 和 !isset($_SESSION['login_user']) 两者或至少其中之一将始终为真,因此第一个条件if 语句将永远为真。如果您以管理员身份登录,则您未以普通用户身份登录;如果您以普通用户身份登录,则您未以管理员身份登录。我认为这是问题所在,希望对您有所帮助
这是一道逻辑题。
if(!isset($_SESSION['admin']) || !isset($_SESSION['login_user']))
这意味着如果未设置管理变量或用户变量,您将进行重定向。如果你有一套但没有另一套,它仍然会重定向。
if(isset($_SESSION['admin']) || isset($_SESSION['login_user']))
这可能会解决您的问题。 Not's 和 or's 有时会很棘手。这个条件将确保如果设置了用户或管理员会话,你就成功了。