Я добавил reCAPTCHA в свою регистрационную форму, и когда я протестировал страницу, я заметил, что все еще могу зарегистрировать новую учетную запись без проверки с помощью reCAPTCHA. Когда я оставляю одно из текстовых полей пустым, я получаю «Пожалуйста, убедитесь, что вы человек». Это сообщение должно появиться, когда пользователь заполняет форму и забывает проверить. Я пробовал много разных операторов if, предоставленных переполнением стека и другими веб-сайтами, и проблемы до сих пор не решены. Я также попытался возиться с моей формой с помощью «метода» и «действия».
Вот моя регистрационная форма
<?php include('server.php') ?>
<!DOCTYPE html>
<html>
<head>
<title>Register for Redchan</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
<body>
<a href="index.php" title="Home"><img alt="4chan" src="/image/pepe-popcorn.gif" width="300" height="120"></a>
<div class="header">
<h2>Register for Redchan</h2>
</div>
<?php
//Check for form submission
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
//Get form submission data
$username = $_POST['username'];
$email = $_POST['email'];
//Set verification information for the Google reCAPTCHA API
$secretKey = "----------------------------------";
$responseKey = $_POST['g-recaptcha-response'];
$userIP = $_SERVER['REMOTE_ADDR'];
//Call Google reCAPTCHA API
$url = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$responseKey&remoteip=$userIP";
$response = file_get_contents($url);
//Decode API response and generate response
$verification = json_decode($response, true);
if ($verification['success'])
echo "<p>Verification success!</p>";
else
echo "<p>Please verify that you are a Human.</p>";
}
?>
<form method="post" action="register.php">
<?php include('errors.php'); ?>
<div class="input-group">
<label>Username</label>
<input type="text" name="username" value="<?php echo $username; ?>">
</div>
<div class="input-group">
<label>Email</label>
<input type="email" name="email" value="<?php echo $email; ?>">
</div>
<div class="input-group">
<label>Password</label>
<input type="password" name="password_1">
</div>
<div class="input-group">
<label>Confirm password</label>
<input type="password" name="password_2">
</div>
<div class="g-recaptcha" data-sitekey="-------------------------------"></div>
<div class="input-group">
<button type="submit" class="btn" name="reg_user">Register</button>
</div>
<p>
Already a member? <a href="login.php">Sign in</a>
</p>
</form>
</body>
</html>