PHP 索引页在注销时发出会话未知错误



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

因此,它使用

用户的电子邮件作为会话,当用户登录时,它使用存储在会话中的电子邮件从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

任何帮助,不胜感激。

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

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

相关内容

最新更新