7884 sujets

Développement web côté serveur, CMS

Bonsoir à tous !

Je débute en php, et j'ai actuellement un souci.

J'ai cherché sur différents forums, sur google, mais je n'ai pas trouvé de réponse qui convienne à mon problème.

En effet, j'ai une page php "protégée" (oui les guillemets parce que c'est juste pour faire une mini protection, pas non plus de chiffrement, md5 etc...) par un mot de passe.

C'est une seule et même page qiu affiche un contenu donné si le mot de passe et le recaptcha sont bons.

En local, avec Easyphp 5.2.10, ça fonctionne très bien. Seulement, sur le serveur free.fr (hébergement gratuit), ça ne fonctionne pas : Quelque soit la valeur du mot de passe que j'entre dans le champ, il m'indique "mot de passe erroné". En plus, si je mets un captcha incorrect, il n'affiche pas l'erreur "captcha incorrect".

C'est comme si les variables "ne se transmettaient pas" lorsque je clique sur le bouton final...

Voici mon code :


<?php
$head='
<style>
a {text-decoration:none}
a:hover{text-decoration:underline}
</style>

<script type="text/javascript">
var RecaptchaOptions={
lang: \'fr\',
theme: \'red\'
};
</script>';

require_once('files/recaptcha/recaptchalib.php');

// Get a key from  https://www.google.com/recaptcha/admin/create
 
$publickey = "****";
$privatekey = "****";

# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = null;

if (isset($_POST['code']) and isset($_POST['recaptcha_response_field']))
{
	$resp = recaptcha_check_answer ($privatekey,
                                        $_SERVER['REMOTE_ADDR'],
                                        $_POST['recaptcha_challenge_field'],
                                        $_POST['recaptcha_response_field']);
	if ($_POST['code']=="aa" and $resp->is_valid)
	{
	?>
    
   Identification reussie

    <?php
	} else {$error = $resp->error;
		?>
        <div style="width:918px; margin:auto;text-align:center; margin-top:30px">	L'accès à cette ressource nécessite un code. Si vous désirez l'obtenir, <a href="javascript:show_contact()">contactez</a> la personne concernée.</div>

<div style="margin:auto; text-align:center; padding-bottom:30px;margin-top:30px;">
		<br /><span style="color:red">
		Code ou <em>captcha</em> erroné <br/>
		Entrez le code à nouveau<br />&nbsp;</span>
		<form action="index.php?p=espacepresse" method="post">
		Code d'acc&egrave;s:
		<input type="password" name="code">
         <div style="width:300px; margin:auto; margin-top:30px; margin-bottom:20px;"><?php echo recaptcha_get_html($publickey,$error);?></div>

		<input type="submit">
		</form>
        </div>
		 
<?php
	}
	
} else {
	?>
    <div style="text-align:center; margin-top:30px;">	L'accès à cette ressource nécessite un code. Si vous désirez l'obtenir, <a href="javascript:show_contact()">contactez</a> la personne concernée.</div>

<div style="margin:auto; text-align:center; padding-bottom:30px;margin-top:30px;">
	<form action="" method="post">
	Code d'acc&egrave;s:
	<input type="password" name="code">
    <div style="width:300px; margin:auto; margin-top:30px; margin-bottom:20px;"><?php echo recaptcha_get_html($publickey);?></div>

	<input type="submit">
	</form>
    </div>
<?php 
}
?>




Je vous remercie par avance pour le temps que vous passerez à me lire (et à me répondre Smiley cligne )
Modifié par thesymbiote (15 Jul 2010 - 21:54)
En continuant sans relâche j'ai trouvé un truc qui fonctionne.
Pour info donc, sous free, remplacer le "$resp->is_valid"

par "$resp" tout court.

en regardant dans la librairie fournie par recaptcha je me suis rendu compte que c'était un booléen. Donc pourquoi appeler is_valid ?

En tout cas tous les cas fonctionnent actuellement.

Merci quand même à ceux qui m'ont lu !