效果圖,輸入密碼就能訪問原始的頁面。
超級簡單,超級使用的代碼!

代碼:
// 驗證密碼邏輯
$correct_password = 'www.4s5.cn'; // 設置正確的密碼
$is_authenticated = false;
if (isset($_POST['password'])) {
if ($_POST['password'] === $correct_password) {
$is_authenticated = true;
} else {
echo "<script>alert('密碼錯誤,請重新輸入!');</script>";
}
}
// 如果未經過驗證,顯示密碼輸入框
if (!$is_authenticated) {
echo '
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>密碼驗證</title>
<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.0-alpha1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h3 class="card-title text-center">請輸入訪問密碼</h3>
<form method="post">
<div class="mb-3">
<label for="password" class="form-label">密碼:</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">確認</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.0-alpha1/js/bootstrap.bundle.min.js"></script>
</body>
</html>
';
exit; // 停止加載原頁面內容
}下面是進階版的代碼!
輸入密碼後,可以開啓緩存。
再次刷新,不用繼續輸入。
session_start();
$correct_password = 'www.4s5.cn'; // 設置正確的密碼
// 檢查是否已驗證過且未過期
if (isset($_SESSION['password_verified']) && $_SESSION['password_verified'] === true) {
// 檢查過期時間
if (isset($_SESSION['password_expire']) && $_SESSION['password_expire'] >= time()) {
// 驗證通過,繼續執行頁面加載
// 你的頁面內容和邏輯放在這裏
} else {
// 過期了,要求重新輸入密碼
unset($_SESSION['password_verified']);
unset($_SESSION['password_expire']);
require_password();
}
} else {
// 如果是第一次訪問或者驗證未通過,要求輸入密碼
require_password();
}
function require_password() {
if (isset($_POST['password'])) {
global $correct_password;
// 驗證密碼
if ($_POST['password'] === $correct_password) {
// 設置驗證通過的 Session 變量和過期時間
$_SESSION['password_verified'] = true;
$_SESSION['password_expire'] = time() + (2 * 24 * 60 * 60); // 兩天後的時間戳
// 重定向或繼續加載頁面
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
} else {
echo "<script>alert('密碼錯誤,請重新輸入!');</script>";
}
}
// 顯示密碼輸入框的 HTML
echo '
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>密碼驗證</title>
<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.0-alpha1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h3 class="card-title text-center">請輸入訪問密碼</h3>
<form method="post">
<div class="mb-3">
<label for="password" class="form-label">密碼:</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">確認</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.0-alpha1/js/bootstrap.bundle.min.js"></script>
</body>
</html>
';
exit; // 停止加載原頁面內容
}
// 繼續加載原頁面內容