我在物理机器上运行LAMP(Ubuntu)服务器。我的目标是在服务器上托管一个网站。现在,我将所有文件放在/ var / www / html目录和某些HTML文件中,我运行PHP脚本来检查用户是否登录,如下所示:
<div class="collapse navbar-collapse" id = "navCollapse">
<ul class="nav navbar-nav navbar-right">
<li class="active link-nav"><a href="/">Home</a></li>
<li class="link-nav"><a href="/pages/categories/">Categories</a></li>
<li class="link-nav"><a href="/pages/about/">About</a></li>
<!-- This part -->
<?php
if($_SESSION['loggedin'] != 1){
echo '<li class="link-nav">
<a href="#login" data-toggle="modal"> Log In</a>
</li>
<li class="link-nav">
<a href="#register" data-toggle="modal"> Register</a>
</li>';
}else{
echo "<li class = 'link-nav'><a href="logout.php"> Log Out </a>";
}
?>
<!-- End of PHP -->
</ul>
</div>
当我在浏览器中打开我的服务器时,我得到的就是:
$_SESSION['loggedin']
变量已设置,但Login和Logout按钮都显示。此外,页面上还显示了两组字符串之间的文本。
当我使用XAMPP在本地计算机上显示时,这不会发生。
有关如何解决此问题的任何想法? 提前谢谢!
答案 0 :(得分:1)
此行无效。通过正确的错误报告,您将看到错误。在测试时,打开错误报告会有很多帮助,因此您可以看到有用的错误:)
echo "<li class = 'link-nav'><a href="logout.php"> Log Out </a>";
你不能在不转义它们的情况下使用双引号!
而是像这样写:
echo '<li class="link-nav"><a href="logout.php">Log Out</a>';
看看是否有效。
答案 1 :(得分:0)
试试这个,使用包含岛而不是所有内容都是PHP字符串的代码更容易处理(另外,请查看http://www.Laravel.com和http://www.Laracasts.com):
<?php if($_SESSION['loggedin'] != 1){ ?>
<li class="link-nav">
<a href="#login" data-toggle="modal"> Log In</a>
</li>
<li class="link-nav">
<a href="#register" data-toggle="modal"> Register</a>
</li>
<?php }else{ ?>
<li class="link-nav"><a href="logout.php"> Log Out </a>
<?php } ?>