Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 02/09/2007, 09h53   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 58
Points : 11
Points : 11
Par défaut Validation de plusieurs conditions avant sauvegarde dans un fichier texte

Bonjour,

Dans le script suivant, j'ai vérifié plusieurs conditions une à une pour que le formulaire soit bien rempli par l'internaute. Maintenant je voudrais que les données remplies soient inscrites dans un fichier.txt si toutes ses conditions ensemble soient bien remplies et que l'utilisateur ait bien validé le formulaire.
Comment faire?

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<body> 
 
 
	<form name="petition" method="post" action="petition.php">
 
			<table border=0>
 
			<!-- Gestion du nom : -->
		<?
			// Teste que le champs n'est pas vide ou égal à 0
			// et que l'utilisateur a déjà appuyé sur le bouton Envoyer pour éviter ainsi l'affichage du message d'erreur 
			if ( empty($_POST['nom']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> Le nom doit être rempli : </font><br>";
			}			
		?>	
				<tr>					
					<td> Nom : 
					</td>
					<td><input type="text" name="nom" size="40" >
					<!--Mémorisation de la valeur pour prévision rafraichissement de la page -->
					<input type="hidden" name="memorisationNom" value="<? echo $_POST['nom']; ?>" >
					</td>
				</tr>
 
			<!-- Gestion du prénom : -->
 
		<?
			if ( empty($_POST['prenom']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> Le prénom doit être rempli </font><br>";
			}			
		?>	
				<tr>				
					<td> Prénom : 
					</td>
					<td><input type="text" name="prenom" size="40" >
					<!--Mémorisation de la valeur pour prévision rafraichissement de la page -->
					<input type="hidden" name="memorisationPrenom" value="<? echo $_POST['prenom']; ?>">
					</td>
				</tr>
 
			<!-- Gestion de l'adresse : -->
 
		<?
			if ( empty($_POST['adresse']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> L'adresse doit être remplie </font><br>";
			}			
		?>	
 
				<tr>
					<td> Adresse : 
					</td>
					<td><input type="text" name="adresse" size="40">
					<!--Mémorisation de la valeur pour prévision rafraichissement de la page -->
					<input type="hidden" name="memorisationAdresse" value="<? echo $_POST['adresse']; ?>">
					</td>
				</tr>
 
			<!-- Gestion du code postal : -->	
 
		<?
			if ( empty($_POST['codePostal']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> Le code postal doit être rempli </font><br>";
			}			
		?>	
 
				<tr>
					<td> Code postal : 
					</td>
					<td><input type="text" name="codePostal" size="40">
					<!--Mémorisation de la valeur pour prévision rafraichissement de la page -->
					<input type="hidden" name="memorisationCodePostal" value="<? echo $_POST['codePostal']; ?>">
					</td>
				</tr>
 
			<!-- Gestion de la ville : -->	
 
		<?
			if ( empty($_POST['ville']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> La ville doit être remplie </font><br>";
			}			
		?>	
				<tr>
					<td> Ville : 
					</td>
					<td><input type="text" name="ville" size="40">
					<!--Mémorisation de la valeur pour prévision rafraichissement de la page -->
					<input type="hidden" name="memorisationVille" value="<? echo $_POST['ville']; ?>">
					</td>
				</tr>
 
				<!-- Gestion de l'email : -->	
 
		<?
			if ( empty($_POST['email']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> L'email doit être rempli </font>";
			}	
			if ( !empty($_POST['email']) && !eregi("^[a-z0-9._-]+@[a-z0-9.-]{1,}[.][a-z]{2,3}$", $_POST['email']) && isset($_POST['envoyerDonnees'])) 
			{
			echo "<font color='#FF0000'> Adresse email invalide </font><br>";
			}		
		?>	
 
				<tr>
					<td> Email : 
					</td>
					<td><input type="text" name="email" size="40">
					<!--Mémorisation de la valeur pour prévision rafraichissement de la page -->
					<input type="hidden" name="memorisationEmail" value="<? echo $_POST['email']; ?>">
					</td>
				</tr>
				<tr>
					<td>
					</td>
					<td><input type="submit" name="envoyerDonnees" value="Envoyer">
						<input type="reset" name="effacer" value="Effacer">
					</td>
				</tr>
			</table>
		</form>
 
 
    <p><a href="index.htm"><img src="WB01337_.gif" alt="Bouton" width="29" height="29" border="0" /></a> <span class="Style2">Revenir sur la page d'accueil </span></p>
</body>
lou64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2007, 13h34   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Tu peux utiliser un booléen drapeau $formulaire_valide à TRUE par défaut. Dès qu'un champ est mal rempli tu le passes à FALSE.
A la fin du traitement du formulaire tu écris ou pas dans ton fichier selon la valeur du booléen $formulaire_valide
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2007, 17h58   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 58
Points : 11
Points : 11
Merci pour ta réponse.
Admettons que j'ai 6 conditions à vérifier et que j'utilise pour chacune d'entre elle un marqueur $formulaire_valide = TRUE.
La condition n° 4 n'est pas vérifiée, la marqueur me renvoie FALSE. Les conditions n° 5 et 6 sont TRUE.
A la fin du formulaire, est-ce que la marqueur est à FALSE?
lou64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2007, 19h37   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$formulaire_valide = TRUE ;
if ( champ n° 1 n'est pas valide ) {
    message d'erreur à propos du champ n° 1
    $formulaire_valide = FALSE ;
}
if ( champ n° 2 n'est pas valide ) {
    message d'erreur à propos du champ n° 2
    $formulaire_valide = FALSE ;
}
...
if ( $formulaire_valide === TRUE ) {
    traiter les données du formulaire
}
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 11h03   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 58
Points : 11
Points : 11
Merci Seb, c'est très bien.

Je développe encore mon code mais pour l'instant ça donne ça

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
// Teste si le formulaire a bien été rempli
 
			$formulaire_valide = TRUE ;
 
			// Teste que le champs 'nom' est rempli et différent de 0
			// et que l'utilisateur a déjà appuyé sur le bouton Envoyer pour éviter ainsi l'affichage du message d'erreur 
			if ( empty($_POST['nom']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> Le nom doit être rempli : </font><br>";
			$formulaire_valide = FALSE ;
			}	
 
			// Teste que le champs 'prenom' est rempli et différent de 0
			// et que l'utilisateur a déjà appuyé sur le bouton Envoyer pour éviter ainsi l'affichage du message d'erreur 
			if ( empty($_POST['prenom']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> Le prénom doit être rempli </font><br>";
			$formulaire_valide = FALSE ;
			}	
 
			// Teste que le champs 'adresse' est rempli et différent de 0
			// et que l'utilisateur a déjà appuyé sur le bouton Envoyer pour éviter ainsi l'affichage du message d'erreur 
			if ( empty($_POST['adresse']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> L'adresse doit être remplie </font><br>";
			$formulaire_valide = FALSE ;
			}	
 
			// Teste que le champs 'codePostal' est rempli et différent de 0
			// et que l'utilisateur a déjà appuyé sur le bouton Envoyer pour éviter ainsi l'affichage du message d'erreur 
			if ( empty($_POST['codePostal']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> Le code postal doit être rempli </font><br>";
			$formulaire_valide = FALSE ;
			}	
 
			// Teste que le champs 'ville' est rempli et différent de 0
			// et que l'utilisateur a déjà appuyé sur le bouton Envoyer pour éviter ainsi l'affichage du message d'erreur 
			if ( empty($_POST['ville']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> La ville doit être remplie </font><br>";
			$formulaire_valide = FALSE ;
			}	
 
			// Teste que le champs 'email' est rempli et différent de 0
			// et que l'utilisateur a déjà appuyé sur le bouton Envoyer pour éviter ainsi l'affichage du message d'erreur 
			if ( empty($_POST['email']) && isset($_POST['envoyerDonnees']) )
			{
			echo "<font color='#FF0000'> L'email doit être rempli </font>";
			$formulaire_valide = FALSE ;
			}	
 
			// Teste que le champs 'email' est bien valide en respectant une liste de contraintes
			// et que l'utilisateur a déjà appuyé sur le bouton Envoyer pour éviter ainsi l'affichage du message d'erreur 
			if ( !empty($_POST['email']) && !eregi("^[a-z0-9._-]+@[a-z0-9.-]{1,}[.][a-z]{2,3}$", $_POST['email']) && isset($_POST['envoyerDonnees'])) 
			{
			echo "<font color='#FF0000'> Adresse email invalide </font><br>";
			$formulaire_valide = FALSE ;
			}		
 
		// Si le formulaire a bien été rempli
 
 
			if ($formulaire_valide === TRUE && isset($_POST['envoyerDonnees'])) {
 
    		// Ouverture ou création et enregistrement des coordonnées dans le fichier txt
			$ouverture_fichier=fopen("petition_justice.txt","a+"); 
			fputs ($ouverture_fichier, $_POST['nom'] .';'. $_POST['prenom'] .';'. $_POST['adresse'] .';'. $_POST['codePostal'] .';'. $_POST['ville'] .';'. $_POST['email'] ."\n");
			fclose ($ouverture_fichier);
lou64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h07.


 
 
 
 
Partenaires

Hébergement Web