红穆笔记
首頁 語言筆記 PHP+HTML+bootstrap 簡單的頁面驗證,美觀
語言筆記 PHP 踩坑總結

PHP+HTML+bootstrap 簡單的頁面驗證,美觀

PHP+HTML+bootstrap 简单的页面验证,美观

效果圖,輸入密碼就能訪問原始的頁面。

超級簡單,超級使用的代碼!

20240705225405873-图片

代碼:

// 驗證密碼邏輯
$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; // 停止加載原頁面內容
}
// 繼續加載原頁面內容

 

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

PHP ob函数记录

PHP ob函數記錄 語言筆記 PHP

下面3個函數的用法 ob_get_contents(); ob_end_clean(); ob_start(); 可以藉助這幾個函數實現緩衝本地文件,以及執行本地腳本代碼。 使用ob_start()把輸出的代碼存到緩衝區,頁面不會顯示出來; 然後用ob_get_contents得到緩衝區的數據。 o…
👁 141
PHP preg

PHP preg 語言筆記 PHP

preg_match_all 函數用於執行一個全局正則表達式匹配。preg_match_all() 語法int preg_match_all ( string $pattern , string $subject [, array &amp;$matches [, int $flags = PREG…
👁 169
PHP 三元运算符与if的详解

PHP 三元運算符與if的詳解 語言筆記 PHP

三元運算符語條件 ? 結果1 : 結果2 說明:問號前面的位置是判斷的條件,如果滿足條件時結果1,不滿足時結果2。本文對三元運算符和if...else...進行對比詳解,希望對大家有所幫助。今天在改論文在線的時候遇到了一個語句看不懂:$if_summary = $row['IF_SUMMARY']=…
👁 189
PHP强制转换类型

PHP強制轉換類型 語言筆記 PHP PHP採集 PHP與mysql

獲取數據類型1.如果想查看某個表達式的值和類型,用var_dump()。 2.如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。3.要查看某個類型,不要用 gettype(),而用is_type() 函數。字符串轉換爲數值當一個字符串被當作數字來求值時,根據以下規則來決定結果…
👁 232
php 字符串中是否包含指定字符串的多种方法

php 字符串中是否包含指定字符串的多種方法 語言筆記 PHP

strstrstrstr() 函數搜索一個字符串在另一個字符串中的第一次出現。該函數返回字符串的其餘部分(從匹配點)。如果未找到所搜索的字符串,則返回 false。代碼如下:&lt;?php $email = 'user@example.com'; $domain = strstr($email, …
👁 138

推薦閱讀

高端全屋实木定制类网站模板 0017

高端全屋實木定製類網站模板 0017 實用收藏 易優模板

一款爲高端全屋實木定製類企業設計的eyoucms網站模板。設計風格奢華大氣,能夠很好地展示實木定製傢俱、全屋整裝案例及設計理念。有助於高端傢俱定製品牌在線上吸引高品質客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優C…
👁 45
(自适应手机端)响应式宠物资讯类pbootcms网站模板 宠物博客经验网站源码下载 0595

(自適應手機端)響應式寵物資訊類pbootcms網站模板 寵物博客經驗網站源碼下載 0595 實用收藏 pbootcms模板

一款響應式寵物資訊與博客經驗PbootCMS網站模板,支持PC與WAP端。設計風格溫暖可愛,適合寵物愛好者分享養寵經驗、趣事及知識。有助於寵物博主在線上建立社羣,吸引同好關注。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.cn相關文…
👁 39
响应式阀门制造网站模板 0637

響應式閥門製造網站模板 0637 實用收藏 易優模板

此套eyoucms響應式模板適用於閥門製造行業,設計風格專業工業,能夠展示閥門產品、製造工藝、技術參數及工業應用。有助於閥門製造企業在線上展示產品實力,吸引工業客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(…
👁 41
钣金加工制造类网站模板 0018

鈑金加工製造類網站模板 0018 實用收藏 易優模板

此套eyoucms模板適用於鈑金加工製造類企業,設計風格硬朗專業,能夠展示鈑金產品、加工工藝及工業應用。有助於鈑金製造企業在線上展示生產實力,吸引工業製造客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(Eyo…
👁 67
sphinx PHP可以一次性搜索多个词吗?

sphinx PHP可以一次性搜索多個詞嗎? 程序筆記 sphinx

是的,Sphinx可以一次性搜索多個詞。您可以在查詢中使用多個關鍵字來搜索索引中的文本。例如,以下是一個簡單的PHP代碼片段,可以使用Sphinx API在多個關鍵字上執行搜索:require_once('sphinxapi.php'); // 連接Sphinx服務器 $sphinx = new S…
👁 267