PHP7 et nocaptcha
Résolu/Fermé
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
-
19 avril 2018 à 19:08
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 - 20 avril 2018 à 01:34
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 - 20 avril 2018 à 01:34
Bonjour,
j'ai des formulaires avec le nocaptcha de google (captcha invisible), avec php 5.6 ca marche correctement mais avec php7 rien a faire ca ne valide rien et ca n'envoie pas les données
après des test en php7 sans integrer nocaptcha les formulaires marchant inpec
dont je pense que nocaptcha avec php7 ca pose problème
bien sur étant en hebergement mutualisé je n'ai pas accès à la config sauf via htaccess
quelqu'un aurait il eu ce problème et bien sur aurait la solution?
j'ai des formulaires avec le nocaptcha de google (captcha invisible), avec php 5.6 ca marche correctement mais avec php7 rien a faire ca ne valide rien et ca n'envoie pas les données
après des test en php7 sans integrer nocaptcha les formulaires marchant inpec
dont je pense que nocaptcha avec php7 ca pose problème
bien sur étant en hebergement mutualisé je n'ai pas accès à la config sauf via htaccess
quelqu'un aurait il eu ce problème et bien sur aurait la solution?
A voir également:
- Votre code de réponse utilisateur nocaptcha manque ou est invalide. linkedin
- Code ascii de a - Guide
- Code puk bloqué - Guide
- Code de déverrouillage oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
4 réponses
yg_be
Messages postés
23520
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2025
Ambassadeur
1 578
19 avril 2018 à 21:34
19 avril 2018 à 21:34
bonsoir,
si tu veux de l'aide, n'hésite pas à nous donner de l'information, des messages d'erreur, des extraits de ton code php, tout ce que tu connais et que nous ne connaissons pas.
si tu veux de l'aide, n'hésite pas à nous donner de l'information, des messages d'erreur, des extraits de ton code php, tout ce que tu connais et que nous ne connaissons pas.
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
738
Modifié par animostab le 19/04/2018 à 23:05
Modifié par animostab le 19/04/2018 à 23:05
il n'y a aucun message d'erreur en fait la verification du captcha ne se fait pas et donc les variables POST ne sont pas transmisent il me semble
pour info je suis chez ovh mutualisé et je n'utilise pas de cms
le code html
Le php de verification situé sur avisclient1.php qui marche avec php5.6 mais qui n'est pas traité avec php7
la page se recharge comme si rien n'avais été vérifié par php et sans message d'erreur
En fait ce qui semble poser probleme avec php7 c'est ca
voila j'ai vu que d'autre aussi ont ce problème mais je n'ai pas trouvé de solution pour l'instant
pour info je suis chez ovh mutualisé et je n'utilise pas de cms
le code html
<head> ......... <script> grecaptcha.reset(); function onSubmit(token) { document.getElementById("form1").submit(); } </script> </head> <body> ...... <form action="avisclient-1.php" method="post" id="form1"> <p><label for="pseudo">Prénom/Nom ou pseudo :</label><br> <input type="text" id="pseudo" name="pseudo" value=" "></p> <p><label for="message">Message :</label><br> <textarea name="message" id="message" rows="5" cols="35"></textarea></p> <p><button class="g-recaptcha bouton" data-sitekey="6LcDpDwUAAAAAP7gDa3T_T-A5ufXNgCTp0K0_n9W" data-callback='onSubmit'>Envoyer</button></p><br><br> </form> ..... </body>
Le php de verification situé sur avisclient1.php qui marche avec php5.6 mais qui n'est pas traité avec php7
la page se recharge comme si rien n'avais été vérifié par php et sans message d'erreur
<?php if(!empty($_POST['g-recaptcha-response'])) { $secretKey = 'clé_secrete-du captcha-google-que-je-ne mets-pas-ici'; $response = $_POST['g-recaptcha-response']; $remoteIp = $_SERVER['REMOTE_ADDR']; $reCaptchaValidationUrl = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$response&remoteip=$remoteIp"); $result = json_decode($reCaptchaValidationUrl, TRUE); if($result['success'] == 1) { //le script de connexion a la BDD include ("include/bdovh.inc.php"); $pseudo = strip_tags(mysqli_real_escape_string($link, $_POST['pseudo'])); $message = strip_tags(mysqli_real_escape_string($link, $_POST['message'])); $date = date('Y-m-d') ."\n"; $interdit ="href=(.*)|href|http(.*)|www(.*)|\bcon\b|\bconnard\b|\bsalope\b|\bmerde\b|\bchier\b|\babrutit\b|\benfoiré\b|\bputain\b|\bempafé\b|\bcouille\b|\bbite\b|\bpute\b|\benculé\b|\bprêt\b|\bargent\b|\bcialis\b|\bviagra\b|\bporn\b|\bpharmacy\b|\bbuy\b|\bpenis\b|\bporno\b|\bsuck\b|\bdick\b"; if((!empty($_POST['pseudo'])) && (!empty($_POST['message'])) && !preg_match('#'.$interdit.'#i', $_POST["message"]) && !preg_match('#'.$interdit.'#i', $_POST["pseudo"])) { mysqli_query($link, "INSERT INTO livre_or VALUES('', '" . $pseudo . "','" . $date . "', '" . $message . "')"); $ip = $_SERVER["REMOTE_ADDR"]; $to = 'contact@clownroberto.com' ; $subject = 'commentaire posté' ; $messmail = $message; $messmail1 = $messmail." votre ip est ".$ip; mail($to, $subject, $pseudo, $messmail1); echo '<div id="loaderavis"></div><div id="mauvaisavis"><h2>Votre message a été posté</h2><p>Pour voir votre message</p><a href="avisclient-1.php#avis">Cliquez ici</a><br><br></div>'; } else if ( preg_match('#'.$interdit.'#i', $_POST["message"]) || preg_match('#'.$interdit.'#i', $_POST["pseudo"])) {echo '<div id="loaderavis"></div><div id="mauvaisavis"><h2>Votre message n\'a pas été posté</h2><p>Vous avez posté un lien</p><p>Ou bien</p><p>Votre message ou pseudo contient une injure</p><p><button class="fermeravis">Recommencer</button></p></div>';} else { echo '<div id="loaderavis"></div><div id="mauvaisavis"><h2>Votre message n\'a pas été posté</h2><p>Un champ du formulaire n\'a pas été rempli</p><p><button class="fermeravis">Recommencer</button></p></div>'; } mysqli_close($link); } else { echo '<div id="loaderavis"></div><div id="mauvaisavis"><h2>Vous ne semblez pas humain !</h2><p><button class="fermeravis">Recommencer</button></p></div>'; } } ?>
En fait ce qui semble poser probleme avec php7 c'est ca
$secretKey = 'clé_secrete-du captcha-google-que-je-ne mets-pas-ici'; $response = $_POST['g-recaptcha-response']; $remoteIp = $_SERVER['REMOTE_ADDR']; $reCaptchaValidationUrl = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$response&remoteip=$remoteIp"); $result = json_decode($reCaptchaValidationUrl, TRUE);
voila j'ai vu que d'autre aussi ont ce problème mais je n'ai pas trouvé de solution pour l'instant
yg_be
Messages postés
23520
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2025
1 578
19 avril 2018 à 22:58
19 avril 2018 à 22:58
pas de soucis chez ovh en 7.2 avec ceci:
<script src="https://www.google.com/recaptcha/api.js" async defer></script> <script> function function_TrustMe(token) { document.getElementById("form_TrustMe").submit(); } </script> </head> <form id='form_TrustMe' method="POST" action="wruinv.php"> <button id="trustme" class="g-recaptcha" data-sitekey="pas vraiment secret et pas completement public" data-callback="function_TrustMe"> TrustMe </button> </form>
$captcha_resp=$_POST['g-recaptcha-response']; //your site secret key $secret = 'tres secret'; //get verify response data $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$captcha_resp.'&remoteip='.$_SESSION['yourip']); $responseData = json_decode($verifyResponse);
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
738
Modifié le 19 avril 2018 à 23:08
Modifié le 19 avril 2018 à 23:08
ha si tiens ca me mets une erreur (je suis en https) en php7.0
Warning: file_get_contents() [function.file-get-contents]: SSL: fatal protocol error in /home/clownrob/www/include/contentavisformulaire.php on line 9
Fatal error: Call to undefined function: json_decode() in /home/clownrob/www/include/contentavisformulaire.php on line 10
et en php7.1 la meme erreur plus
Fatal error: Call to undefined function: mysqli_connect() in line 6
bien sur les variables $hote, $user, $pass, $base sont correctement renseignées pour me connecter à la base et aucune erreur en php5.6
Warning: file_get_contents() [function.file-get-contents]: SSL: fatal protocol error in /home/clownrob/www/include/contentavisformulaire.php on line 9
Fatal error: Call to undefined function: json_decode() in /home/clownrob/www/include/contentavisformulaire.php on line 10
et en php7.1 la meme erreur plus
Fatal error: Call to undefined function: mysqli_connect() in line 6
$link = mysqli_connect($hote, $user, $pass, $base);
bien sur les variables $hote, $user, $pass, $base sont correctement renseignées pour me connecter à la base et aucune erreur en php5.6
jordane45
Messages postés
38462
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 avril 2025
4 741
19 avril 2018 à 22:44
19 avril 2018 à 22:44
Bonjour
Qu'as tu dans le error log d'Apache ?
As tu activé le allow_url_fopen dans le php.ini ?
Qu'as tu dans le error log d'Apache ?
As tu activé le allow_url_fopen dans le php.ini ?
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
738
Modifié le 19 avril 2018 à 23:23
Modifié le 19 avril 2018 à 23:23
je ne peux faire cela en local pour test car le captcha google ne fonctionne qu'avec un NDD et ne s'active pas en local (a cause de data-site-key) --> Comme je suis sur un mutualisé ben php.ini je n'ai pas accès et les log apache sur un mutu je sais pas ou trouver ca
ici le data-site-key transmet a google l'id du site et le compare avec l'url et donc NND
ici le data-site-key transmet a google l'id du site et le compare avec l'url et donc NND
<button class="g-recaptcha bouton" data-sitekey="6LcDpDwUAAAAAP7gDa3T_T-A5ufXNgCTp0K0_n9W" data-callback='onSubmit'>Envoyer</button>
jordane45
Messages postés
38462
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 avril 2025
4 741
19 avril 2018 à 23:25
19 avril 2018 à 23:25
Dans un htaccess :
php_value allow_url_fopen On
php_value allow_url_fopen On
jordane45
Messages postés
38462
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 avril 2025
4 741
19 avril 2018 à 23:34
19 avril 2018 à 23:34
Et si tu testes avec curl au lieu du file_get_contents ?
Un truc du genre :
Un truc du genre :
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify', CURLOPT_POST => 1, CURLOPT_POSTFIELDS => array( 'secret' => $secretKey, 'response' => $captcha ) )); $response = curl_exec($curl); curl_close($curl)
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
738
19 avril 2018 à 23:39
19 avril 2018 à 23:39
Bon j'ai fais un phpinfo() et allow_url_fopen est activé en php5.6 et quand je passe en php7 (via htaccess) phpinfo() m'affiche une version 4.4.4.9 de php la je comprend plus rien
voici ce que je mets dans le htaccess
SetEnv PHP_VER 5_6 (htaccess php5.6)
SetEnv PHP_VER 7_0 (htaccess php7)
voici ce que je mets dans le htaccess
SetEnv PHP_VER 5_6 (htaccess php5.6)
SetEnv PHP_VER 7_0 (htaccess php7)
jordane45
Messages postés
38462
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 avril 2025
4 741
19 avril 2018 à 23:51
19 avril 2018 à 23:51
Qui est ton hébergeur
et est-ce qu'il prend en compte la version PHP 7
et est-ce qu'il prend en compte la version PHP 7