Там же написано "сделайте GET запрос" с тремя параметрами, которые описаны в таблице ниже.
По поводу "пользователь может пройти проверку без" - потому что вы должны написать код в серверном скрипте, которые будет делать вышеуказанный GET запрос и при неверном ответе "отфутболивать" пользователя. Пока вы не сделали этот запрос и не проверили ответ, ваша recaptcha - просто картинка.
$g_recaptcha_response = trim($_POST['g_recaptcha_response']); // то, что пришло в POST Запросе
$remote_ip = !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; // если используется nginx, то берем реальный IP пользователя
$secret = '__YOUR_SECRET_KEY__'; // ваш секретный ключ
$response = file_get_contents("http://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$g_recaptcha_response}&remoteip={$remote_ip}");
$response = json_decode($response, true);
$is_valid = isset($response['success']) && $response['success'];
if ($is_valid) {
// выполняем действия дальше
} else {
// проверка не прошла
}
Ilya Korablev: ну во-первых, этот код должен отрабатывать тогда, когда приходит POST Запрос (т.е. пользователь посылает форму методом POST). Во-вторых, вы ничего не написали в разделах "проверка прошла" и "проверка не прошла".