validation code anti-spam

validation code anti-spam - PHP - Programmation

Marsh Posté le 04-03-2008 à 11:09:56    

Bonjour,
 
J'ai un formulaire dans lequel je souhaiterais inclure un code de vérification anti-spam.
 
1) J'ai essayé d'utiliser cryptographp_1.4, mais ça ne fonctionne pas, et je ne m'en sors pas. A la demande d'affichage du formulaire, il me met des msgs d'erreurs :
Warning: main(cryptographp.fct.php) [function.main]: failed to open stream: No such file or directory in /mnt/146/sda/1/4/th11/contact_byc.php on line 3
 
Warning: main() [function.include]: Failed opening 'cryptographp.fct.php' for inclusion (include_path='/mnt/146/sda/1/4/th11/include:.:/usr/php4/lib/php') in /mnt/146/sda/1/4/th11/contact_byc.php on line 3

 
et me dit que le message a bien été envoyé. Effectivement, je reçois un msg vide ds ma bal !!!!
 
2) J'essaye donc de créer moi-même une vérification .....
La page de saisie du commentaire s'ouvre donc, avec les champs à remplir (adr email, nom, commentaire), et s'affiche un code numérique qui n'est autre que l'heure, minute, seconde ($heure_x) du système au format uniquement numérique sur 8 caractères.
Une case se trouve à côté où la personne doit recopier la valeur de $heure_x.
Si la saisie est = à $heure_x, il y a inscription ds la base (add.php), sinon, il y a boucle sur le formulaire.
 
Mon problème est que je n'arrive pas à faire la vérification ......
 
Mon formulaire :
 

Code :
  1. <form method="POST" action="add.php" value="envoyer" name="soumettre">
  2. <p><u><b>Votre Nom :</b></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <textarea cols="40" name="nom" id="Nom" rows="1"></textarea><br>
  3. <u><b>Adresse mail :</b></u>&nbsp;&nbsp;&nbsp; <textarea cols="40" name="mail" id="Mail" rows="1"></textarea></p>
  4. <center>
  5. <p><u><b>Votre commentaire :</b></u><p><textarea cols="65" name="message" id="Message" rows="8" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" ></textarea><p>
  6. <?php
  7. $heure_x = date("His" );
  8. echo "Code ='$heure_x' ";
  9. ?>
  10. <textarea cols="8" name="heure_x" id="heure_x" rows="1" ></textarea><p>
  11. <input type="button" value="Aperçu" onclick="TAinsert;OpenPreview();" style="text-decoration: none">
  12. <input type="submit" name="preview" value="Valider">
  13. <input type="reset" value="Effacer">
  14. <!-- permet de passer id_reco au script suivant (add.php) -->
  15. <input type="hidden" name="id_reco" id="id_reco" value="<?php echo $_GET['id_reco']; ?>"><p>
  16. <a href="menu.php"><img src="annuler.JPG" border="0"></a>
  17. </form>


 
Merci pour votre aide !
 

Reply

Marsh Posté le 04-03-2008 à 11:09:56   

Reply

Marsh Posté le 04-03-2008 à 11:31:46    

t671 a écrit :

Bonjour,

 

J'ai un formulaire dans lequel je souhaiterais inclure un code de vérification anti-spam.

 

1) J'ai essayé d'utiliser cryptographp_1.4, mais ça ne fonctionne pas, et je ne m'en sors pas. A la demande d'affichage du formulaire, il me met des msgs d'erreurs :
Warning: main(cryptographp.fct.php) [function.main]: failed to open stream: No such file or directory in /mnt/146/sda/1/4/th11/contact_byc.php on line 3

 

Warning: main() [function.include]: Failed opening 'cryptographp.fct.php' for inclusion (include_path='/mnt/146/sda/1/4/th11/include:.:/usr/php4/lib/php') in /mnt/146/sda/1/4/th11/contact_byc.php on line 3

 

et me dit que le message a bien été envoyé. Effectivement, je reçois un msg vide ds ma bal !!!!

 

Le message est clair, tu essaies d'inclure un fichier qui n'existe pas - pas à l'endroit où tu dis à php qu'il est, en tout cas.


Message édité par skeye le 04-03-2008 à 11:32:16

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 04-03-2008 à 11:50:51    

Merci skeye,
 
Si je corrige l'accès, j'ai ça :
 
Warning: session_start() [function.session-start]: open(/mnt/146/sda/1/4/th11/sessions/sess_8617018a5c406f1e71b9324b34b6b24b, O_RDWR) failed: No such file or directory (2) in /mnt/146/sda/1/4/th11/crypt/cryptographp.fct.php on line 14
 
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/146/sda/1/4/th11/crypt/cryptographp.fct.php:14) in /mnt/146/sda/1/4/th11/crypt/cryptographp.fct.php on line 14
 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/146/sda/1/4/th11/crypt/cryptographp.fct.php:14) in /mnt/146/sda/1/4/th11/crypt/cryptographp.fct.php on line 14
 
Votre message a été envoyé.
Envoyer un autre message...  
Warning: Unknown(): open(/mnt/146/sda/1/4/th11/sessions/sess_8617018a5c406f1e71b9324b34b6b24b, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
 
Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/146/sda/1/4/th11/sessions) in Unknown on line 0

 
?????? Ca veut dire quoi ????
 
 
Et pour le script que j'essaye de créer, tu en penses quoi ?
 

Reply

Marsh Posté le 04-03-2008 à 11:53:46    

il doit y avoir un truc à faire chez ton hébergeur pour permettre l'utilisation de sessions, genre créer le répertoire qui va bien...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 04-03-2008 à 12:04:52    

skeye a écrit :

il doit y avoir un truc à faire chez ton hébergeur pour permettre l'utilisation de sessions, genre créer le répertoire qui va bien...


 
Le site est hébergé chez Free, le chmod est 777.
 
Je vois pas ce que je peux faire de plus ......

Reply

Marsh Posté le 04-03-2008 à 12:09:09    

t671 a écrit :


 
Le site est hébergé chez Free, le chmod est 777.
 
Je vois pas ce que je peux faire de plus ......


il y a un répertoire sessions dans ton arborescence?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 04-03-2008 à 13:26:28    

skeye a écrit :


il y a un répertoire sessions dans ton arborescence?


 
Non !
 

Reply

Marsh Posté le 04-03-2008 à 13:27:00    

bah crée le...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 04-03-2008 à 13:28:09    

skeye a écrit :

bah crée le...


 
Et je met quoi dedans ???

Reply

Marsh Posté le 04-03-2008 à 13:28:34    

rien, il mettra tout seul.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 04-03-2008 à 13:28:34   

Reply

Marsh Posté le 04-03-2008 à 13:46:43    

OK !!!!!
J'ai plus de message d'erreur, mais par contre, ça m'envoie automatiquement un email sans passer par le formulaire !!!???
 
Mon fichier contact_byc.php :
 

Code :
  1. <?php
  2.       $cryptinstall="../../../crypt/cryptographp.fct.php";include
  3.       $cryptinstall;
  4. ?>
  5. <?php
  6. // Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
  7. $email_webmaster = "t14@libertysurf.fr";
  8. // Rajout alphega: Dans cette ligne remplacez "example.com" par le nom de votre site. Utile si vous avez plusieurs formulaires.
  9. $titre_cache = "Depuis le site example.com: ";
  10. // === traitement des données du formulaire  
  11. if (isset($_POST["envoyer"])){
  12. // le formulaire a été soumis
  13. $etat = "erreur";
  14. // Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
  15. // --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
  16. if (isset($_POST["email_expediteur"]))
  17.       {  $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));}
  18. if(isset($_POST["titre"]))
  19.       {  $_POST["titre"]=trim(stripslashes($_POST["titre"]));}
  20. if(isset($_POST["message"]))
  21.       {  $_POST["message"]=trim(stripslashes($_POST["message"]));}
  22. // --- test de la validité des champs saisis ---
  23. if (empty($_POST["email_expediteur"])) {
  24. // il manque l'email de l'expéditeur
  25. $erreur="Saisissez votre adresse email...";}
  26. elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){
  27. // l'adresse e-mail n'est pas valide
  28. $erreur="Votre adresse e-mail n'est pas valide...";}
  29. elseif (empty($_POST["message"])) {
  30. // le message est vide
  31. $erreur="Saisissez un message...";}
  32. elseif (empty($_POST["code"])) {
  33. // le code n'est pas saisi
  34. $erreur="Saisissez le code de verification...";}
  35. else {
  36. // --- Vérification de la validité du code captcha ---
  37. if (chk_crypt($_POST['code']))
  38. // --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
  39. $etat="ok";
  40. // --- Le code captcha n'est pas valide ---
  41. else $erreur="Code de verification non valide ...";}}else {
  42. // --- le formulaire n'a pas été soumis ---
  43. $etat="attente";}
  44. // === fin de traitement des données du formulaire  
  45. ?>
  46. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  47. <html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
  48. <head>
  49. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  50. <title>Formulaire de contact</title>
  51. </head>
  52. <body>
  53. <h1>Contacter le webmaster</h1>
  54. <?php
  55. if ($etat!="ok" ){// le formulaire n'a pas été soumis, ou soumis avec une erreur
  56. if ($etat=="erreur" ){//le formulaire a été soumis avec une erreur
  57. echo "<p><strong>".$erreur."</strong></p>\n";// afficher le message d'erreur}
  58. ?>
  59. <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>?<?php echo SID; ?>"><p>
  60. <label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br />
  61. <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="&lt;?phpif (!empty($_POST[&quot;email_expediteur&quot;])) {//  
  62.       l'adresse email de l'expéditeur a été saisie: la réafficherecho
  63.       htmlspecialchars($_POST[&quot;email_expediteur&quot;],ENT_QUOTES);}?&gt;"?>" /></p><p>
  64.   <label for="titre">Titre de message (facultatif):</label><br />
  65. <input type="text" size="40" name="titre" id="titre" value="&lt;?phpif (!empty($_POST[&quot;titre&quot;]))
  66.       {// le titre du message a été saisi: le réafficherecho  
  67.       htmlspecialchars($_POST[&quot;titre&quot;],ENT_QUOTES);}?&gt;"?>" /></p><p>
  68.   <label for="message">Message (obligatoire):</label><br />
  69.   <textarea name="message" id="message" cols="40" rows="5">
  70. <?php
  71. if (isset($_POST["message"])) {// le message a été saisi: le réafficher
  72. echo htmlspecialchars($_POST["message"],ENT_QUOTES);}
  73. ?>
  74. </textarea></p>
  75. <?php
  76. dsp_crypt(0,1); ?><p>
  77.  <input type="text" name="code" /></p><p>
  78.  <input type="submit" name="envoyer" value="Envoyer" /></p>
  79. </form>
  80. <?php
  81. }else { // le formulaire a été soumis sans erreur, on envoie le mail
  82. $entete = "From: ".$_POST["email_expediteur"]."
  83.       <".$_POST["email_expediteur"].">\n";
  84.   $entete .= "Return-Path: ".
  85.       $email_webmaster . "\n";$entete .= "MIME-Version: 1.0";$ip.="Adresse IP: ". $_SERVER['REMOTE_ADDR'] . "\n";$nav.="Navigateur: ". $_SERVER['HTTP_USER_AGENT'] . "\n\n";
  86. if (@mail($email_webmaster,$titre_cache.$_POST["titre"],$ip.$nav.$_POST["message"],$entete)){
  87. // mail envoyé
  88.    echo "Votre message a été envoyé.<br />\n";
  89.  echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
  90. }else { // erreur lors de l'envoi du mail
  91. echo "Un problème s'est produit lors de l'envoi du message.\n";
  92. echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
  93. } } }
  94. ?>
  95. </body></html>


 
Merci pour ton aide ....

Reply

Marsh Posté le 04-03-2008 à 13:49:06    

Mettre un formulaire et le traitement de son résultat dans le même script engendre quasiment toujours ce genre de problèmes chez les débutants...je te conseille de découper ça en 2 scripts distincts pour mieux comprendre ce qui se passe - je t'avoue que j'ai la flemme de chercher, là.


---------------
Can't buy what I want because it's free -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed