En utilisant le code ci-dessous, je veux une page, où quand il est d'abord chargé, il demande la vérification recaptcha, puis après, (alors que la session est valide) il ne l'exige pas à nouveau. Lorsque je clique sur Open Admin Tools après avoir vérifié avec recaptcha, il montre ce qu'il est censé faire; il affiche recaptcha complété, options: mais quand je clique sur test il va juste me demander de compléter la recaptcha. Comment est-ce que je le fais de sorte qu'il ne fait qu'une fois par session (valide)?Exiger Recaptcha seulement une fois par session
<html>
<head>
<title>Admin Settings Page</title>
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
<body>
<?php
if (!isset($_POST['g-recaptcha-response'])){
?>
<p>Please successfully complete the reCaptcha below to access the page.</p>
<form action="" method="post">
<div class="g-recaptcha" data-sitekey="sitekey"></div>
<input type="submit" value="Open Admin Tools" />
</form>
<?php
} else {
$captcha;
if (isset($_POST['g-recaptcha-response'])){
$captcha=$_POST['g-recaptcha-response'];
}
if (!isset($captcha))
$captcha = false;
if (!$captcha){
echo '<h2>Please check the the captcha form.</h2>';
exit;
}
$secretKey = "secretkey";
$ip = $_SERVER['REMOTE_ADDR'];
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
$responseKeys = json_decode($response,true);
if (intval($responseKeys["success"]) !== 1) {
echo '<h2>reCAPTCHA expired</h2>';
} else {
?>
<p>Recaptcha Completed, Options:</p>
<form action="" method="post">
<input type="submit" value="test" />
</form>
<?php
}
}
?>
<br />
</body>
</html>
J'ai une solution temporaire, j'utilise changer dynamiquement le contenu via javascript, mais je voudrais encore savoir s'il est possible de faire ce que j'ai demandé ci-dessus.