【问题标题】:PHP index pages gives out session unknown error when logged outPHP索引页面在注销时给出会话未知错误
【发布时间】:2017-09-09 07:43:09
【问题描述】:

我的索引页有一个登录和注销会话。

因此,它使用用户的电子邮件作为会话,当用户登录时,它使用存储在会话中的电子邮件从 fb 获取详细信息。

但是当用户退出时,却显示错误

注意:未定义索引:D:\xampp\htdocs\site\index.php 中的电子邮件

我的代码如下:

<?php 
    //15 2 2015
    session_start();
?>
<?php 
    $email = $_SESSION['email'];
    $sql = "SELECT * FROM landlords WHERE email = '$email' ";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {                                
    while($row = $result->fetch_assoc()) {                                   
?>
<?php 
        echo '<li class="dropdown submenu">';
        echo '<a href="#" class="dropdown-toggle">'; echo ($row["name"]); echo '</a>';
        echo '<ul class="dropdown-menu">';
        echo '<li><a href="myaccount.php">My Account</a></li>';
        echo '<li><a href="logout.php">Log Out</a></li>';
      echo '</ul>';
        echo '</li>';
?>
<?php    }
             } else {
        echo '<li>  <a href="signin.php"><span class="icon-user"></span>Sign In</a></li>';
        }
?>

忽略多个 php 开口。

所以,当用户登录时,它可以正常工作,但是当用户注销时,它会给出一个错误

注意:未定义索引:D:\xampp\htdocs\site\index.php 中的电子邮件

感谢任何帮助。

【问题讨论】:

  • 测试是否存在:isset($_SESSION['email']
  • @SloanThrasher 而不是 $email = $_SESSION['email'];?
  • 我说的是您收到的通知,以及如何避免它。在尝试将其分配给 var 之前,在测试中使用它。通过测试,我的意思是 if 语句。
  • 是的,在测试中它工作正常,就像我使用 &lt;?php if(!isset($_SESSION["login"])) { echo '&lt;li&gt;sign in&lt;/li&gt;'; } else { echo '&lt;li &gt; Logiut&lt;/li&gt;'; } ?&gt; 它工作得很好
  • 嗯,$_SESSION['login'] 不是 $_SESSION['email']。您的错误消息说索引“电子邮件”不存在。

标签: php session


【解决方案1】:

问题是您没有保护电子邮件会话变量未设置的情况,就像在会话未设置(注销)之后一样。试试这个:

$email = @$_SESSION['email'];
if (!empty($email)) {
    $sql = "SELECT * FROM landlords WHERE email = '$email' ";
    $result = $conn->query($sql);
}
if (isset($result) && $result->num_rows > 0) {

...

【讨论】:

  • 如果你不喜欢错误抑制,你可以这样做:$email = isset($_SESSION['email']) ? $_SESSION['email'] : null;
猜你喜欢
  • 2017-05-18
  • 2015-02-13
  • 1970-01-01
  • 2013-02-09
  • 2015-03-06
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多