Voila, j'ai un guestbook sur lycos, mais comme il se rempli maintenant quotidiennement de pubs et de messages générés par robots inutiles, j'ai décidé de créer un CAPTCHA (image de vérification générée).
J'ai donc changé de serveur pour un gratuit qui offre la librairie GD (nécessaire pour l'image).
J'ai donc transféré la BD, et les fichiers php (en prenant soin de modifier l'addresse des liens pour coincider avec le nouveau serveur).
Mais voila ce qui arrive, mon captcha fonctionne a merveille, mais le submit n'envoie plus les données du formulaire à la page php qui valide et ajoute le message a la bd. Le code est EXACTEMENT le même que sur lycos (mis a part les addresse) alors je ne vois pas pourquoi ca ne fonctionne pas... le forum de mon nouveau serveur n'arrive pas a répondre on dirais...
voici le code, qui semble ne pas avoir d'erreur:
Formulaire:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <form name="formulaire" action="http://fragments.redby.info/guestbook/posterGuestbook.php" method="post"> <table bgcolor="303030"> <tr bgcolor="black"><td>Nom:</td><td colspan="2"><input type="text" size="30" name="nom"></td></tr> <tr bgcolor="black"><td>E-Mail:</td><td colspan="2"><input type="text" size="30" name="email"></td></tr> <tr bgcolor="black"><td>Origine:</td><td colspan="2"><input type=""text" size="30" name="origine"></td></tr> <tr bgcolor="black"><td>Message:</td><td colspan="2"><textarea rows='5' cols='30' name="message"></textarea></td></tr> <tr bgcolor="black"><td>Vérification:</td><td><input type="text" size="15" name="codeimage"></td><td><img src="http://fragments.redby.info/guestbook/image.php"></td></tr> </table> <input type="button" onClick="valider()" value="Soumettre"> <p></form> <script language="javascript"> function valider(){ if(document.formulaire.nom.value == "" || document.formulaire.message.value == ""){ alert("Vous devez impérativement remplir les champs 'Nom' et 'Message' pour poster dans le Guestbook."); } else{document.formulaire.submit();} } </script>
et la page qui recoit:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 //Remplace les '\n' par des "<br>" dans le message $mess = eregi_replace("[\n]", "<br>", $message); //récupère l'addresse du client if(isset($_SERVER["REMOTE_ADDR"])) { // Si on peut déterminer l'adresse IP $ip_en_cours = $_SERVER["REMOTE_ADDR"]; } else { // sinon $ip_en_cours = "Non identifiable"; } if (eregi("http://", $mess)) { echo "on accepte plus de liens, depuis le spam"; $req = "INSERT INTO addressesLouches (adresseIP, date) VALUES ('$ip_en_cours', NOW());"; $result = mysql_query($req); mysql_close(); } else if(eregi(".com", $mess)){ echo "on accepte plus de liens, depuis le spam"; $req = "INSERT INTO addressesLouches (adresseIP, date) VALUES ('$ip_en_cours', NOW());"; $result = mysql_query($req); mysql_close(); } else if (strlen($mess)<5){ echo "votre message doit contenir au moins 6 caractère<br>"; echo $mess; $req = "INSERT INTO addressesLouches (adresseIP, date) VALUES ('$ip_en_cours', NOW());"; $result = mysql_query($req); mysql_close(); } // si le code ne correspond pas à celui déjà stocké dans la variable de session après l'avoir hashé avec md5() comme l'autre else if(md5($codeimage) != $_SESSION['code_image']){ // on affiche une erreur echo "vous n'avez pas entré le bon code de validation, veuillez réessayer<p>"; echo "you entered a wrong validation code, please try again"; } else{ //Affichage normal de la page
Le submit du formulaire donne ceci comme message:
"votre message doit contenir au moins 6 caractère"
j'ai essayé de remplacer la page du formulaire par ce qui suit, avec le même résultat...
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <form name="formulaire" action="http://fragments.redby.info/guestbook/posterGuestbook.php" method="post"> <table bgcolor="303030"> <tr bgcolor="black"><td>Nom:</td><td colspan="2"><input type="text" size="30" name="nom"></td></tr> <tr bgcolor="black"><td>E-Mail:</td><td colspan="2"><input type="text" size="30" name="email"></td></tr> <tr bgcolor="black"><td>Origine:</td><td colspan="2"><input type=""text" size="30" name="origine"></td></tr> <tr bgcolor="black"><td>Message:</td><td colspan="2"><textarea rows='5' cols='30' name="message"></textarea></td></tr> <tr bgcolor="black"><td>Vérification:</td><td><input type="text" size="7" name="codeimage"></td><td><img src="http://fragments.redby.info/guestbook/image.php"></td></tr> </table> <input type="submit" value="Soumettre"> <p></form>
dans les deux cas, l'adresse de la page appelée est ceci:
http://fragments.redby.info/guestboo.../guestbook.php
au lieu de:
http://fragments.redby.info/guestboo...deimage=lecode
j'aurais vraiment besoin d'aide, car mon guestbook se rempli encore de merdes a tous les jours et personne ne semble avoir d'idées...
si le problème provient du serveur, est-ce que quelqu'un connais un autre serveur gratuit offrant un interpréteur php, un bd mysql et la librairie gd?
Partager