Bonjour,
J'essaye depuis hier d'installer ReCaptcha sur mon site en local avant de l'installer en live sur le site du Collectif "Ressources".
J'ai suivi votre tutoriel et j'ai obtenu les clefs publics et privées pour ce site. Comme toutes les clefs fonctionnent en local, j'ai voulu faire l'essai d'abord dans mon environnement de test.
J'ai téléchargé le plugin.
J'ai ajouté le bout de code côté client au niveau du formulaire et côté serveur dans la page PHP qui gère la vérification.
Rien n'y fait. Dès que j'introduis le code côté client ma page s'affiche de façon incomplète sans mise en forme ni affichage de l'image du recaptcha.
Ce site est construit à partir d'une fichier index.php et d'un .htaccess et d'une règle de réécriture comme ceci :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L]
J'utilise un template et les pages sont ensuites insérées comme ceci :
<?php
/* Initialisation des constantes */
define("DS", "/");
define("LOCALHOST", "http://".$_SERVER'HTTP_HOST']);
define("WEBROOT", LOCALHOST.dirname($_SERVER'SCRIPT_NAME'])."/");
/* Si aucune valeur n'est passé par l'URL, */
/* rediriger vers la page index */
if(!isset($_GET"p"])){
$_GET"p"]="index";
}
/* Si une valeur est passée et que le fichier n'existe pas, */
/* rediriger vers une page 404 */
if(!file_exists("content/".$_GET"p"].".php")){
$_GET"p"]="404";
}
/* Démarrer la séquence de blocage d'envoie des données */
ob_start();
/* Inclusion de la page */
include "content/".$_GET"p"].".php";
/* Les données sont stockées dans la variable $content */
$content = ob_get_contents();
ob_end_clean();
/* Inclusion du template */
include "template.php";
?>
Toutes mes pages sont dans le répertoire page à l'intérieur du répertoire content. La librairie recaptchalib.php est dans le répertoire captcha dans le répertoire page. J'ai essayé avec un .htaccess dans le répertoire captcha en mettant un RewriteEngine off. Pas de changement.
Côté client, le formulaire avec le code recaptcha donne ceci :
<form id="envoyerform" method="post" action="http://collectifressources.com/page/envoyerform">
<fieldset>
<p class="nofirst">
<label for="nom">Votre nom</label><br />
<input type="text" name="nom" id="nom" maxlength="30" size="30" tabindex="10" value="" />
<span class="notification_form">au moins deux caractères</span>
</p>
<p>
<label for="mel">Votre courriel</label><br />
<input type="text" name="mel" id="mel" maxlength="30" size="30" tabindex="30" value="" />
<span class="notification_form">adresse mel non valide</span>
</p>
</fieldset>
<fieldset>
<label for="message">Votre message</label><br />
<textarea name="commentaire" id="commentaire" rows="3" cols="80" tabindex="80" onfocus="if(this.value=='Tapez votre texte ici.'){this.value='';}">Tapez votre texte ici.</textarea>
</fieldset>
<p class="submit">
<?php
require_once('captcha/recaptchalib.php');
$publickey = "ici j'ai ma clef publique";
echo recaptcha_get_html($publickey);
?>
<input type="submit" name="envoye" value="Envoyer" class="onsubmit" />
</p>
</form>
Je ne parle pas du côté serveur pour l'instant car je n'en suis pas là. La partie serveur sera placé en tête du fichier envoyerform.php.
Je n'arrive pas à comprendre d'où vient le problème.
Votre assistance sera grandement appréciée.
Cordialement.
je ne vois pas de div recaptcha
essaie de remplacer
<?php
require_once('captcha/recaptchalib.php');
$publickey = "ici j'ai ma clef publique";
echo recaptcha_get_html($publickey);
?>
par ça
<?php
require_once('captcha/recaptchalib.php');
$publickey = "ici j'ai ma clef publique";
?>
<div id="recaptcha_div"><?= recaptcha_get_html($pulickey);?></div>
tiens nous au courrant
Bonjour,
Je reviens vers vous tardivement car j'ai été pris par d'autres priorités depuis. J'ai à nouveau du temps. J'ai appliqué votre changement mais rien n'y fait. Non seulement l'affichage recaptcha ne se fait pas mais en plus le template ne s'affiche pas. Dès que j'enlève
<?php
require_once('captcha/recaptchalib.php');
$publickey = "ici j'ai ma clef publique";
?>
<div id="recaptcha_div"><?= recaptcha_get_html($pulickey);?></div>
ces lignes de mon code tout refonctionne.
Une idée ?
Cordialement.
Bonjour,
Regardez dans le fichier "error.log" de votre apache2, ou de votre projet (Suivant la configuration le fichier peu changer.)
Cordialement,
Kaotic.
Bonsoir Kaotic,
Bonne pioche. Le fichier recaptchalib.php était en lectiure seul. En changeant les permissions j'ai pu avoir l'affichage du recaptcha. C'est une première étape. Il me reste maintenant à installer la partie serveur pour la vérification et le réaffichage selon. Je considère que cette question est résolue. ;)
Cordialement.
Bonjour Kaotic,
J'ai besoin de refaire les tests car cela date un peu maintenant et je n'ai pas progressé sur ce problème. Je m'y remets lundi prochain. En tout cas merci pour me relancer là-dessus. Bon week-end et je reviens vers vous en début de semaine prochaine.
Cordialement.