'users', 'dsn' => "mysql://root:123@localhost/Ch14?charset=utf8", 'db_fields' => '*'); // 第 3 個參數所指的 'custom_login' 函式, 定義於類別之後 parent::__construct('mdb2', $options, 'custom_login', $showLogin); } // 重新定義的 getAuthData() 方法 // 改用 listUser() 讀取所有會員資料 (二維陣列) // 然後找出目前會員的資料並傳回 // 參數 $column 可用以設定只傳回指定的欄位 function getAuthData($column = null) { // 用 listUsers() 取出所有會員資料 $users = $this->listUsers(); // 找出目前登入者的個人資料 for($i=0;$igetUsername()) { if ($column == null) // 若參數未指定欄位 return $users[$i]; // 則傳回所有欄位 else return $users[$i][$column]; } } // 檢查參數名稱 $name 是否已被註冊 // 此方法主要用於新會員註冊時 function checkname($name) { $users = $this->listUsers(); // 取得所有會員者資料 foreach($users as $user) { if ($user['username'] == $name) // 若發現有相同的會名稱 return false; // 即傳回 false } return true; // 沒有找到相同的名稱, 即傳回 TRUE } // 檢查參數電子郵件信箱 $email 是否已被註冊 // 此方法主要用於新會員註冊時 // 本會員系統要求使用者名稱及註冊的電子郵件都必須是唯一的 function checkemail($email) { $users = $this->listUsers(); // 取得所有會員資料 foreach($users as $user) { if ($user['email']===$email) // 若發現有相同的電子郵件信箱 return false; // 即傳回 false } return true; // 沒有找到相同的電子郵件, 即傳回 true } } //------------------------------------------------------------ // 輸出自訂登入表單的函式 function custom_login($username = null,$status = null){ // 先由 $status 參數判斷是否要輸出提示訊息 if($status == AUTH_WRONG_LOGIN) $status_msg = '名稱或密碼錯誤'; else $status_msg = ''; // 輸出以 heredoc 語法建立的登入表單 echo <<
登入資訊
$status_msg
會員名稱:
密 碼:
立即註冊
忘記密碼
LOGIN_FORM; } ?>