Formulaire avec champs obligatoires

Nouveau WRInaute
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:
<? /*************************************************************************
	* contact.config.php
	* Fichier de configuration de config.php
	* Copyright (c) François Pirsch 2007
	* http://aspirine.org/contact/
	* Distribué sous licence BSD.
	*
	* Envoi par mail des données d'un formulaire de contact.
	* Le formulaire lui-même doit être dans une page html séparée,
	* il doit être envoyé vers ce script php avec la méthode POST.
	* 
	* Il doit contenir un champ nommés "email" ou "mail"
	* et un champ nommé "sujet" ou "subject".
	*************************************************************************/

/**************************************************************************
		configuration de base
 **************************************************************************/

/* Adresse email du destinataire du formulaire. On peut donner plusieurs
 * adresses séparées par des virgules.
 * Exemples : 
 *		$to = '';			<-- vide, si vous utilisez l'option "destinataires au choix"
 *		$to = 'nom.prenom@fournisseur.fr';
 *		$to = 'dest1@fournisseur.fr, dest2@fournisseur.fr';
 */
$to = '*****';

/* Liste des champs obligatoires.
 * Mettre entre guillemets les noms des éléments de formulaires, séparés par des virgules.
 * Respecter les majuscules/minuscules !
 * Exemples :
 *		$champs_obligatoires = array("email", "sujet", "nom", "prenom", "adresse");
 *		$champs_obligatoires = array();			<-- aucun champ obligatoire
 */
$champs_obligatoires = array("email", "nom", "prenom", "email_confirmation", "conditions");




/**************************************************************************
		configuration avancée - options
 **************************************************************************/
// Si vous voulez recevoir une notification quand une nouvelle version est
// disponible, mettez cette variable à 1, sinon à 0.
// La vérification se fait à chaque fois qu'un de vos visiteurs utilise votre
// formulaire. La notification est éventuellement jointe au mail qui vous est
// envoyé.
$verifier_mises_a_jour = 0;

// Si vous voulez récupérer plus facilement les données dans un tableur
// par copier-coller, mettez à 1 cette variable :
$formater_pour_tableur = 0;

// Par défaut les champs non obligatoires vides ne sont pas envoyés dans le mail.
// Mettez 1 si vous tenez à les recevoir quand-même (sous forme "nom=" suivi de rien).
$envoyer_aussi_les_champs_vides = 1;

// Vers quelle page html sera redirigé le visiteur après l'envoi du formulaire ?
$page_ok = 'contactmerci.php';

// Quelle page html afficher en cas d'erreur ?
$page_erreur = 'contacterreur.html';

// Mettre éventuellement ici une adresse d'expéditeur si elle n'est pas
// précisée dans le formulaire.
// Sans expéditeur, le mail risque d'être rejeté par les passerelles anti-spam
// et ne jamais arriver à destination.
$from = 'formulaire@mondomaine.com';

// Mettre éventuellement ici un sujet de mail s'il n'est pas précisé dans
// le formulaire.
$sujet = "Inscription concert à la Merise du 18/04/08.";


// Option : mettre ici les noms des variables HTTP à envoyer avec le mail,
// entre guillemets et séparés par des virgules.
// Noms possibles : voir les variables de serveur sur
// http://www.php.net/manual/fr/reserved.variables.php
// Exemple : $variables_http = array('REMOTE_ADDR', 'HTTP_USER_AGENT');
$variables_http = array();

// Option : enregistrement dans une base de données.
// Indiquer le login et le mot de passe de la base de données.
// Indiquer aussi le nom des champs et des variables HTTP à enregistrer
// dans la table (Ne pas utiliser le nom de champ "n").
$db_server = 'localhost';
$db_login = '';
$db_password = '';
$db_champs_a_enregistrer = array("email", "sujet");
$db_nom_de_la_table = 'contact_php';

// Option : si l'utilisateur peut sélectionner un destinataire particulier
// dans une liste déroulante, mettre ici la correspondance entre le nom affiché
// dans le formulaire et l'adresse email de chaque destinataire.
// Exemples :
//	$destinataires_au_choix = array("direction" => "chef@nomdedomaine.fr",
//									"webmaster" => "web@nomdedomaine.fr",
//									"service après-vente" => "sav@nomdedomaine.fr");
//	$destinataires_au_choix = array();			<-- option désactivée
// Les noms doivent correspondre exactement à ceux qui sont affichés dans la liste
// déroulante (les balises <option> de l'élément <select>).
// La liste déroulante doit s'appeler "to".
// Si vous utilisez cette option, il vaut mieux laisser la variable $to vide (voir
// au tout début de ce fichier).
$destinataires_au_choix = array();

// Option anti-spam : utiliser reCaptcha ( http://recaptcha.net/ )
// Inscrivez votre site sur recaptcha.net, intégrez le code donné avec la clé publique
// dans votre formulaire, et indiquez la clé privée ici pour que contact.php
// puisse faire la vérification.
$recaptcha_privatekey = "";

// Option : Chiffrement (cryptage) du mail
// Pour que le mail vous parvienne crypté, il suffit de donner une clé de
// chiffrement sous forme d'un petit texte d'exactement 16 caractères.
//
// On peut la donner directement :
//		$cle_chiffrement = "Ceci est ma clé!";
// Ou on peut la stocker séparément dans un fichier texte et donner le chemin :
//		$cle_chiffrement = '/home/moncompte/cle.txt';	// (débute par un slash)
//		$cle_chiffrement = './cle.txt';					// (débute par un point)
// Elle doit être constituée d'exactement 16 caractères du jeu Latin-1.
$cle_chiffrement = '';

?>

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
 
WRInaute accro
Code:
<form action="contact.php" action="mailto:XXXXXXXX?subject=Inscription" method="post" onsubmit="return valideForm()">
deux param action cela ne me semble pas normal.
le fichier contact.php renvoie une page blanche c'est sûrement pour cela que tu as une page blanche après le submit.
J'ai pas trouvé valideForm().
 
Nouveau WRInaute
Merci à toi d'avoir consacré un peu de temps à regarder ça.

Suite à ta remarque j'ai enlevé
Code:
action="mailto:xxxxxxxx?subject=Inscription"
mais tjrs la page blanche qui apparait.
Bizard qu'il n'y ait pas le message d'erreur comme en local "Problème technique lors de l'envoi du mail. Pourtant il n'y avait pas de souci dans le formulaire."
ça renvoit vers contact.php.

Je mets aussi le code du formulaire:
Code:
<form action="contact.php" method="post" onsubmit="return valideForm()">

<P><FONT COLOR="#FFFFFF"><SELECT NAME=Nb de place>
<OPTION VALUE="01">1</OPTION>
<OPTION VALUE="02">2</OPTION>
<OPTION VALUE="03">3</OPTION>
<OPTION VALUE="04">4</OPTION>
<OPTION VALUE="05">5</OPTION>
<OPTION VALUE="06">6</OPTION>
</SELECT>
</FONT>
<P></B> 
<strong>Vos coordonn&eacute;es</strong> :<br />
<table width="450" border="0">
  <tr>
    <td valign="top">Civilit&eacute;*&nbsp;:</td>
    <td valign="top"><SELECT NAME=Civilité>
<OPTION VALUE="Mr">Mr</OPTION>
<OPTION VALUE="Mme">Mme</OPTION>
<OPTION VALUE="Melle">Melle</OPTION>
</SELECT><br /></td>
  </tr>
  <tr>
    <td valign="top">Nom* :</td>
    <td valign="top"><input name="nom"size=50 maxlength=50>
	<br /></td>
  </tr>
  <tr>
    <td valign="top">Pr&eacute;nom* :</td>
    <td valign="top"><input name="prenom"size=50 maxlength=50><br></td>
  </tr>
  <tr>
    <td valign="top">Courriel*&nbsp;:</td>
    <td valign="top"><input name="email"size=50 maxlength=50><br></td>
  </tr>
  <tr>
    <td valign="top">Confirmation courriel* :</td>
    <td valign="top"><input name="email_confirmation"size=50 maxlength=50><br></td>
  </tr>
  <tr>
    <td valign="top">Code postal* :</td>
    <td valign="top"><input name="code_postal"size=6 maxlength=6><br></td>
  </tr>
    <tr>
    <td valign="top">Ville* :</td>
    <td valign="top"><input name="ville"size=50 maxlength=50><br></td>
  </tr>
</table>
<p><br />
    <input type="checkbox" name="conditions" value="oui">
    <span class="Style3">En cochant cette case, je reconnais avoir pris conscience des conditions générales de ventes et je les accepte </span><br />
    <br />
    <input type="checkbox" name="newsletter" value="oui">
    <span class="Style3">Je souhaite recevoir la newsletter de l’association Kontshasso </span></p>
	<br />
<p><strong>Pour mieux vous  conna&icirc;tre&nbsp;:</strong><br /><br />
Votre date de naissance&nbsp;: <SELECT name="Jour">
   <OPTION VALUE="01">01</OPTION>
   <OPTION VALUE="02">02</OPTION>
   <OPTION VALUE="03">03</OPTION>
   <OPTION VALUE="04">04</OPTION>
   <OPTION VALUE="05">05</OPTION>
   <OPTION VALUE="06">06</OPTION>
   <OPTION VALUE="07">07</OPTION>
   <OPTION VALUE="08">08</OPTION>
   <OPTION VALUE="09">09</OPTION>
   <OPTION VALUE="10">10</OPTION>
   <OPTION VALUE="11">11</OPTION>
   <OPTION VALUE="12">12</OPTION>
   <OPTION VALUE="13">13</OPTION>
   <OPTION VALUE="14">14</OPTION>
   <OPTION VALUE="15">15</OPTION>
   <OPTION VALUE="16">16</OPTION>
   <OPTION VALUE="17">17</OPTION>
   <OPTION VALUE="18">18</OPTION>
   <OPTION VALUE="19">19</OPTION>
   <OPTION VALUE="20">20</OPTION>
   <OPTION VALUE="21">21</OPTION>
   <OPTION VALUE="22">22</OPTION>
   <OPTION VALUE="23">23</OPTION>
   <OPTION VALUE="24">24</OPTION>
   <OPTION VALUE="25">25</OPTION>
   <OPTION VALUE="26">26</OPTION>
   <OPTION VALUE="27">27</OPTION>
   <OPTION VALUE="28">28</OPTION>
   <OPTION VALUE="29">29</OPTION>
   <OPTION VALUE="30">30</OPTION>
   <OPTION VALUE="31">31</OPTION>
  </SELECT> /  
  <select name="Mois">
<option value="Janvier">Janvier</option>
<option value="Février">Février</option>
<option value="Mars">Mars</option>
<option value="Avril">Avril</option>
<option value="Mai">Mai</option>
<option value="Juin">Juin</option>
<option value="Juillet">Juillet</option>
<option value="Août">Août</option>
<option value="Septembre">Septembre</option>
<option value="Octobre">Octobre</option>
<option value="Novembre">Novembre</option>
<option value="Décembre">Décembre</option>
</select> / 
   <SELECT name="Année">
   <OPTION VALUE="1901">1901</OPTION>
   <OPTION VALUE="1902">1902</OPTION>
   <OPTION VALUE="1903">1903</OPTION>
   <OPTION VALUE="1904">1904</OPTION>
   <OPTION VALUE="1905">1905</OPTION>
   <OPTION VALUE="1906">1906</OPTION>
   <OPTION VALUE="1907">1907</OPTION>
   <OPTION VALUE="1908">1908</OPTION>
   <OPTION VALUE="1909">1909</OPTION>
   <OPTION VALUE="1910">1910</OPTION>
   <OPTION VALUE="1911">1911</OPTION>
   <OPTION VALUE="1912">1912</OPTION>
   <OPTION VALUE="1913">1913</OPTION>
   <OPTION VALUE="1914">1914</OPTION>
   <OPTION VALUE="1915">1915</OPTION>
   <OPTION VALUE="1916">1916</OPTION>
   <OPTION VALUE="1917">1917</OPTION>
   <OPTION VALUE="1918">1918</OPTION>
   <OPTION VALUE="1919">1919</OPTION>
   <OPTION VALUE="1920">1920</OPTION>
   <OPTION VALUE="1921">1921</OPTION>
   <OPTION VALUE="1922">1922</OPTION>
   <OPTION VALUE="1923">1923</OPTION>
   <OPTION VALUE="1924">1924</OPTION>
   <OPTION VALUE="1925">1925</OPTION>
   <OPTION VALUE="1926">1926</OPTION>
   <OPTION VALUE="1927">1927</OPTION>
   <OPTION VALUE="1928">1928</OPTION>
   <OPTION VALUE="1929">1929</OPTION>
   <OPTION VALUE="1930">1930</OPTION>
   <OPTION VALUE="1931">1931</OPTION>
   <OPTION VALUE="1932">1932</OPTION>
   <OPTION VALUE="1933">1933</OPTION>
   <OPTION VALUE="1934">1934</OPTION>
   <OPTION VALUE="1935">1935</OPTION>
   <OPTION VALUE="1936">1936</OPTION>
   <OPTION VALUE="1937">1937</OPTION>
   <OPTION VALUE="1938">1938</OPTION>
   <OPTION VALUE="1939">1939</OPTION>
   <OPTION VALUE="1940">1940</OPTION>
   <OPTION VALUE="1941">1941</OPTION>
   <OPTION VALUE="1942">1942</OPTION>
   <OPTION VALUE="1943">1943</OPTION>
   <OPTION VALUE="1944">1944</OPTION>
   <OPTION VALUE="1945">1945</OPTION>
   <OPTION VALUE="1946">1946</OPTION>
   <OPTION VALUE="1947">1947</OPTION>
   <OPTION VALUE="1948">1948</OPTION>
   <OPTION VALUE="1949">1949</OPTION>
   <OPTION VALUE="1950">1950</OPTION>
   <OPTION VALUE="1951">1951</OPTION>
   <OPTION VALUE="1952">1952</OPTION>
   <OPTION VALUE="1953">1953</OPTION>
   <OPTION VALUE="1954">1954</OPTION>
   <OPTION VALUE="1955">1955</OPTION>
   <OPTION VALUE="1956">1956</OPTION>
   <OPTION VALUE="1957">1957</OPTION>
   <OPTION VALUE="1958">1958</OPTION>
   <OPTION VALUE="1959">1959</OPTION>
   <OPTION VALUE="1960">1960</OPTION>
   <OPTION VALUE="1961">1961</OPTION>
   <OPTION VALUE="1962">1962</OPTION>
   <OPTION VALUE="1963">1963</OPTION>
   <OPTION VALUE="1964">1964</OPTION>
   <OPTION VALUE="1965">1965</OPTION>
   <OPTION VALUE="1966">1966</OPTION>
   <OPTION VALUE="1967">1967</OPTION>
   <OPTION VALUE="1968">1968</OPTION>
   <OPTION VALUE="1969">1969</OPTION>
   <OPTION VALUE="1970">1970</OPTION>
   <OPTION VALUE="1971">1971</OPTION>
   <OPTION VALUE="1972">1972</OPTION>
   <OPTION VALUE="1973">1973</OPTION>
   <OPTION VALUE="1974">1974</OPTION>
   <OPTION VALUE="1975">1975</OPTION>
   <OPTION VALUE="1976">1976</OPTION>
   <OPTION VALUE="1977">1977</OPTION>
   <OPTION VALUE="1978">1978</OPTION>
   <OPTION VALUE="1979">1979</OPTION>
   <OPTION VALUE="1980">1980</OPTION>
   <OPTION VALUE="1981">1981</OPTION>
   <OPTION VALUE="1982">1982</OPTION>
   <OPTION VALUE="1983">1983</OPTION>
   <OPTION VALUE="1984">1984</OPTION>
   <OPTION VALUE="1985">1985</OPTION>
   <OPTION VALUE="1986">1986</OPTION>
   <OPTION VALUE="1987">1987</OPTION>
   <OPTION VALUE="1988">1988</OPTION>
   <OPTION VALUE="1989">1989</OPTION>
   <OPTION VALUE="1990">1990</OPTION>
   <OPTION VALUE="1990">1991</OPTION>
   <OPTION VALUE="1990">1992</OPTION>
   <OPTION VALUE="1990">1993</OPTION>
   <OPTION VALUE="1990">1994</OPTION>
   <OPTION VALUE="1990">1995</OPTION>
   <OPTION VALUE="1990">1996</OPTION>
   <OPTION VALUE="1990">1997</OPTION>
   <OPTION VALUE="1990">1998</OPTION>
   <OPTION VALUE="1990">1999</OPTION>
   <OPTION VALUE="1990">2000</OPTION>
  </SELECT><br />
  <br />
Venez-vous accompagn&eacute;&nbsp;?<input type="radio" name="accompagné" value="oui"> oui / <input type="radio" name="accompagné" value="non">non<br />
<br />Si oui&nbsp;: <SELECT name="si oui accompagné">
   <OPTION VALUE="famille">Famille</OPTION>
   <OPTION VALUE="amis">Amis</OPTION>
   <OPTION VALUE="coll&egrave;gue">Coll&egrave;gue</OPTION>
   <OPTION VALUE="concubin">Concubin</OPTION></SELECT><br /><br />
   Autres&nbsp;:<input name="autres"size=50 maxlength=50><br /> </p>
   <br />
<p><strong>*champs  obligatoires</strong><br />
  Les informations communiqu&eacute;es sont destin&eacute;es &agrave; Kontshasso.  Vous b&eacute;n&eacute;ficiez d'un droit d'acc&egrave;s, de modification, de rectification et de  suppression de vos donn&eacute;es personnelles (art. 34 de la loi du 6 janvier 1978).  Pour les exercer, adressez vous &agrave; Kontshasso, Espace Culturel Decauville, 5  place de la division Leclerc, 78&nbsp;960 Voisins le Bretonneux. </p>
<br />
        <br />
<input type=submit value=Envoyer> -
     <input type=reset value=Annuler>
</form>

Peut être que j'ai mal paramétrer:
Configuration du formulaire.

* Le paramétrer avec method="post" et action="contact.php"
* Il doit contenir un champ nommé "email", dont la valeur sera utilisée comme adresse d'expéditeur.
* S'il contient un champ nommé "sujet" ou "subject", sa valeur est utilisée comme sujet du mail.
 
Nouveau WRInaute
Concernant le warning que tu obtiens en local, as-tu un serveur smtp qui tourne en local également?
Si ce n'est pas le cas, le script ne pourra pas envoyer de mail (fonction mail() en PHP, ligne 379 dans contact.php), l'erreur est donc normale.
 
Discussions similaires
Haut