我正在尝试使用 PHP 学习会话,并在创建身份验证应用程序时发现,当我进行硬刷新(单击 URL 并点击刷新)时,会话数据会丢失,即使它不是我设置的 3000 秒。我真的需要你的帮助。我被困在这里两天了,找不到任何解决方案。首先,我尝试了 PHP 实时服务器 localhost:3030,然后还尝试了实时托管站点,但仍然没有运气。请在这里帮助我。
<?php
session_name('auth_app');
session_start([
'cookie_lifetime' => 3000,
]);
$loggedin = logged_value() ?? false ;
function logged_value() {
if(isset($_POST['username']) && isset($_POST['password'])) {
if('admin' == $_POST['username'] && 'a51e47f646375ab6bf5dd2c42d3e6181' == md5($_POST['password'])) {
return true;
}
}
}
$_SESSION['loggedin'] = $loggedin;
if(isset($_POST['logout'])) {
$_SESSION['loggedin'] == false;
session_destroy();
}
?>
<!doctype html>
<html lang="en">
<head>
...
</head>
<body>
<div class="container">
<div class="row">
<div class="column column-60 column-offset-20">
<h2>AUTH Example</h2>
<?php
if( true == $_SESSION['loggedin'] ) {
printf("<p>Hello %s, Welcome!</p>", $_POST['username']);
}else {
printf("<p>Hello %s, Welcome!</p>", 'Stranger' );
}
?>
</div>
</div>
<div class="row">
<div class="column column-60 column-offset-20">
<?php if(false == $_SESSION['loggedin']) : ?>
<form method="post">
<input type="text" name="username" id="username" placeholder="Username">
<input type="password" name="password" id="password" placeholder="Password">
<button type="submit" class="button-primary" name="submit">Login</button>
</form>
<?php else: ?>
<form method="post">
<input type="hidden" name="logout" value="1">
<button type="submit" class="button-primary" name="submit">Logout</button>
</form>
<?php endif; ?>
</div>
</div>
</div>
</body>
</html>