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 :

type de donnée


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Points : 106
    Points
    106
    Par défaut type de donnée
    Bonjour

    Dans le morceau de code ci-dessous le type de la donnée saisie dans le formulaire est toujours de type string meme si c'est un nombre quelconque.

    Pour verifier si le type de donnée saisi est par exemple de type integer je peux utiliser la fonction is_integer qui va de toute façon toujours renvoyer faux vu que la donnée est toujours de type string.

    Comment faire pour connaitre le vrai type de donnée saisie et refuser en cas de saisie d'une chaine de caractères par exemple ?

    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
    <?php
     
    if(!empty($_POST["valider"]) && !empty($_POST["champ"]))
    	{
    	print(gettype($_POST["champ"]));
    	}
     
     
    print("
    
    <form action=".$_SERVER["PHP_SELF"]." method=\"post\">
    <input type=\"text\" name=\"champ\" />
    <button type=\"submit\" name=\"valider\">Valider</button>
    
    </form>
    ");
     
     
    ?>

  2. #2
    Membre actif Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Un is_numeric fait l'affaire en temps normal

  3. #3
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Le type de données envoyé est toujours une chaîne de caractères.
    Si tu veux vérifier que cette chaîne ne contient que des chiffres, tu as plusieurs solutions :
    - utiliser une fonction existante comme proposé par Gaara-Manga

    - utiliser des expressions régulières (http://php.developpez.com/faq/?page=..._controlchaine)

    - convertir la valeur en int puis de nouveau en chaîne de caractères, et comparer le résultat à la valeur initiale

    ...

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par Gaara-Manga Voir le message
    Un is_numeric fait l'affaire en temps normal
    Merci
    Tiens, c'est marrant, pourquoi la fonction "basique" is_numeric fonctionne alors que is_integer ou autre ne fontionnent pas ?

    Merci pour ton aide

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Parce que selon la doc PHP pour is_numeric :

    Retourne TRUE si var est un nombre ou une chaîne numérique, FALSE sinon.
    Et pour is_int :

    Retourne TRUE si var est un entier, FALSE sinon.

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

Discussions similaires

  1. interbase : types de donnés : AutoIncrement et Date ???
    Par delphien dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/04/2004, 17h29
  2. Type pour données de type email avec @
    Par jeff37 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/01/2004, 14h50
  3. Types de données interbase
    Par Clotilde dans le forum InterBase
    Réponses: 2
    Dernier message: 18/11/2003, 14h10
  4. Réponses: 2
    Dernier message: 22/09/2003, 11h23
  5. Convertir un type de donnée sous SQL Server
    Par Fleep dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/08/2003, 15h15

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