1

所以我对 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

4 回答 4

5

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

于 2013-01-08T23:51:06.173 回答
0

尝试

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

我希望你在一开始就做了 session_start() 。

于 2013-01-08T23:52:10.077 回答
0

我认为您的 *.php 文件的行为不像 PHP 文件。您应该检查您的网络服务器设置。

于 2013-01-08T23:52:51.507 回答
0

你没用echo。可以尝试在没有echo声明的情况下显示文本吗?

于 2013-09-22T09:55:42.750 回答