現象:登入後點擊「登出」連結(GET 請求 `index.php?action=logout`),頁面直接顯示「非法訪問」。
if (!isset($_POST['submit'])) { exit('非法訪問!'); }
// ... 登入邏輯 ...
if ($_GET['action'] == 'logout' && isset($_SESSION['user_id'])) { ... }
$action = $_GET['action'] ?? ($_POST['action'] ?? 'login');
if ($action === 'login') {
if (!isset($_POST['submit'])) exit('非法訪問!');
// 登入邏輯
} elseif ($action === 'logout') {
// 登出邏輯
}
// index.php
require 'router.php';
$router->post('/login', 'AuthController@login');
$router->get('/logout', 'AuthController@logout');
$router->dispatch();
<form action="logout.php" method="post">
<button type="submit">登出</button>
</form>
$stmt = $pdo->prepare("SELECT * FROM users WHERE user_email=? AND user_pass=?");
$stmt->execute([$email, $pass]); // 密碼應存 hash,而非明文
重構單一腳本雜湊邏輯為分離的路由/控制器,是從「能跑」走向「可維護、安全」的關鍵一步。