我遇到了一个让我很困惑的问题。 我正在使用PHP和MySQL在登录屏幕上工作。我设法验证数据库中现有用户的用户名和密码,然后启动会话,并将会话变量username设置为登录屏幕中提供的用户名。
$username = html($_POST['username']);
$password = html($_POST['password']);
$result = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = :password');
$result->bindValue(':username', $username);
$result->bindValue(':password', $password);
$result->execute();
foreach($result as $user)
{
$count = $count + 1;
}
if ($count == 1)
{
session_start();
$_SESSION['username'] = $username;
` //if I do an echo $_SESSION['username'] it displays the correct user
header('Location: .');
exit();`
}
然而,当它将我转移到index.php页面时,$_SESSION['username']
变量已经消失,我不明白为什么。这是我在index.php中使用的代码,用于检查用户名:
<p><a href="view.php">View all tasks</a></p>
<p><a href="form.php?add">Add your own task</a></p>
<p>Welcome, <?php echo $_SESSION['username']; ?></p>
但是我收到以下错误:Notice: Undefined variable: _SESSION in C:\xampp\htdocs\abcabcabc\index.php on line 16
所有建议将非常感谢人
答案 0 :(得分:0)
将sesssion_start()
添加到使用会话的所有脚本
答案 1 :(得分:0)
您必须在index.php文件的开头使用session_start();
。
答案 2 :(得分:0)
前2个答案是正确的。您必须在每个页面上启动会话。我通常只是将它放在每个页面中“包含”的文件中(如头文件),所以我不必考虑它。