我試圖在屏幕上輸入密碼錯誤次數太多但不知道如何去解決時在屏幕上出現驗證碼彈出窗口。我已經找到了很多關於這個的網頁,但他們都涉及到使用模板,這些網頁都沒有解釋我必須將其放到我的表單中。用自定義PHPBB登錄頁面的驗證碼
這是我到目前爲止。
define('IN_PHPBB', true);
global $auth, $db, $cache, $config, $user, $phpbb_root_path, $phpEx, $template;
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../main/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$remember = $remember==1?true:false;
$result = $auth->login($username, $password, $remember);
if ($result['status'] == LOGIN_SUCCESS){
return "LOGIN_SUCCESS";
//Launch captcha
}else{
if($result['status']==LOGIN_ERROR_ATTEMPTS){
return "LOGIN_ERROR_ATTEMPTS";
}
if($result['status'] == LOGIN_ERROR_EXTERNAL_AUTH){
return "No profile exists.";
}elseif($result['status'] == LOGIN_BREAK){
return "Failed to create session.";
}elseif($result['status'] == LOGIN_ERROR_PASSWORD){
return "Incorrect Password.";
}elseif($result['status'] == LOGIN_ERROR_USERNAME){
return "Invalid Username.";
}elseif($result['status'] == LOGIN_ERROR_PASSWORD_CONVERT){
return "Internal error, failed to convert password.";
}elseif($result['status'] == LOGIN_ERROR_ACTIVE){
return "User is inactive.";
}
}
在一個側面說明,爲什麼不使用開關,錶殼和突破,而不是這麼多的ELSEIF的? –
是啊,我的計劃太改變了,但這個驗證碼對我來說現在是一個更大的問題 –