小编jus*_*.me的帖子

PHP如果检测到强力尝试,则使用reCAPTCHA

我正在使用强力检查器构建登录脚本,当触发时,将显示reCAPTCHA.我遇到的问题是,当输入正确的用户名/密码/验证码响应时,登录脚本会运行,但直到大部分页面内容已加载(这在提交表单后发生).结果是我必须按F5刷新页面并重新提交表单数据,以便在页面开始加载时会话处于活动状态.

现在,我遇到的问题是,一旦表单被提交(当它需要CAPTCHA时),会话直到index.php到达时才开始

    else {
        $captchaResponse = 1;
        $auth = Auth::verifyPass($userName,$password,$captchaResponse);
    }
Run Code Online (Sandbox Code Playgroud)

我很难过如何重新​​组织这个,以便会话在此之前开始.有任何想法吗?

  1. 第一部分是index.php页面,其中包含在检测到强力尝试时触发的代码.代码的这一部分以条件if开头($ auth ==="bruteForce")此代码显示reCAPTCHA并且应该提交用户名,密码和reCAPTCHA响应代码(0-错误响应,1-correct response)返回登录功能.

    <?php
        include('includes/header.php');
        spl_autoload_register(function ($class){
           include 'includes/class.' . $class . '.php'; 
        });
        if(null !==(filter_input(INPUT_POST,'userName'))){$userName = filter_input(INPUT_POST,'userName');}
        if(null !==(filter_input(INPUT_POST,'password'))){$password = filter_input(INPUT_POST,'password');}
    
        if(isset($userName)&& isset($password)){
            $auth = Auth::verifyPass($userName,$password);
        }
    
        if(isset($_GET['logout']) && $_GET['logout'] == true){
            session_start();
            session_destroy();
            setcookie ("PHPSESSID", "", time() - 3600, "/");
            header("Location: index.php");
        }
        if(Auth::checkLoggedIn() === true){
            if(session_id() !== ''){echo 'Session ID is not blank<br />';}
            echo '<a href="index.php?logout=true">Logout</a><br />';
            echo 'Welcome! This is protected content!' …
    Run Code Online (Sandbox Code Playgroud)

php forms captcha login recaptcha

7
推荐指数
1
解决办法
689
查看次数

标签 统计

captcha ×1

forms ×1

login ×1

php ×1

recaptcha ×1