我正在使用 $_SESSION 让我的用户在登录后保持登录状态。
回到首页的时候,一开始看起来好像已经登录了,但是刷新一次页面后,就不再登录了。
注意:我还在学习 PHP 编程,所以请不要介意我的大部分代码都相当笨拙。
索引.php 代码:
<?php
session_start();
$UserOnline = "Guest";
if (isset($_SESSION['username'])) {
$UserOnline = $_SESSION['username'];
}
echo $UserOnline;
?>
Login.php 代码:
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
if (empty($username)) {
$InvalidLogin = "Please submit a username";
$_SESSION['IL'] = $InvalidLogin;
header ('Location: http://localhost/practice/index.php');
exit;
} elseif (empty($username)) {
$InvalidLogin = "Please submit a password";
$_SESSION['IL'] = $InvalidLogin;
header ('Location: http://localhost/practice/index.php');
exit;
}
require 'required/connect.php';
$result = mysqli_query($con, "SELECT * FROM users WHERE username='$username'");
$row = mysqli_fetch_array($result);
if ($password == $row['password']) {
$_SESSION['username'] = $username;
echo "Successful Login!";
echo "<br>";
echo "<a href='index.php'>Return to HomePage?</a>";
} else {
$InvalidLogin = "Your info didn't match ours!";
$_SESSION['IL'] = $InvalidLogin;
header ('Location: http://localhost/practice/index.php');
exit;
}
?>
如果用户在那里进行会话,我已经在 login.php 页面上进行了测试,并且我总是得到正确的返回值。问题是,在我在 Index.php 页面上刷新一次后,用户不再处于会话中。
有什么我忘记了,还是我没有正确使用 $_SESSION?还有另一个我根本不知道的错误吗?