PHP if语句被“忽略”,呈现两个选项

时间:2013-01-08 23:46:56

标签: php if-statement

所以我对PHP非常陌生,我可能犯了一个愚蠢的错误。不过,我已经搜索了很长一段时间,并且无法弄清楚出了什么问题。

使用XAMPP所有PHP工作正常。但是,当我将其加载到我的Web服务器上时,调整登录表单的if语句同时显示“登录”表单和“注销”表单。显然不是我想要的!

以下是代码段:

<?php
   if ( isset( $_SESSION['email'] ) ) { // Check to see if user is logged in.  If so, display log out button.
?>
    <form class="navbar-form pull-right" action="logout.php" method="POST">
    <button name="submit" type="submit" class="btn btn-success">Log Out</button>
    </form>
<?php 
   } else { // display log in form
?>
    <form class="navbar-form pull-right" action="login.php" method="POST">
    <input name="email" type="text" class="span2" placeholder="email">
    <input name="password" type="password" class="span2" placeholder="password">
    <button name="submit" type="submit" class="btn btn-success">Log In</button>
    </form>
<?php 
   } 
?>

这包含在文件index.php

基本逻辑是测试是否为会话创建了一个电子邮件变量(在login.php执行中完成)以检查用户是否已登录。

我不知道这是否是创建登录的最佳方式,但这就是我尝试过的。

同样,我对此非常陌生,因此,非常感谢任何有关下一步观看的见解!

谢谢!

4 个答案:

答案 0 :(得分:5)

执行视图源并确保实际解释您的PHP代码。如果您在浏览器的源代码中看到了PHP标记,那么您的Web服务器配置不正确。

答案 1 :(得分:0)

尝试

if(!empty( $_SESSION['email'] ))

我希望你在开头做了session_start()。

答案 2 :(得分:0)

我认为您的* .php文件的行为与PHP文件不同。您应该检查您的Web服务器设置。

答案 3 :(得分:0)

您没有使用echo。可以尝试在之前没有echo语句的情况下回复文本吗?