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 :

[Système] condition if qui sexécute quand même


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut [Système] condition if qui sexécute quand même
    Bonjour à tous,

    je fais un test sur champ pour savoir s'il est vide ou rempli :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    if(isset($_POST["telephone"])) {$telephone = $_POST['telephone'];} else { $telephone = "";}
     
    // ci-dessous le code qui nous intéresse
     
    if (isset($telephone))
    {
    if (myIsInt($telephone) == false) { $erreur[] = '<center><font color="#FF0000">Le champ <b>Telephone</b> doit être numerique!</font></center>';}
    }
    le souci c'est que mon champ telephone n'est pas rempli et la condition if s'exécute quand même. En gros j'ai le message d'erreur le champs doit être numérique alors qu'il n'est même pas rempli.

    merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    bonjour,

    isset ne teste pas si ta variable est vide mais si elle existe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($telephone) && trim($telephone) != "")
    avec ca cela devrait fonctionner
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  3. #3
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Moi j'aurait dit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($telephone))
    Mais bon ça revient au même
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  4. #4
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut
    Salut.

    Je ne connais vraiment la fonction de ton code, donc je vais peut être dire une connerie.
    Mais si ta variable telephone vient d'une autre page tu devrais mettre :

    if (isset($_GET['telephone']))

    Au lieu de

    if (isset($telephone))

    Enfin, j'avais un soucis similaire avec les isset en passant à la version php5 à cause des POST et des GET qui étaient devenus obligatoire.

  5. #5
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    oui c'est vrai guitou12, mais le probleme avec empty(), c'est que si l'utilisateur appuie sur la barre d'espacement, l'espace n'est pas nul ni vide et la, tu ne rentrera plus dans ta condition
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  6. #6
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par yiannis
    oui c'est vrai guitou12, mais le probleme avec empty(), c'est que si l'utilisateur appuie sur la barre d'espacement, l'espace n'est pas nul ni vide et la, tu ne rentrera plus dans ta condition

    C'est vrai de toute façon pour un test de numéro de téléphone ça reste léger il faudrait faire un regex ou plus simplement calculer la longueur de la chaine et vérifier qu'on a que des chiffres
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  7. #7
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par Andalor
    Salut.

    Je ne connais vraiment la fonction de ton code, donc je vais peut être dire une connerie.
    Mais si ta variable telephone vient d'une autre page tu devrais mettre :

    if (isset($_GET['telephone']))

    Au lieu de

    if (isset($telephone))

    Enfin, j'avais un soucis similaire avec les isset en passant à la version php5 à cause des POST et des GET qui étaient devenus obligatoire.
    Salut, si tu avais lu son code tu aurais vu que $telephone est soit vide soit à la valeur de $_POST['telephone'], c'était écrit 2 lignes plus haut tu n'as même pas daigné regarder avant de répondre.......
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  8. #8
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    dis moi sam01, ta fonction myIsInt() fait quelque chose de particulier ou elle teste juste si $telephone est numerique?
    Parce que tu sais tu a une fonction php pour le faire: is_numeric()
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  9. #9
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    bonjour,

    is-numeric n'était pas suffisant, voici ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    function myIsInt($x)
    									{  
    										return(is_numeric($x) ? intval(0+$x) == $x : false);   
    									}
    merci pour ta réponse. je teste cela.

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

Discussions similaires

  1. try except qui affiche quand même l'erreur
    Par Basile le disciple dans le forum Débuter
    Réponses: 13
    Dernier message: 21/06/2015, 19h44
  2. Réponses: 2
    Dernier message: 22/03/2012, 12h24
  3. [Débutant] Une condition banale qui s’exécute mal!
    Par kouniba dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/09/2011, 16h50
  4. Background no repeat qui "repeat" quand même
    Par mariepierre dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 15/09/2010, 14h32
  5. Réponses: 2
    Dernier message: 16/12/2006, 19h00

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