Подтверждение Google reCAPTCHA

Я новичок в веб-разработке (или разработке), и я использую Laravel (если это имеет какое-то значение). У меня есть reCAPTCHA в моей форме. Это работает, но теперь я должен проверить ключевое слово пользователя в recaptcha.

Документация: https://developers.google.com/recaptcha/docs/verify Звучит просто, но почему-то я не могу написать строки кода для проверки. Я искал несколько примеров, но они не для Laravel, а для чистого PHP, и я не видел, где это ‘https://www.google.com/recaptcha/api/siteverify?secret=your_secret&ответ = response_string&remoteip = user_ip_addressURL, используемый в примерах.

Мой контроллер это:

public function postMessage() {

require_once('recaptchalib.php');
$privatekey = "MY_PRIVATE_KEY";

?????

// this should be executed only after validation
DB::table('messages')->insert(['name' => Input::get('name'),
'email' => Input::get('email'),
'message' => Input::get('message'),
'datetime' => \Carbon\Carbon::now()->toDateTimeString()]);

Поэтому, пожалуйста, объясните мне, как я могу получить объект JSON с ответом, или что я должен написать вместо ?????

0

Решение

Ну, в конце концов я смог найти решение сам:

public function postMessage() {

$secret   = '7LdL3_4SBAAAAKe5iE-RWUya-nD6ZT7_NnsjjOzc';
$response = Input::get('g-recaptcha-response');
$url      = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$response;
$jsonObj  = file_get_contents($url);
$json     = json_decode($jsonObj, true);

if ($json['success']==true) {

DB::table('messages')->insert(['name' => Input::get('name'),
'email' => Input::get('email'),
'message' => Input::get('message'),
'datetime' => \Carbon\Carbon::now()->toDateTimeString()]);

return Redirect::route('contact')->with('okmessage', 'Ďakujeme. Vaša správa bola odoslaná');

} else {return Redirect::route('contact')->with('errormessage', 'Chyba! Zaškrtnite "Nie som robot" a zadajte správny kód.');
}

}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]