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 :

$_POST ou $_GET et le nom des champs


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 14
    Points
    14
    Par défaut $_POST ou $_GET et le nom des champs
    Bonjour.

    Dans un formulaire, j'ai des input du style :
    <INPUT type="text" name="nom.input" value="test"/>

    Si mon formulaire est de type GET, je vois bien dans mon url :
    http://monurl/mapage?nom.input=test

    Mais quand je récupère la page avec PHP, que ce soit en post ou en get, je ne réussis pas à récupérer ma valeur. J'ai remarqué qu'il transformait les points par des underscore.
    J'ai donc :
    $_GET[nom_input] = test alors que $_GET[nom.input] n'existe pas.

    Pourquoi PHP transforme les points ?
    Y a t'il un moyen de passer outre ?

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    tu ne peux pas nommer une variable avec un point , tu dois utiliser des underscore ou rien attacher le nom complet !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    php.net

    Un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés.

    EDIT : oups désolé j'ai été pris de vitesse
    Zend PHP5 Certification
    MySQL 4 Core Certification

  4. #4
    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
    Une méthode classqiue pour nommer les variables :
    - première lettre en minuscule pour ne pas confondre avec les classes
    - pas d'espace ni de points
    - première lettre des mots suivants en majuscule.

    Ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $variable
    $variableComplexe
    $variableEncorePlusLongue
    etc...
    • 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

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Gats Voir le message
    php.net
    Un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés.
    C'est donc bien PHP qui fait des restrictions sur le sujet.
    Dans la doc HTML du W3C, on a :
    ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
    Donc normalement, le point devrait être accepté.

    C'est un problème pour moi parce que je me vois mal renommer mes INPUT pour la bonne et simple raison qu'ils sont générés de manière automatique.
    En fait, au départ, les noms de mes input sont les clés de propriétés java dans un fichier de propriétés. C'est ce qui explique les points utilisés fréquemment dans ce cadre pour séparer les différents éléments.
    Pour des raisons de commodités, certaines de ces propriétés ont été incluses dans une table, et cette table de configuration peut être modifiée par un programme PHP. On propose à l'utilisateur de modifier les valeurs des propriétés par des champs input. Il est donc impératif que les clés restent identiques, sinon, ça n'aura aucun impact sur le programme java qui les utilise.

    Bref, je crois que je vais être obligé de ruser pour obtenir ce que je veux...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Bah vu qu'il remplace les point par des underscore, il suffit de le savoir, dans ton php tu met des underscore à la place des points, non ?
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  7. #7
    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
    Citation Envoyé par Calambo Voir le message
    Donc normalement, le point devrait être accepté.
    ...
    Bref, je crois que je vais être obligé de ruser pour obtenir ce que je veux...
    Non, le point ne devrait pas être accepté car il s'agit de l'opérateur de concaténation de chaînes en php, et a une autre signification pour les adresses URL.

    Alors oui, il va te falloir ruser...

    Amuses toi bien !
    • 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

  8. #8
    Membre éprouvé Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Points : 1 054
    Points
    1 054
    Par défaut
    mais là en l'occurence, nous n'avons pas affaire à des variables PHP mais à des variables HTML que PHP traite comme des chaines de caractères.

    Utiliser $_GET['nom.variable'] au lieu de $_GET[nom.variable] ne résoudrait pas le problème en plus d'être plus conforme aux recommandations du PHP

Discussions similaires

  1. récupérer la liste des noms des champs d'une table
    Par la_didise dans le forum Access
    Réponses: 2
    Dernier message: 29/05/2006, 16h55
  2. Modifier le nom des champs d'une table...
    Par Mr Capone dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2005, 10h22
  3. Delphi - Base donnée Paradox, problème de nom des champs
    Par mjp dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/01/2005, 21h10
  4. nom des champs d'une table
    Par K-ZimiR dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/04/2004, 14h21
  5. comment recuperer le nom des champs ?????
    Par e11137 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/01/2004, 10h00

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