Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/08/2011, 09h40   #1
Invité de passage
 
Inscription : février 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 3
Points : 0
Points : 0
Par défaut Probleme d'envoi formulaire

Bonjour,

Lorsque j’envoie mon formulaire rempli, celui-ci me dit qu'un des champs n'est pas rempli et de demande de retourner sur celui.

Je n'arrive pas à touver l'erreur

la partie CSS

Code :
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
41
42
43
44
45
46
47
48
49
50
51
 
 
<form id="contact" class="cssform" method="post" action="rendez-vous.php">
 
 
<p><label for="nom">Nom</label><input type="text" id="nom" name="nom" /></p>
<p><label for="prenom">Prénom</label><input type="text" id="prenom" name="prenom" /></p>
<p><label for="email">Email</label><input type="text" id="email" name="email" /></p>
<p><label for="telephone">Téléphone</label><input type="text" id="telephone" name="telephone" /></p>
<p><label for="prestation">Prestation demandé</label>
<select id="prestation" name="prestation[]"> 
			           <option value="1">Epilation</option>
                                   <option value="2" >Dépilation radicale</option>
                                   <option value="3">Soin du visage</option>
 
</select>
</p>
<p><label>Jour de la semaine</label>
<select id="jour" name="jour[]">
 
				   <option value="21">mardi</option>
                                   <option value="22">mercredi</option>
                                   <option value="23">jeudi</option>
 
</select>
</p>
<p><label>ou au choix</label>
<select id="jourbis" name="jourbis[]">
				   <option value="31">mardi</option>
                                   <option value="32">mercredi</option>
 
 </select>
 </p>
<p><label>Plage horaire</label>
<select id="horaire" name="horaire[]">			  
                                   <option value="41">10H à 12H</option>
                                   <option value="42">12H à 13H</option>
</select>
</p>	
<p><label>Semaine de l'année</label>
<select id="semaine" name="semaine[]">
								   <option value="51">semaine 01 : du 03 au 09 janvier</option>
						           <option value="52">semaine 02 : du 10 au 16 janvier</option>   
                   <option value="54">semaine 04 : du 24 au 30 janvier</option> 
	            <option value="55">semaine 05 : du 31 au 05 février</option>
 
</select>
</p>
br/>
<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer" /></div>
</form>

La partie php ci dessous

Code :
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
41
42
43
44
45
46
<?php
 
$destinataire = 'rendez-vous@esquisse-beaute.com';
 
function IsEmail($email) {
   $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
   return (eregi($pattern,$email)) ? true : false;
}
 
$MyPost = array('nom', 'prenom',
				'email', 'telephone',
				'prestation', 'jour',
				'jourbis', 'horaire',
				'semaine');
$i = 0;
if (!isset($_POST['envoi']))
{
	echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
} else {
 
	foreach ($MyPost as $champ) {
		if(!empty($_POST[$champ]) and $champ != 'email') {
			$i++;
		} elseif ($champ == 'email') {
			if(IsEmail($email))
				$i++;
		}
	}
	if ($i == count($MyPost)) {
		$headers = 'From: '.$_POST['nom'].' <'.$_POST['email'].'>' . "\r\n";
		if ($copie == 'non')
			$cible = $destinataire.','.$email;
		else
			$cible = $destinataire;
		$element = array("'" => "'", "’" => "'",
					   """ => '"', '<br>' => '',
					   '<br />' => '' ,  "&lt;" => "<",
					   "&gt;"   => ">", "&amp;" => "&");
		foreach ($element as $key => $valeur) {
			$message = str_replace("'","'",$message);
		}
	} else {
		echo '<p>'.$message_formulaire_invalide.' <a href="rendez-vous.html">Veuillez remplir correctement le formulaire</a></p>'."\n";
	}
}
?>
merci à toutes et tous pour la réponse
LOUSHEER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 09h57   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Hello

Ta gestion de formulaire est vachement complexe pour ce qu'elle fait en réalité.

1 - Utilise cette fonction pour valider un email:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
function validateEmail ($email) {
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        return false;
    }
 
    if (function_exists('checkdnsrr')) {
        $host = substr($email, strpos($email, '@') + 1);
        return checkdnsrr($host, 'MX');
    }
 
    return true;
}
2 - Utilise les filtres pour valider les paramètres:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$filter = array(
    'nom' => array(
        'filters' => FILTER_SANITIZE_SPECIAL_CHARS,
    	'flags' => FILTER_NULL_ON_FAILURE
    ),
    'prenom' => array(
        'filters' => FILTER_SANITIZE_SPECIAL_CHARS,
    	'flags' => FILTER_NULL_ON_FAILURE
    ),
    'email' => array(
        'filters' => FILTER_VALIDATE_EMAIL,
        'flags' => FILTER_NULL_ON_FAILURE
    ),
    // Ajouter les autres champs...
);
 
if ($inputs = filter_input_array(INPUT_POST, $filter)) {
    // Les données de $inputs sont saines
}
else {
    // Message d'erreur
}
voir:
- http://php.net/manual/en/function.fi...nput-array.php
- http://www.php.net/manual/en/function.filter-input.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h06.


 
 
 
 
Partenaires

Hébergement Web