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 :

[PHP-JS] Problème de test de champ vide et validation


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut [PHP-JS] Problème de test de champ vide et validation
    Hi all !

    Alors voilàa un problème qui à première vue me paraît simple, mais dont je ne vois pas d'où peut provenir le problème et comment le résoudre surtout.

    Dans un formulaire je dispose de 2 champs obligatoire "societe" et "nom", je test s'il sont vide et si ils le sont une alerte en javascript le dit, sinon les données sont envoyé à la base de donnée.

    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
     
    if(isset($_POST['modifSubmit'])){
     
    // Insertion des informations envoyées par le formulaire dans des variables. 
    		$societe = $_POST['societe'];		$nom = $_POST['nomConsult'];
    		$prenom = $_POST['preConsult'];		$fonction = $_POST['fonction'];
    		$numRue = $_POST['numRue'];			$adresse = $_POST['nomRue'];
    		$codePost = $_POST['codePost'];		$ville = $_POST['ville'];
    		$telFix = $_POST['telFix'];			$telFax = $_POST['telFax'];
    		$telMob = $_POST['telMob'];			$mail = $_POST['mail'];		
    		$id_consult = $_POST['id_consult'];
     
    //Verification des champs société et nom, si  champs existants -> Insertion dans la BDD, sinon Alerte Javascript.
    	if($societe == ""){
    		echo"<script language='Javascript'>
    			 <!--\n
    			alert('Aucune société n\'a été précisé\nVeuillez entrer le nom d'une société pour modifier les informations.');
    			history.back();
    			//-->
    			</script>\n";
    		}
    		elseif($nom == ""){
    			echo"<script language='Javascript'>
    				 <!--\n
    				 alert('Aucun nom n\'a été précisé\nVeuillez entrer le nom du consultant pour modifier les informations.');\n
    				 history.back();
    				 //-->
    				 </script>\n";
     
    		}
    		else{
    			$req="UPDATE consultants SET societe = '$societe', nom = '$nom', prenom = '$prenom', fonction = '$fonction',
    					numRue = '$numRue', rue ='$adresse', codepostal ='$codePost', ville ='$ville', tel_fixe ='$telFix',
    					tel_fax='$telFax', tel_mobile='$telMob', mail ='$mail' where id_consult = '$id_consult'";
    			mysql_query($req);
    			$modif=mysql_insert_id();
    }
    }
    Et le problème est que rien ne se passe, si le champ societe ou le chan nom sont vides, la redirection du formulaire se fait sans les alertes et sans rien modifier à la base. Quand il sont vide, la modif de la base de données se fait correctement.

    G essayé avec "empty()", pareil ...

    Merci pour vos réponses !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 47
    Points : 38
    Points
    38
    Par défaut
    Salut,

    Tu as pensé à la fonction isset, pour tester si une variable est définie?

    if (!isset($variable))
    {
    code javascript....
    }

  3. #3
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    J'ai essayé et ça veut rien savoir, Ce qui m'intrigue le plus c'est que j'ai déjà utilisé test pour l'ajout d'une personne et ça fonctionne très bien mais là ...

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    la question que je pose vois tu, est celle là: est ce que les variables dont tu parles sont vraiment vides? parce que ne confonds pas l'espace ou des espaces et le vide. je dis ça parce que ta condition n'est pas vraiment correcte
    if($societe == "")
    pour faire ça, supprime d'abord les espaces qui sont de a gauche et a droite du contenu de la variable. je pense qu'il ya des fonctions pour cela mais j'ai pas ça en tete.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 47
    Points : 38
    Points
    38
    Par défaut
    Lorsque j'ai des champs obligatoires à la saisie, j'utilise toujours le même bout de code qui a toujours marché pour moi :

    Par exemple pour un numéro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!isset ($_POST['num']) || $_POST['num']== "")

  6. #6
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    J'ai testé comme tu m'as dit, mais ça ne fonctionne pas, quand je valide la modification des infos, la base se change bien, mais l'alerte java disant que " la modification a bien été effectué" n'existe pas.

    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
    	if(isset($societe)){
    		echo"<script language='Javascript'>
    			 <!--\n
    			alert('Aucune société n\'a été précisé\nVeuillez entrer le nom d'une société pour modifier les informations.');
    			history.back();
    			//-->
    			</script>\n";
    		}
    		elseif(isset($nom)){
    			echo"<script language='Javascript'>
    				 <!--\n
    				 alert('Aucun nom n\'a été précisé\nVeuillez entrer le nom du consultant pour modifier les informations.');\n
    				 history.back();
    				 //-->
    				 </script>\n";
    		}

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    Citation Envoyé par Athorus
    Lorsque j'ai des champs obligatoires à la saisie, j'utilise toujours le même bout de code qui a toujours marché pour moi :

    Par exemple pour un numéro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!isset ($_POST['num']) || $_POST['num']== "")
    je suis pas sur que ton code marche a 100% . pour tester, met l'espace dans le champs correspondant a la valeur $num de ton form. je parie que ça va planter

  8. #8
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Salut

    Je ferais dans l'ordre des choses avec la condition au départ de ton script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if(isset($_POST) && (empty($societe) OR (empty($nom))))
    {
     
    echo"<script language='Javascript'>
    			 <!--\n
    			alert('Les champs Societe et Nom sont obligatoires.');
    			history.back();
    			//-->
    			</script>\n";
    }
    else 
    {
    $req="UPDATE .......................

  9. #9
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    Alors le code D'alain31tl fonctionne mais je n'arrive toujours pas à comprendre pourquoi le test ne marche pas comme je l'ai écrit, sachant qu'il marche pour d'autre test ...

  10. #10
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par mLk92
    Alors le code D'alain31tl fonctionne mais je n'arrive toujours pas à comprendre pourquoi le test ne marche pas comme je l'ai écrit, sachant qu'il marche pour d'autre test ...
    A cause de ta ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['modifSubmit'])){
    Tes requêtes sont exécutées car il y a effectivement "quelque chose" de posté, sans précisions toutefois.

  11. #11
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    Donc si je fait un truc du style :

    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
    if(isset($_POST)){
      if(empty($societe)){
                echo"<script language='Javascript'>
    			 <!--\n
    			alert('Les champs Societe et Nom sont obligatoires.');
    			history.back();
    			//-->
    			</script>\n";
    }elseif(empty($nom)){
    	echo"<script language='Javascript'>
    			 <!--\n
    			alert('Les champs Societe et Nom sont obligatoires.');
    			history.back();
    			//-->
    			</script>\n";
    		}
    		}else{
    update ...
    ça fonctionnera ?

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    personnellement je pencherai pour la condition suivante:
    if(isset($_POST['societe'])&&(trim($_POST['societe'])!=""){
    ...............
    }

  13. #13
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Plus simplement et en rapport avec ton applic.
    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
     
    if(empty($_POST['societe']))
    {
    echo"<script language='Javascript'>
    			 <!--\n
    			alert('Le champs Societe est obligatoire.');
    			history.back();
    			//-->
    			</script>\n";
    }
    elseif (empty($_POST['nom']))
    {
    echo"<script language='Javascript'>
    			 <!--\n
    			alert('Le champs Nom est obligatoire.');
    			history.back();
    			//-->
    			</script>\n";
    }
    elseif ((empty($_POST['societe']) && empty($_POST['nom'])) 
    {
    echo"<script language='Javascript'>
    			 <!--\n
    			alert('Les champs Societe et Nom sont obligatoires.');
    			history.back();
    			//-->
    			</script>\n";
    }
    else
    {
    // C'est tout bon cette fois ?
     
    Tes ou ta requête.............
     
    }

Discussions similaires

  1. Test des champs vide d'un formulaire !
    Par misterg94 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 01/07/2009, 09h08
  2. Problème d'import db - Champs vides !?
    Par flu-1 dans le forum MySQL
    Réponses: 4
    Dernier message: 30/04/2009, 16h31
  3. erreur si test de champs vide
    Par jlb59 dans le forum Langage
    Réponses: 5
    Dernier message: 09/05/2008, 17h27
  4. [PHP-JS] problème de réecriture de champs de texte
    Par slyfer dans le forum Langage
    Réponses: 7
    Dernier message: 09/03/2007, 15h35
  5. [Access2000] test si champ vide qui marche pas ...
    Par michaelbob dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 10h46

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