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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Erreur dans la boucle :(


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Erreur dans la boucle :(
    Bonjour les développeurs,

    Voici le bout de code qui m'amène à vous...

    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 (empty($_POST['tel_societe'])) {
    				$erreur_tel_societe = ERR_TEL_SOCIETE;
    				$valid = false;
    				if (!is_numeric($_POST['tel_societe'])) {
    					$erreur_tel_societe = ERR_TEL_NUM_SOCIETE;
    					$valid = false;
    				} elseif (isset($_POST['tel_societe'])) {
    					$ts = $_POST['tel_societe'];
    					$tslen = strlen($ts);
    					if ($tslen < ERR_TEL_NUM_MIN_SOCIETE || $tslen > ERR_TEL_NUM_MAX_SOCIETE) {
    						$erreur_tel_societe = 'Vous devez renseigner '.ERR_TEL_NUM_MIN_SOCIETE.' caractères minimum et '.ERR_TEL_NUM_MAX_SOCIETE.' maximum';
    						$valid = false;
    					}
    				}
    			}
    Lorsque je lance le script il y a zéro erreur...
    MAIS (parce qu'il y a un "mais") il m'affiche directement la constante ERR_TEL_NUM_SOCIETE au lieu de ERR_TEL_SOCIETE si le champs est vide.

    Quelqu'un pourrait m'indiquer d'où cela vient SVP

    Merci à tous !

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    PHP étant un langage de script, la règle : c'est le dernier qui a parlé qui a raison.

    Ton code teste en premier (empty($_POST['tel_societe'])) et passe à $erreur_tel_societe = ERR_TEL_SOCIETE; si le test est vérifié.
    Ensuite l'exécution se poursuit, il vérifie ( ! is_numeric($_POST['tel_societe'])) et si c'est vérifié, il écrase la valeur de $erreur_tel_societe avec ce bout de code $erreur_tel_societe = ERR_TEL_NUM_SOCIETE;.

    Reprends la logique du code ou gère tes erreurs différemment.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bon...

    Ta réponse m'a fait bien mal... lol

    J'étais vraiment vraiment fatigué

    J'ai même failli répondre: "oui mais tu ne m'apprend rien"

    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
     
    				if (!is_numeric($_POST['tel_societe'])) {
    					$erreur_tel_societe = ERR_TEL_NUM_SOCIETE;
    					$valid = false;
    				} elseif (isset($_POST['tel_societe'])) {
    					$ts = $_POST['tel_societe'];
    					$tslen = strlen($ts);
    					if ($tslen < ERR_TEL_NUM_MIN_SOCIETE || $tslen > ERR_TEL_NUM_MAX_SOCIETE) {
    						$erreur_tel_societe = 'Vous devez renseigner '.ERR_TEL_NUM_MIN_SOCIETE.' caractères minimum et '.ERR_TEL_NUM_MAX_SOCIETE.' maximum';
    						$valid = false;
    					}
    				} if (empty($_POST['tel_societe'])) {
    					$erreur_tel_societe = ERR_TEL_SOCIETE;
    					$valid = false;
    				}

    Bref... Dat is DONE !!

    Thanks

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

Discussions similaires

  1. [MySQL] erreur dans une boucle ?You have an error in your SQL syntax; check the manual that c
    Par keokaz dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 17/10/2008, 23h08
  2. Gestion des erreurs dans une boucle While
    Par Gregory.M dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/08/2008, 20h57
  3. erreur dans une boucle
    Par levac dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/06/2007, 09h46
  4. Erreur dans une boucle et ne marche pas ?
    Par mitherkiller dans le forum SDL
    Réponses: 8
    Dernier message: 21/04/2007, 14h17
  5. Shell - Erreur dans une boucle for
    Par claralavraie dans le forum Linux
    Réponses: 4
    Dernier message: 11/01/2006, 13h45

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