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 :

Vérifier tout les champs d'un formulaire


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Par défaut Vérifier tout les champs d'un formulaire
    Bonjour,

    J'ai un formulaire :

    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
     
    <form method="post" action="formulaire_test.php">
    	<fieldset>
    		<legend>Informations :</legend>
    		Nom : <br> <input type="text" name="NAME_ENV" style="text-transform: uppercase" value="<?php echo htmlentities( $NAME_ENV ) ?>"/><br/>
    		Description : <br><textarea name="DESC_ENV" rows="5" cols="45" value="<?php echo htmlentities( $DESC_ENV ) ?>"></textarea><br/>
    		Commentaire : <br><textarea name="COM_ENV" rows="5" cols="45" value="<?php echo htmlentities( $COM_ENV ) ?>"></textarea><br/>
    		Status : <br>
    		<input type="radio" name="STATUS_ENV" value="Online" checked="checked" value="<?php echo htmlentities( $STATUS_ENV) ?>">Online
    		<input type="radio" name="STATUS_ENV" value="Offline" value="<?php echo htmlentities( $STATUS_ENV ) ?>">Offline
    		<br/>
    	</fieldset>
    	<?php if( ! empty( $ERREUR ) ) echo '    <p>', $ERREUR, '</p>' ?> 
    	<?php if( ! empty( $RESULT ) ) echo '    <p>', $RESULT, '</p>' ?> 
    	<input type="submit" name="valider" value="Valider"/>
    </form>
    Je souhaiterais :

    1) Si jai cliqué sur valider j'envoie les donneés, sinon rien.
    2) Si le champs NAME_ENV est renseigné je continue sinon erreur : 'vous devez spécifier un nom !'
    3) Verifier que l'ensemble de mes champs ne contient pas de caractères spéciaux sinon erreur : 'Ne peux pas contenir de caracteres speaciaux !'
    4) si toutes ces conditions sont OK message OK et j'insere les données dans ma BDD.

    J'ai fait ca mais ca ne remplit pas toutes les conditions :

    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
     
     
    <?php
    session_start();
    require('../includes/functions.php');
    connectMaBase();
     
    $NAME_ENV ='';
    $DESC_ENV ='';
    $COM_ENV ='';
    $STATUS_ENV ='';
    $DATETIME='';
    $IP_REQ_ENV ='';
    $ERREUR='';
    $RESULT='';
     
    if(isset($_POST['valider']))
    {
    	$NAME_ENV = trim( mysql_real_escape_string(htmlspecialchars($_POST['NAME_ENV'])));
    	$DESC_ENV = trim( mysql_real_escape_string(htmlspecialchars($_POST['DESC_ENV']))); 
    	$COM_ENV = trim( mysql_real_escape_string(htmlspecialchars($_POST['COM_ENV']))); 
    	$STATUS_ENV = trim( mysql_real_escape_string(htmlspecialchars($_POST['STATUS_ENV'])));  
    	$DATETIME= date("Y-m-d - H:i:s");
    	$IP_REQ_ENV = $_SERVER['REMOTE_ADDR'];
     
    	if(!empty( $_POST['NAME_ENV']))
    	{ 
    		 foreach($_POST as $index=>$valeur)
    		{
    					if(preg_match('`^[- a-zàâäéèêëïîôöùûü\']{2,}$`i', $valeur ) ) 
    					{ 
    						//insertion dans ma base
    						$RESULT='Super tout va bien';
    					} 
    					else 
    					{ 
    						$ERREUR = 'Ne peux pas contenir de caracteres speaciaux !'; 	
    					}
    		}				
    	}
    	else 
    	{ 
    		$ERREUR = 'vous devez spécifier un nom !'; 
    	}	
    }
     
    ?>
    Car si un champs un OK et un contient des caractères spéciaux ca me sort les 2 messages d'erreur en meme temps

    $ERREUR = 'Ne peux pas contenir de caracteres speaciaux !';
    et
    $RESULT='Super tout va bien'

    Avez vous une idée svp ?

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    voilà le principe :
    Code php : 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
    <?php
    session_start();
    require('../includes/functions.php');
    connectMaBase();
     
    // Initialisation
    $NAME_ENV ='';
    $DESC_ENV ='';
    $COM_ENV ='';
    $STATUS_ENV ='';
    $DATETIME='';
    $IP_REQ_ENV ='';
    $ERREUR='';
    $RESULT='';
     
    // variable-test de validation du formulaire
    $valid_form = 0; 
    // 0 = valeur initiale 
    // 1 = OK 
    // 2 = erreur : caractères spéciaux 
    // 3 = erreur : nom vide
     
    // Si le formulaire est soumis
    if(isset($_POST['valider']))
    {
    	// Récupération des champs
    	$NAME_ENV = trim( htmlspecialchars($_POST['NAME_ENV']));
    	$DESC_ENV = trim( htmlspecialchars($_POST['DESC_ENV'])); 
    	$COM_ENV = trim( htmlspecialchars($_POST['COM_ENV'])); 
    	$STATUS_ENV = trim( htmlspecialchars($_POST['STATUS_ENV']));  
    	$DATETIME= date("Y-m-d - H:i:s");
    	$IP_REQ_ENV = $_SERVER['REMOTE_ADDR'];
     
        // GESTION d'ERREURS
    	if(!empty( $_POST['NAME_ENV']))
    	{ 
    		foreach($_POST as $index=>$valeur)
    		{
    					if(preg_match('`^[- a-zàâäéèêëïîôöùûü\']{2,}$`i', $valeur ) ) 
    					{ 
    						$valid_form = 2; // ERREUR caracteres speciaux
    					}
    		}				
    	} else { 
    		$valid_form = 3; // ERREUR nom vide
    	}
     
    	// OK si pas d'erreur
    	if($valid_form != 2 && $valid_form != 3){
    		$valid_form = 1; // OK
     
    		// INSERTION EN BASE DE DONNEES
    		// Protection des données avant insertion
    		$BD_NAME_ENV = mysql_real_escape_string($NAME_ENV);
    		$BD_DESC_ENV = mysql_real_escape_string($DESC_ENV); 
    		$BD_COM_ENV = mysql_real_escape_string($COM_ENV); 
    		$BD_STATUS_ENV = mysql_real_escape_string($STATUS_ENV);  
    		$BD_DATETIME= mysql_real_escape_string($DATETIME);
    		$BD_IP_REQ_ENV = mysql_real_escape_string($IP_REQ_ENV);
     
    		// INSERTION EN BASE DE DONNEES
    		// requête ....................
    	}
    }
    ?>
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <!-- .............. -->
    <?php if( $valid_form == 1 ) { ?>
    	<p>Super tout va bien, insertion dans ma base</p>
    <?php } elseif( $valid_form == 2 ) { ?>
    	<p>Ne peux pas contenir de caracteres speciaux !</p> 
    <?php } elseif( $valid_form == 3 ) { ?>
    	<p>Vous devez spécifier un nom !</p>
    <?php } ?>
    mysql_real_escape_string() n'a d’intérêt qu'AVANT insertion en BdD.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Par défaut
    Ca fonctionne du tonnerre, merci. il faut juste que je revois ma regexp

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

Discussions similaires

  1. verifier que tout les champs du formulaire sont remplis
    Par dirty_harry dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/03/2012, 12h50
  2. Vérifier que les champs sont remplis - formulaire
    Par bond70 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/11/2011, 23h22
  3. Selectionner tout les champs d'un formulaire dans un element
    Par berlo44 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 26/06/2011, 11h59
  4. Vérifier les champs d'un formulaire
    Par Olivier Regnier dans le forum Web
    Réponses: 6
    Dernier message: 12/11/2007, 11h04
  5. [Formulaire] vérifier les champs d'un formulaire
    Par mariafan dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 28/12/2006, 19h05

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