0%

[技能檢定]題組三 步驟4 管理登入

題組三的管理登入算是簡單的功能,並不需要有個管理者的資料表來做紀錄,因此這邊只要直接寫死帳密做檢查即可;另外,雖然題目中沒有提到,但為了避免每次要到後台時都要再一次輸入帳號密碼,這邊建議還是透過 sessioncookie 來紀錄登入的狀態:

  1. 建立 /view/backend/login.php 檔案,並撰寫登入表單html碼
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <div style="color:red">
    <!--判斷是否有錯誤訊息,如果有錯誤則在畫面上顯示-->
    <?=$error??"";?>
    </div>
    <!--action為當前頁重載-->
    <form action="?" method="post">
    <p>帳號: <input type="text" name="acc" id="acc"></p>
    <p>密碼: <input type="password" name="pw" id="pw"></p>
    <p><input type="submit" value="登入"></p>

    </form>
  2. backend.php 檔案的最前方,撰寫表單的驗證程式,如果驗證成功則建立session來代表登入成功,如果失敗則建立一個錯誤訊息變數供 login.php 使用。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    include_once "base.php";

    if(!empty($_POST)){
    if($_POST['acc']=='admin' && $_POST['pw']=="1234"){
    $_SESSION['login']=1;
    }else{
    $error="帳號或密碼錯誤";
    }
    }
  3. backend.php 的功能選單中加入依照 session 進行的判斷,因為合理來說,未登入的使用者應該是不能看到這些功能連結的
    backend.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div id="mm">
    <?php
    if(isset($_SESSION['login'])){
    ?>
    <div class="ct a rb" style="position:relative; width:101.5%; left:-1%; padding:3px; top:-9px;">
    <a href="?do=tit">網站標題管理</a>|
    <a href="?do=go">動態文字管理</a>|
    <a href="?do=poster">預告片海報管理</a>|
    <a href="?do=movie">院線片管理</a>|
    <a href="?do=order">電影訂票管理</a>
    </div>
    <?php } ?>
    <div class="rb tab">
  4. /view/backend/main.php 加上依據 session 的有無而決定要載入那個檔案的語法
    /view/backend/main.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if(isset($_SESSION['login'])){
    ?>
    <h2 class="ct">請選擇所需功能</h2>
    <?php
    }else{
    include "./view/backend/login.php";
    }
    ?>