LAMP Server无法正确执行PHP脚本

时间:2015-01-28 02:58:23

标签: php html linux apache server

我在物理机器上运行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>

当我在浏览器中打开我的服务器时,我得到的就是:

Bug in PHP

$_SESSION['loggedin']变量已设置,但Login和Logout按钮都显示。此外,页面上还显示了两组字符串之间的文本。

当我使用XAMPP在本地计算机上显示时,这不会发生。

有关如何解决此问题的任何想法? 提前谢谢!

2 个答案:

答案 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.comhttp://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 } ?>