Formulaire avec champs obligatoires

Formulaire avec champs obligatoires - PHP - Programmation

Marsh Posté le 18-03-2008 à 22:19:55    

Salut,
 
J'ai un formulaire sur un site. J'arrivais bien à recevoir les informations mais sans contraindre les personnes à remplir des champs obligatoires.
 
J'ai trouver un formulaire qui me semble pas mal ici http://aspirine.org/contact/ et normalement simple à mettre en oeuvre et qui me permet de remplir obligatoirement certains champs importants.
 
Mais voilà j'ai dû omettre certains paramétrages car  lorsque l'utilisateur envoie le formulaire on tombe sur une page blanche.
 
Mon formulaire est visible ici : http://www.festltpa.com/inscription_merise180408bis.php
 
Or en local lorsque le formulaire est bien rempli j'ai ce message d'erreur :"Problème technique lors de l'envoi du mail. Pourtant il n'y avait pas de souci dans le formulaire."
 
Et puis "Notice: Undefined index: ville in c:\program files\easyphp1-8\www\ltpa\contact.php on line 233"
Et ceux pour toutes les données renseignées par l'utilisateur. Ici c'est ville
 
Ainsi que : "Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\program files\easyphp1-8\www\ltpa\contact.php on line 379"
 
J'ai bien mis sur mon serveur les fichiers :
- contact.php (que je n'ai pas modifié)
- contactmerci.php (script non changé juste intégré dans le corp d'une page équivalente au reste du site)
- contacterreur.html (pareillement)
- contact.config.php (fichier de configuration à modifier, je vous mets le code ci-dessous)
 
 
 

Code :
  1. <? /*************************************************************************
  2. * contact.config.php
  3. * Fichier de configuration de config.php
  4. * Copyright (c) François Pirsch 2007
  5. * http://aspirine.org/contact/
  6. * Distribué sous licence BSD.
  7. *
  8. * Envoi par mail des données d'un formulaire de contact.
  9. * Le formulaire lui-même doit être dans une page html séparée,
  10. * il doit être envoyé vers ce script php avec la méthode POST.
  11. *  
  12. * Il doit contenir un champ nommés "email" ou "mail"
  13. * et un champ nommé "sujet" ou "subject".
  14. *************************************************************************/
  15. /**************************************************************************
  16.  configuration de base
  17. **************************************************************************/
  18. /* Adresse email du destinataire du formulaire. On peut donner plusieurs
  19. * adresses séparées par des virgules.
  20. * Exemples :  
  21. *  $to = '';   <-- vide, si vous utilisez l'option "destinataires au choix"
  22. *  $to = 'nom.prenom@fournisseur.fr';
  23. *  $to = 'dest1@fournisseur.fr, dest2@fournisseur.fr';
  24. */
  25. $to = 'mail@fai.net';
  26. /* Liste des champs obligatoires.
  27. * Mettre entre guillemets les noms des éléments de formulaires, séparés par des virgules.
  28. * Respecter les majuscules/minuscules !
  29. * Exemples :
  30. *  $champs_obligatoires = array("email", "sujet", "nom", "prenom", "adresse" );
  31. *  $champs_obligatoires = array();   <-- aucun champ obligatoire
  32. */
  33. $champs_obligatoires = array("email", "nom", "prenom", "email_confirmation", "conditions" );
  34. /**************************************************************************
  35.  configuration avancée - options
  36. **************************************************************************/
  37. // Si vous voulez recevoir une notification quand une nouvelle version est
  38. // disponible, mettez cette variable à 1, sinon à 0.
  39. // La vérification se fait à chaque fois qu'un de vos visiteurs utilise votre
  40. // formulaire. La notification est éventuellement jointe au mail qui vous est
  41. // envoyé.
  42. $verifier_mises_a_jour = 0;
  43. // Si vous voulez récupérer plus facilement les données dans un tableur
  44. // par copier-coller, mettez à 1 cette variable :
  45. $formater_pour_tableur = 0;
  46. // Par défaut les champs non obligatoires vides ne sont pas envoyés dans le mail.
  47. // Mettez 1 si vous tenez à les recevoir quand-même (sous forme "nom=" suivi de rien).
  48. $envoyer_aussi_les_champs_vides = 1;
  49. // Vers quelle page html sera redirigé le visiteur après l'envoi du formulaire ?
  50. $page_ok = 'contactmerci.php';
  51. // Quelle page html afficher en cas d'erreur ?
  52. $page_erreur = 'contacterreur.html';
  53. // Mettre éventuellement ici une adresse d'expéditeur si elle n'est pas
  54. // précisée dans le formulaire.
  55. // Sans expéditeur, le mail risque d'être rejeté par les passerelles anti-spam
  56. // et ne jamais arriver à destination.
  57. $from = 'formulaire@mondomaine.com';
  58. // Mettre éventuellement ici un sujet de mail s'il n'est pas précisé dans
  59. // le formulaire.
  60. $sujet = "Inscription concert à la Merise du 18/04/08.";
  61. // Option : mettre ici les noms des variables HTTP à envoyer avec le mail,
  62. // entre guillemets et séparés par des virgules.
  63. // Noms possibles : voir les variables de serveur sur
  64. // http://www.php.net/manual/fr/reserved.variables.php
  65. // Exemple : $variables_http = array('REMOTE_ADDR', 'HTTP_USER_AGENT');
  66. $variables_http = array();
  67. // Option : enregistrement dans une base de données.
  68. // Indiquer le login et le mot de passe de la base de données.
  69. // Indiquer aussi le nom des champs et des variables HTTP à enregistrer
  70. // dans la table (Ne pas utiliser le nom de champ "n" ).
  71. $db_server = 'localhost';
  72. $db_login = '';
  73. $db_password = '';
  74. $db_champs_a_enregistrer = array("email", "sujet" );
  75. $db_nom_de_la_table = 'contact_php';
  76. // Option : si l'utilisateur peut sélectionner un destinataire particulier
  77. // dans une liste déroulante, mettre ici la correspondance entre le nom affiché
  78. // dans le formulaire et l'adresse email de chaque destinataire.
  79. // Exemples :
  80. // $destinataires_au_choix = array("direction" => "chef@nomdedomaine.fr",
  81. //         "webmaster" => "web@nomdedomaine.fr",
  82. //         "service après-vente" => "sav@nomdedomaine.fr" );
  83. // $destinataires_au_choix = array();   <-- option désactivée
  84. // Les noms doivent correspondre exactement à ceux qui sont affichés dans la liste
  85. // déroulante (les balises <option> de l'élément <select> ).
  86. // La liste déroulante doit s'appeler "to".
  87. // Si vous utilisez cette option, il vaut mieux laisser la variable $to vide (voir
  88. // au tout début de ce fichier).
  89. $destinataires_au_choix = array();
  90. // Option anti-spam : utiliser reCaptcha ( http://recaptcha.net/ )
  91. // Inscrivez votre site sur recaptcha.net, intégrez le code donné avec la clé publique
  92. // dans votre formulaire, et indiquez la clé privée ici pour que contact.php
  93. // puisse faire la vérification.
  94. $recaptcha_privatekey = "";
  95. // Option : Chiffrement (cryptage) du mail
  96. // Pour que le mail vous parvienne crypté, il suffit de donner une clé de
  97. // chiffrement sous forme d'un petit texte d'exactement 16 caractères.
  98. //
  99. // On peut la donner directement :
  100. //  $cle_chiffrement = "Ceci est ma clé!";
  101. // Ou on peut la stocker séparément dans un fichier texte et donner le chemin :
  102. //  $cle_chiffrement = '/home/moncompte/cle.txt'; // (débute par un slash)
  103. //  $cle_chiffrement = './cle.txt';     // (débute par un point)
  104. // Elle doit être constituée d'exactement 16 caractères du jeu Latin-1.
  105. $cle_chiffrement = '';
  106. ?>


 
J'ai pas paramétrer pour les options je souhaite seulement recevoir les infos avec les champs obligatoires. Si quelqu'un a une idée d'où viennent mes messages d'erreur en local et pourquoi j'ai rien  via le serveur, seulement une page blanche, ça m'aiderait bien.
 
Merci


Message édité par viruss le 14-12-2011 à 14:09:01
Reply

Marsh Posté le 18-03-2008 à 22:19:55   

Reply

Marsh Posté le 19-03-2008 à 18:24:47    

1- Tu vois les erreurs en local mais pas en production: c'est généralement normal, on n'affiche pas les erreur en prod (ca fait un peu tache un site avec un warning en haut de la page)  
 
pour ce qui est de tes erreurs : la notice on s'en fout (y en a qui vont pas aimer mais bon)
 
sinon l'erreur vient de la tentative de l'envoi du mail, tu a configurer dans le php.ini en local un serveur smtp : localhost il n'existe certainement pas de serveur smtp sur ta machine.
 
En production, regarde les données de ton hebergeur, et les config smtp  etc... tu pourra peut-etre trouver les bonnes infos a rentrer dans la config de php.ini

Reply

Sujets relatifs:

Leave a Replay

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