在 PHP 4.0.2 至 4.0.3pl1 中,Session 資料在用戶返回登入頁重新登入時不會更新,必須關閉瀏覽器才能清除。臨時解決方法:表單提交後,不要直接註冊提交的變數,而是將其賦值給新變數再註冊。
<?php
// 登入頁面傳送 $name, $pass
// login.php 處理
$save_name = $name;
$save_pass = $pass;
session_start();
session_register("name");
session_register("pass");
$name = $save_name;
$pass = $save_pass;
// ... 後續邏輯
?>
更保險的做法是在登入頁頁首加上 unset($X) 刪除舊變數。此為臨時方案,建議升級 PHP 版本或檢查 Session 設定(如 session.gc_maxlifetime)。