Captcha с настраиваемой страницей входа в 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.";
        }
    }

person Garrett R    schedule 24.09.2012    source источник
comment
Кстати, почему бы не использовать switch, case и break вместо множества elseif?   -  person Damien Keitel    schedule 25.09.2012
comment
Да, я тоже планировал это изменить, но эта капча сейчас для меня большая проблема   -  person Garrett R    schedule 26.09.2012


Ответы (1)


person    schedule
comment
У меня был такой человек раньше, но $ captcha- ›get_template () вернет false или 'captcha_default.html'. Не уверен, как я могу реализовать это в своей форме? Я даже не уверен, что это за страница captcha_default.html. Как назвать для него поле ввода? Этот код не обрабатывает ввод текста капчи. - person Garrett R; 26.09.2012
comment
Единственный способ включить капчу - использовать шаблон phpbb, или вы всегда можете использовать свою собственную капчу, или есть другие способы сделать то же, что и вы, показанные ниже. используйте login_box(request_var('redirect', "index.$phpEx")); или опубликуйте сообщение в ../main/ucp.php?mode=login&redirect=myredirect - person Damien Keitel; 26.09.2012