我的索引页面有登录和注销会话。
因此,它使用用户的电子邮件作为会话,当用户登录时,它会使用存储在会话中的电子邮件从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中的电子邮件
感谢任何帮助。
答案 0 :(得分:1)
问题是您没有保护未设置电子邮件会话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) {
...