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.