:::

5-6 檢查帳號密碼

一、引入設定檔

  1. include() 和 require() 都可以用來引入檔案,但原理不太一樣。
  2. require() :若引入不到檔案,會導致程式停擺。
  3. include():若引入不到檔案,僅秀出警告,程式仍繼續運作。
  4. require_once() 與 include_once() :引入進來的檔案若是相同的,只會引入一次。推薦使用!
  5. () 不一定要寫,寫成include "xxx.php"; 也可以。

二、判斷是否登入

  1. 為了讓系統記住登入狀態,我們使用了session,要使用session機制,必須先session_start();
    <?php
    /*引入檔案(初始設定)*/
    session_start();
    require_once 'config.php';
    require_once 'smarty/libs/Smarty.class.php';
    $smarty = new Smarty;
    
    /*過濾變數*/
    $op      = isset($_REQUEST['op']) ? filter_var($_REQUEST['op'], FILTER_SANITIZE_SPECIAL_CHARS) : "";
    $group   = isset($_SESSION['group']) ? $_SESSION['group'] : '';
    $name    = isset($_SESSION['name']) ? $_SESSION['name'] : '訪客';
    $content = "主內容";
    
    /*執行流程*/
    switch ($op) {
        case 'login':
            $name = isset($_POST['email']) ? filter_var($_POST['email'], FILTER_SANITIZE_SPECIAL_CHARS) : "訪客";
            $pass = isset($_POST['pass']) ? $_POST['pass'] : "";
            if ($name == $admin_id and $admin_pass == $passwd) {
                $_SESSION['group'] = 'admin';
                $_SESSION['name']  = $name;
                $content           = "登入成功";
            } else {
                $content = "登入失敗";
            }
            header("location:{$_SERVER['PHP_SELF']}");
            exit;
    
        default:
            # 取得活動列表
            break;
    }
    
    /*輸出結果*/
    $smarty->assign('name', $name);
    $smarty->assign('group', $group);
    $smarty->assign('content', $content);
    $smarty->assign('page_title', '活動報名系統');
    $smarty->display('index.tpl');
    
  2. 整理一下變數,把到時後要傳到樣板的放在上面即可,相當於預設值的感覺。
  3. 利用 switch 來判斷 $op 變數,隨著 $op 變數值不同,其對應動作也不一樣。登入時就跑login中的部份。
  4. 利用require_once()引入設定檔。
  5. 登入時會傳來 name 與 passwd,過濾帳號(因為最後要呈現到畫面上),密碼無須過濾。
  6. 過濾後,判斷和設定檔的帳密是否一致,若一致,就用$_SESSION['group']記住狀態。順便把名字也記住。
  7. 其中「==」是比較運算符,「=」則是賦值運算符。
  8. header() 也是PHP內建的函數,用來設定檔案檔頭。
  9. header("location: 網址") 的用法則是轉頁(轉向)的語法,但一樣會往下執行,所以,必須用 exit 告知程式到此為止,不再往下執行(因為要轉向了)。
  10. $content 理論上看不到,不過若是把轉向暫時註解,就可以看到登入成功或失敗。

:::

書籍目錄

展開 | 闔起

http%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D712

計數器

今天: 432432432
昨天: 3438343834383438
總計: 7390761739076173907617390761739076173907617390761