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 :

Récupération de la valeur d'un champ "bug" [PHP 5.2]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    cccccccccccc
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : cccccccccccc
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut Récupération de la valeur d'un champ "bug"
    Bonjour,

    Je me heurte à un problème curieux. Dans mon formulaire j'ai un champ de ce type :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="id_pouet" type="hidden" name="id_pouet" value="3f40b84bea68d" />

    Quand je récupère le contenu de $_POST et que je fais un var_dump, j'ai ceci :
    ... ["id_pouet"]=> int(3) ...
    Savez-vous pourquoi il ne me retrouve pas tout le contenu du champ ?
    et pourquoi il ne le considère pas comme un string ?

    Merci !


    -----

    Je précise qu'en local sur un PHP v5.3.? je ne constate pas ce problème et que là il s'agit d'un hébergement mutualisé qui utilise soit du PHP v4.4.9 soit v52.17

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 376
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 376
    Billets dans le blog
    17
    Par défaut
    Probablement un traitement quelconque effectué sur ton formulaire (JavaScript ?) ou ton $_POST (filtrage, etc.).
    Tu laisses entendre qu'il y aurait peut-être un bug PHP4, as-tu reproduit le défaut avec un formulaire tout simple ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    if ( isset($_POST['foo']) ) {
        var_dump($_POST) ;
    }
     
    ?>
    <form method="post">
        <input type="hidden" name="foo" value="3f40b84bea68d">
        <input type="submit">
    </form>

  3. #3
    Membre averti
    Homme Profil pro
    cccccccccccc
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : cccccccccccc
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut
    Merci pour ton aide.

    J'ai fait en sorte d'être en 5.2.17 et il n'y a pas de bug de PHP, ton exemple marche parfaitement.

    D'ailleurs j'ai le même champ qui existe en old_id_pouet et pour lequel je récupère bien la valeur.

    Du coup je ne vois pas du tout ce qui parasite l'accès à cette variable, ça fonctionne pour 95 variables de mon formulaire mais pas pour 2.

    D'ailleurs qu'est-ce qui peut expliquer qu'il stop la lecture de la valeur aux premiers chiffres ?
    en appelant $_POST["id_pouet"], peut-on forcer le retour au format texte ?

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 376
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 376
    Billets dans le blog
    17
    Par défaut
    Du coup je ne vois pas du tout ce qui parasite l'accès à cette variable, ça fonctionne pour 95 variables de mon formulaire mais pas pour 2.
    Les 2 dernières présentées dans le formulaire ?


    D'ailleurs qu'est-ce qui peut expliquer qu'il stop la lecture de la valeur aux premiers chiffres ?
    Pour les 2 qui posent problème ?

    en appelant $_POST["id_pouet"], peut-on forcer le retour au format texte ?
    Les champs d'un formulaire sont toujours traités par PHP comme du texte, par exemple mon script pus haut donne array(1) { ["foo"]=> string(13) "3f40b84bea68d" }

    Si tu obtiens ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... ["id_pouet"]=> int(3) ...
    ... c'est que tu as quelque chose en amont qui essaie de transformer le champ en numérique. Va falloir tracer l'exécution de ton script.

  5. #5
    Membre averti
    Homme Profil pro
    cccccccccccc
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : cccccccccccc
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Les 2 dernières présentées dans le formulaire ?
    Non, au milieu à peu près

    Citation Envoyé par Séb. Voir le message
    Pour les 2 qui posent problème ?
    Oui, je n'ai pas noté de problème avec les autres champs

    Citation Envoyé par Séb. Voir le message
    ... c'est que tu as quelque chose en amont qui essaie de transformer le champ en numérique. Va falloir tracer l'exécution de ton script.
    J'ai tracé que dans ma page html le code semble ok, mais en appel de mon script php (après clique sur le submit) je ne récupère que des int(x).

    Ce que je ne comprend pas c'est que je n'ai pas ce problème en local (php v5.3.x) avec les mêmes fichiers et une même structure de base.

    Il me reste comme hypothèse :
    soit un paramétrage différent du serveur PHP ?
    soit un filtrage de l'hébergeur mais ça me semblerait très surprenant ?

    Est-ce que ça peut être lié à un problème d'encodage de caractère ? les accents dans mes données n'ont pas le même affichage. Mais même comme ça je ne vois pas le rapport avec ce comportement.

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 376
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 376
    Billets dans le blog
    17
    Par défaut
    J'ai tracé que dans ma page html le code semble ok, mais en appel de mon script php (après clique sur le submit) je ne récupère que des int(x).
    Et chez ton hébergeur le formulaire que j'ai donné en exemple donne aussi des ints plutôt que des strings ?

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 04/09/2006, 12h53
  2. Récupération de la valeur d'un champ au nom variable
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/02/2005, 15h13

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