无法使用reCAPTCHA2进行注册

时间:2017-12-16 19:29:03

标签: php recaptcha

我不能使寄存器与recaptcha一起工作,但它没有它正常工作

<?php

require_once("database.php");

$conn= pdo_con();

ini_set('SMTP','smtp.intnet.mu');
ini_set('smtp_port',25);
ini_set('sendmail_from','admin@example.co.uk');

if(!empty($_POST) || isset($_POST['regis_submit'])){

// Should the code be place here cause I already try it. //

$errors = array();

if (empty($_POST['firstname']) || empty($_POST['regis_username']) || empty($_POST['lastname']) || empty($_POST['inputEmail']) 
        || empty($_POST['phone_num']) || empty($_POST["gender"]) || empty($_POST['regis_pass']) || empty($_POST["postal_address"]) 
        || empty($_POST["DateField"]) ){

    $errors[] = 'Value(s) in the form missing, please fill them all out!';
    exit();
} else if(!preg_match ('%^[A-Za-zÀàÂâÇçÉéÈèÊêËëÔôÙùÎîÏïÛûÜü\.\' \-]{2,15}$%', $_POST['firstname'])){
    $errors['firstname'] = '<p><font color="red">Please enter your first name!</font></p>';
    exit();
} else if ( etc...

}

else if (count($errors) > 0) {
        foreach($errors as $error) {
            echo $error;
        }

    } else {

        $firstname = escape_data($_POST['firstname']);
        $username = escape_data($_POST['regis_username']);
        $lastname = escape_data($_POST['lastname']);
        $email = escape_data($_POST['inputEmail']);
        $telephone = escape_data($_POST['phone_num']);
        $password = escape_data($_POST['regis_pass']);
        $address = escape_data($_POST['postal_address']);

        $gender = escape_data($_POST['gender']);
        $date = escape_data($_POST['DateField']);

  //check if user already exist
        $exist = "";
        $query = $heidisql->prepare("SELECT user_id as 'exist' FROM users WHERE user_username='$username' OR email_address='$email' ");
        $query->execute();

        while($userRow = $query->fetch(PDO::FETCH_ASSOC)) {
            $exist = $userRow['exist'];
        }

        if(strlen($exist) > 0){
            echo 'Account already exist!';
            exit();

        } else {

 $sql = "";

 $stmt = $heidisql->prepare($sql);

        $token = bin2hex(random_bytes(20));
        $hash = password_hash($password, PASSWORD_BCRYPT);

        $stmt->execute(array ( ... ));

 my email here


 if (mail($to, $subject, $message, $headers)) { // Sending email // email_to, subject, body,email_from

            echo 'Thank you for your registration. Check your email, and click on the link to activate your account ';
            exit();

        } else {

            echo'Server failed to sent message, please try again later.';
            exit();

        }

        }  

    } // END of else statement

    exit();

} 

debug($errors);

}

我究竟应该将验证码放在我的代码中......我已经尝试将它放在顶部,但是我收到了错误。未定义的$ responseKey或类似的东西。

 $secretKey = "xxxx";
        $responseKey = $_POST['g-recaptcha-response'];
        $userIP = $_SERVER['REMOTE_ADDR'];

        $url = "https://www.google.com/recaptcha/api/siteverify";
        $response = file_get_contents($url."?secret=".$secretKey."&response=".$responseKey."&remoteIP=".$userIP);
        $data_response = json_decode($response);

        if(isset($data_response->success) AND $data_response==true){

   } else {

   }

和div正确放入我的表单中。我不能确定代码应该放在哪里。

0 个答案:

没有答案