セッションを使用して簡単なログインプログラムを作成しました。ログインに成功した後、設定ファイルで session.gc_maxlifetime = 60 を設定し、サーバーを再起動しました。セッションはまだ期限切れになっておらず、セッション ファイルは削除されていないため、session.gc_divisor と session.gc_probability を 1000 に設定しました。サーバーを再起動してそのページにアクセスした後、セッションはまだ期限切れになっておらず、セッション ファイルはまだ残っています。なぜこれが起こるのですか?これらの設定は役に立たないのでしょうか?
合計 3 つのファイルがあり、コードは次のとおりです:
login.php:
session_start();
if(!empty($_SESSION['username']))
{
header ("場所:index.php");
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$userInfo =loadUserInfo()
if($_POST['username']==; 'james' && $_POST['パスワード']=='123') {
$_SESSION['ユーザー名'] = $_POST['ユーザー名']
header('location:index.php'); } {
echo ' ユーザー名またはパスワードのエラー!';
}
}
いつ システムがセッションに依存している場合は、環境の不確実性の影響を避けるために、セッション処理をカスタマイズし、open メソッドまたは read メソッドで gc メソッドを明示的に呼び出す必要があります