diff --git a/infos.xml b/infos.xml index c08b1fe..4aa1f0b 100644 --- a/infos.xml +++ b/infos.xml @@ -6,5 +6,5 @@ 12/12/2020 https://geekborg.blogspot.com - + site \ No newline at end of file diff --git a/plxHCaptcha.php b/plxHCaptcha.php index a035e83..86ba96b 100644 --- a/plxHCaptcha.php +++ b/plxHCaptcha.php @@ -1,4 +1,4 @@ -setConfigProfil(PROFIL_ADMIN, PROFIL_MANAGER); # Ajouts des hooks - $this->addHook('plxShowCapchaQ', 'plxShowCapchaQ'); $this->addHook('plxShowCapchaR', 'plxShowCapchaR'); $this->addHook('plxMotorNewCommentaire', 'plxMotorNewCommentaire'); $this->addHook('ThemeEndHead', 'ThemeEndHead'); + + $_SESSION['capcha'] = ''; + if (isset($_POST['h-captcha-response'])) { // Ce code est mis ici pour que ça fonctionne dans la page de contact + $this->json = $this->hCaptchaResponse(); + $_SESSION['capcha'] = ($this->json['success'] ? '' : sha1(uniqid(rand(), true))); + } + } + + private function hCaptchaResponse() { + $ch = curl_init("https://hcaptcha.com/siteverify"); + curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, array('secret' => $this->getParam('Secretkey'), 'response' => $_POST['h-captcha-response'])); + $json = json_decode(curl_exec($ch), true); + curl_close($ch); + return $json; } /** - * Méthode qui affiche le capcha + * Méthode qui affiche le capcha * * @return stdio - * @author Stéphane F. Abdellah B + * @author Stéphane F. Abdellah B * */ - public function plxShowCapchaQ() { //'.PLX_PLUGINS.' - $_SESSION['capcha'] = 'foobar'; + public function plxShowCapchaQ() { $_SESSION['capcha_token'] = sha1(uniqid(rand(), true)); - echo "\n"; // on cache le champ réponse du thème - echo '
'; // élément hCaptcha + echo "\n"; // on cache le champ réponse du thème + echo '
'; // élément hCaptcha echo ''; echo ''; # pour interrompre la fonction CapchaQ de plxShow } /** - * Méthode qui encode le capcha en sha1 pour comparaison + * Méthode qui encode le capcha en sha1 pour comparaison * * @return stdio - * @author Stéphane F. Abdellah B + * @author Stéphane F. Abdellah B * */ - public function plxMotorNewCommentaire() { // La méthode se lance quand le commentaire est posté - $ch = curl_init("https://hcaptcha.com/siteverify"); - curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, array('secret' => $this->getParam('Secretkey'), 'response' => $_POST['h-captcha-response'])); - $json = json_decode(curl_exec($ch), true); - curl_close($ch); - if ($json['success']) { - $_SESSION["capcha"] = sha1('foobar'); - } else { - $_SESSION["capcha"] = sha1(uniqid(rand(), true)); + public function plxMotorNewCommentaire() { // La méthode se lance quand le commentaire est posté + if (isset($_POST['h-captcha-response'])) { + if ($this->json['success']) { + $plxMotor = plxMotor::getInstance(); + $_SESSION['capcha'] = ($plxMotor->mode == 'article' ? sha1('') : sha1(uniqid(rand(), true))); + } else { + $_SESSION['capcha'] = sha1(uniqid(rand(), true)); + } } } /** - * Méthode qui retourne la réponse du capcha // obsolète + * Méthode qui retourne la réponse du capcha // obsolète * * @return stdio - * @author Stéphane F. + * @author Stéphane F. * */ public function plxShowCapchaR() { echo ''; # pour interrompre la fonction CapchaR de plxShow } /** - * Méthode qui integre le script de chez Hcaptcha en et + * Méthode qui integre le script de chez Hcaptcha en et * * @return stdio - * @author Stéphane F. Abdellah B + * @author Stéphane F. Abdellah B * */ public function ThemeEndHead() { echo "\n\t\n"; } } - ?> \ No newline at end of file