【发布时间】: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 语句。
-
是的,在测试中它工作正常,就像我使用
<?php if(!isset($_SESSION["login"])) { echo '<li>sign in</li>'; } else { echo '<li > Logiut</li>'; } ?>它工作得很好 -
嗯,$_SESSION['login'] 不是 $_SESSION['email']。您的错误消息说索引“电子邮件”不存在。