IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Validation de plusieurs conditions avant sauvegarde dans un fichier texte


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 40
    Points
    40
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    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?

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    Merci Seb, c'est très bien.

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/09/2014, 15h07
  2. sauvegarde dans un fichier texte
    Par thechef dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 10/02/2009, 09h58
  3. Sauvegarde de plusieurs données dans un fichier texte
    Par Christinita dans le forum MATLAB
    Réponses: 9
    Dernier message: 23/11/2008, 09h37
  4. Validation de plusieurs conditions dans un EVALUATE
    Par apokrif dans le forum Cobol
    Réponses: 4
    Dernier message: 29/03/2007, 23h28
  5. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo