【发布时间】:2018-03-02 06:47:05
【问题描述】:
这是我的 index.php 代码的一部分,它打印当前用户登录 $SESSION。但是当用户单击注销时,它会在第 x 行给出一条错误消息,指出“未定义的索引:用户名”。 这是什么意思,我该如何解决?
<?php
$dbname = 'lw17894'; # Change to your username
$dbuser = 'lw17894';
$dbpass = 'obscure';
$dbhost = 'localhost';
$link = mysqli_connect( $dbhost, $dbuser, $dbpass )
or die( "Unable to Connect to '$dbhost'" );
mysqli_select_db( $link, $dbname )
or die("Could not open the db '$dbname'");
if($_SESSION['username']) {
echo "Welcome, User: {$_SESSION['username']}";
} else {
echo "User not logged in!";
}
?>
这是我的 logout.php 代码:
<?php
session_start()
?>
<!DOCTYPE html>
<html>
<body>
<?php
session_unset();
session_destroy();
echo "<h1>You are logged out!</h1>";
echo "<br>";
echo "<h2><strong>You will be redirected back to Home in 3 seconds</strong></h2>";
?>
<meta http-equiv="refresh" content="3;URL=index.php" />
</body>
</html>
【问题讨论】:
-
无疑是骗子,但没有 session_start(),你应该使用 isset 或 !empty 来测试你的会话密钥,因为当你销毁或开始一个新的会话时,你将没有现有的会话key:用户名,因此有一个未定义的索引。
标签: php html session login logout