所以在我的index.php
中,我有这个:
<!DOCTYPE html>
<html lang="en">
<body>
<!-- Navigation -->
<?php include 'includes/navigationbar.php'; ?>
<!-- Footer of the site -->
<?php include 'includes/footer.php'; ?>
</body>
</html>
这是navigationbar.php
中的代码:
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<ul class="nav navbar-nav navbar-right">
<li>
<a href="login.php">Sign In</a>
</li>
<li>
<a href="register.php">Create Account</a>
</li>
</ul>
enter code here
我怎样才能使这两个无序列表仅在用户登录时才出现在屏幕上?我有一个名为 users.php
的 PHP 文件,其中我有一个名为 logged_in
的函数。
以下代码来自users.php
:
function user_logged_in () {
return (isset($_SESSION['user_id'])) ? true : false;
}
这就是我所做的,但它似乎不起作用:
下面的代码是navigation.php
的一个片段,我只是放了一个条件来查看用户是否登录,如果他们是否登录,则回显登录,否则会出现无序列表。但是,我得到一个空白屏幕。
<?php
require 'users.php';
if(isset($_SESSION['user_id'])){
echo 'logged in';
} else {
<ul class="nav navbar-nav navbar-right">
<li>
<a href="login.php">Sign In</a>
</li>
<li>
<a href="register.php">Create Account</a>
</li>
</ul>
}
?>
我尽力解释情况,但如果需要更多信息,请询问。
我个人会向索引发送一个参数.php说明用户是否已记录,或者您可以包含该文件以供以后使用user_logged_in
方法并从索引调用它。
然后。。。
<?php
include 'users.php';
if (!user_logged_in ){
include 'includes/navigationbar.php';
}else{
//show another navitagion bar or whatever you want for logged users
}
?>