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érification des champs d'un formulaire [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Vérification des champs d'un formulaire
    Bonjour a tout le monde ça fait maintenant quelques temps que je me promène sur ce forum (sans toutefois pouvoir aidé vu mon niveau..) et je vous remercie pour l'aide que ça ma apporté, aujourd'hui je viens avec mon formulaire sous le bras pour un peu aide sur la vérification des champs.

    Mon formulaire comporte une grande partie de champs obligatoire et quelques champs facultatifs.
    J'aimerais que les champs obligatoire soit remplis et ne contiennent pas de caractères spéciaux ainsi que vérifier le format de l'adresse e-mail

    Il en découle donc que les champs facultatifs peuvent être vides et si ils sont remplis pas de caractères spéciaux non plus.
    J'ai aussi dans ces champs facultatifs la possibilité de mettre une photo dont j'aimerais vérifier la taille si elle est présente.

    Maintenant le code que j'ai tenté pour respecter ces 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
    if ($_POST) // plus précisément fodrai mettre un champ caché ds le html avec une value kelconque, verifier $_POST[hidden_name] == hidden_value mé bon ca marche kan mem la
    {
    	$form_error = "";
    	while(list($id,$value) = each($_POST)) //Test sur remplissage des champs vide obligatoire et contenant des caracteres interdit 
    	{
    		if (!empty($value) && !preg_match('/^[a-z0-9]+$/i', $value) )
    		//if(empty($value) && $id != "photo" && $id != "street2" && $id != "url" && $id != "description" && $id != "mail") 
    			$form_error .= "Le champ ".$id." est vide ou incorrect<br />";
    		//if (!preg_match('/^[a-z0-9]+$/i', $value) )
    		//	$form_error .= "Le champ ".$id." est incorrect <br />";
    	}
     
    	if ($_POST[pass] == $_POST[repass])  // Test sur password
    		$form_error .= "password verification : OK";
    	else
    		$form_error .= "password error";
     
     
    	if ($_POST['mail'])   //Test sur l'adresse mail
    	{
    		$_POST['mail'] = htmlspecialchars($_POST['mail']); // faut utiliser htmlspecialchars sur chaq champs $_POST n'est il pas ? 
    			if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
    			$form_error .= "mail ok";
    			else
    			$form_error .= "Invalid mail format";
    	}
    	if ($form_error == "") // aucune erreur détectée
    		header('?page=confirm.php'); // redirection
    }

    Merci beaucoup de l'aide que vous pourrez m'apporter!

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonjour,

    Et il marche ou pas ton script ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    désolé petit oublie

    alors oui il marche mais j'arrive pas a faire des sortes d'exceptions sur les champs non obligatoire

    et je sais pas bien si mes conditions sont bonnes.

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Voici l'évolution du code:

    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
    if ($_POST['e_register_form'] == 'sent') // si le post vient du formulaire ...
    {
    	$form_error = "";
    	$formErr = array();
    	while(list($id,$value) = each($_POST)) // pour chaque champ
    	{
    		// Validation Champs avec espaces
    		if ($id=="street"||$id=="street2"||$id=="descr"||$id=="city")
    			$regexp = '/^[a-z0-9-\t]+$/i';
    		// Validation Champs sans espaces
    		if ($id=="nick"||$id=="pass"||$id=="firstname"||$id=="familyname"||
    			$id=="phone"||$id=="photo")
    			$regexp = '/^[a-z0-9_-]+$/i';
    		// Email
    		if ($id=="mail")
    			$regexp = '#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#';
    		// PostalCode
    		if ($id=="postal")
    			$regexp = '';
     
    		/* aucun tests sur : title */
     
    		// Validation (champs non vides)
    		if (!empty($value) && !preg_match($regexp, $value) ) {
    			$formErr[$id] = "<font color=\"red\">Invalid</font>";
    			$form_error .= "Field \" ".$id." \" is not valid...<br />";
    		}
    		// Test des champs non facultatifs
    		if (empty($value) && $id != "photo" && $id != "street2" && $id != "url" && $id != "description") {
    			$formErr[$id] = "<font color=\"red\">Required</font>";
    			$form_error .= "Field '".$id."' is required !<br />";	
    		}
    	}
     
    	if ($_POST[pass] != $_POST[repass])  // Test sur password
    		$form_error .= "Warning : Password mismatch !!<br />";
     
    	if ($_POST['policy']!= "agree")
    		$form_error .= "You must accept user policy ...<br />";
     
    	// AU FINAL : si pas d'erreur => insertion bd (enfin tentative d'insertion ..)
    	if (!$form_error)
    	{
    		$user[login] = $_POST[nick];
    		$user[password] = md5($_POST[pass]);
    		// ...
    		if (!db_newUser($user))
    			$form_error .= "Error : Insertion DB .... bad";
    	}
    }
    Les problèmes sont les suivants :

    -Le champ street, description,.. fait une erreur quand il y a des espaces
    -La vérification sur l'email ne fonctionne pas
    -On peut mettre lettre et chiffre dans la date de naissance

    Après il reste a faire un test quand une image est uploadé mais je vais tenté un truc et vous redirais plus tard

    Merci de m'aidé sur les problèmes cités ci-dessus je n'arrive pas a voir mon erreur (mauvaises utilisations des regxp? comment faire??)

Discussions similaires

  1. Vérification des champs d'un formulaire
    Par lunea dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/06/2007, 23h52
  2. Réponses: 14
    Dernier message: 20/05/2007, 16h44
  3. vérification des champs d'un formulaire avant envoi
    Par fey dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 18/05/2007, 17h34
  4. pbm vérification des champs d'un formulaire
    Par mariafan dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/12/2006, 13h35

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