Мне нужно подождать несколько лишних секунд, прежде чем я смогу эффективно отправить сообщение через контактную форму - PullRequest
1 голос
/ 08 мая 2019

Я создал контактную форму, которая использует Google recaptcha (для защиты от спама) для отправки сообщений на мою электронную почту. Теперь, когда я заполняю все поля, установите флажок «Я не робот», а затем попробуйте отправить сообщение «Я не получаю никаких сообщений». Но когда я ждал 3-4 секунды, а затем отправлял сообщения, я получил сообщение на свой адрес электронной почты успешно. Я также проверил свойства 'network' в 'inspect element', и все, кажется, работает нормально. Я также предоставлю код от моего php.

Я пробовал это в разных браузерах (в том числе в режиме инкогнито) и на устройствах, ничего не помогло или, казалось, не давало подсказки для возможного решения этой проблемы.

<?php

    $public_key = "MyPublicKey";
    $private_key = "MyPrivateKey"; 
    $url = "https://www.google.com/recaptcha/api/siteverify"; 


    /* Check if the form has been submitted */
    if(array_key_exists('submit_form',$_POST))
    {
        /* The response given by the form being submitted */
        $response_key = $_POST['g-recaptcha-response'];
        /* Send the data to the API for a response */
        $response = file_get_contents($url.'?secret='.$private_key.'&response='.$response_key.'&remoteip='.$_SERVER['REMOTE_ADDR']);
        /* json decode the response to an object */
        $response = json_decode($response);

        /* if success */
        if($response->success == 1)
        {   
        $name = $_POST['name'];
            $secret = $_POST['MyPrivateKey'];
            $response = $_POST['g-recaptcha-response'];
            $email = $_POST['email'];
            $message = $_POST['message']; 

            $check_list = "Package(s):  ".implode(" ", $_POST['check_list'])."\n";

            $formcontent="From: $name \n $check_list \n Message: $message";
            $recipient = "email@gmail.com";
            $mailheader = "Message from contact form: $email \r\n";
            mail($recipient, $email, $formcontent, $mailheader) or die("Error!");
            echo 'Mail sent!';
        }
        else
        {
            echo 'Error, please try again!';
        }
    }

?>
...