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

PHP & Base de données Discussion :

Problème de passage d'infos avec $_POST


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut Problème de passage d'infos avec $_POST
    Salut à tous,

    Je vous expliques la situation... Je dois en gros corriger un bug sur une appli dans ma boite qui a été développée par un autre développeur... Bref ce dernier a mis un système d'authentification pour les utilisateurs qui fonctionne nickel sous tous les navigateurs sauf IE (bien sûr)...
    Après recherche intensive j'ai calculé que les données renvoyées (login et mdp) en $_POST ressortent vide sous IE alors qu'elles sont bien rempli...

    Le truc c'est que j'aimerai bien vous montrer du code mais c'est un gros dawa... Je crois qu'il a adapter le système d'authentification de symphony pour que ça fonctionne sur nos appli internes...

    Quelqu'un a déjà eu ce genre de bug ?

    Merci d'avance

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Si la nature du bug vient de la différence entre navigateur (IE ici par rapport aux autres), il est fort probable que ce soit lié à un code coté client : Html, Css ou JS (ou du Php qui le génère, ce qui revient au même).

    Observe par exemple le code source Html généré de cette page d’identification (plus particulièrement le formulaire).

    Après ça, il y a peut être des près-vérification en JS.
    Tu pourrais désactiver par exemple cette près-vérif et voir si l'identification fonctionne.
    Si c'est le cas, ça laisserait supposer que c'est la partie JS qui provoque cette erreur. Restera à savoir où, quel bout de code.

  3. #3
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Merci pour ta réponse

    J'ai essayé de désactiver le js mais rien à faire ça marche pas... Je commence à être désespéré

    Une autre idée ?

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Et concernant le code source Html généré, tu as observé ? Une erreur peut être ?

    As tu fais un print_r($_POST) (ou var_dump) pour afficher les données retournées ?
    Puis comparer avec celles que le code prévoit de récupérer. Il manque peut être une donnée, ou alors une erreur sur un nom.

    Tu peux aussi le faire sur 2 navigateurs différents, un où ça fonctionne et IE, puis comparer les données retournées.
    Il doit surement avoir (au moins) une différence sur une donnée.

    Bref ... tu dispose de moyens simples pour au moins savoir quelle est la source de l'erreur.

  5. #5
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    J'ai déjà tester ce que $_POST me retourné sur IE et sur Firefox... Sur IE j'ai un Array() vide tel quel et sur Firefox ça me retourne bien ce que je renvoi par mon formulaire...

    Au niveau du code source de ma page, il n'y a rien de plus simple comme page.. J'ai testé de retirer le js, jquery, css, en-tête.. ça ne change rien, c'est toujours pareil mon $_POST reste vide sous IE...

    Je suis à court d'idée, ça fait 2 jours que je suis dessus et rien de nouveau pour l'instant.. C'est vraiment trop triste...

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    J'ai déjà tester ce que $_POST me retourné sur IE et sur Firefox... Sur IE j'ai un Array() vide tel quel et sur Firefox ça me retourne bien ce que je renvoi par mon formulaire...
    Je vais insister encore une fois, mais as tu observé (vraiment observé) le code Html généré ?
    Ne vois tu pas quelque chose d'anormal ? (Balise non fermée, ou mal placée, non conforme, etc ...)

    Post ici ce code Html, il doit avoir une erreur qui déboussole IE.

  7. #7
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Salut !

    Merci pour l'intérêt que tu portes à ma galère :p

    Voici le code source (j'ai volontairement retiré les adresses...) :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
      <title>Page d'accueil des logiciels SCLE</title>
      <meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
      <meta http-equiv="Content-Language" content="fr"/>
      <meta http-equiv="content-type" content="image/png"/>
      <link rel="icon" type="image/gif" href="params_index/skin/images/animated_favicon1.gif"/>
      <link rel="stylesheet" type="text/css" href="params_index/skin/skin_balises.css"/>
      <link rel="stylesheet" type="text/css" href="params_index/skin/skin_classes.css"/>
      <link rel="stylesheet" type="text/css" href="params_index/skin/skin_classes_IE.css"/>
      <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
    </head>
    <body>
        <div class="bandeau"></div>
     
        <div class="logo"></div>
        <div class="log">
            <!--    Page d'accueil Toulouse
        -->
        </div>
        <div class="contenu">
        <div class="menu_gauche"></div>
        <div class="menu_barre"></div>
        <div class="menu_droite"></div>
     
        <div class="corps">
        <h1>Authentification</h1>
     
        <form method="post" action="http:/monadresse/scle_prod.php?module=secure&action=authenticate" enctype="application/x-www-form-urlencoded" name="loginform">
                <table id="connexion" align="center" border="0" cellpadding="6" cellspacing="0">
                        <tr>
                            <td colspan="2" height="70" style="color: red; text-align: right">
                                                        </td>
     
                        </tr>
                        <tr>
                            <td align="right" nowrap="nowrap"><label for="authenticate_login">Nom d'utilisateur:</label></td>
                            <td align="left" nowrap="nowrap"><input type="text" name="authenticate[login]" id="authenticate_login"/></td>
                        </tr>
                        <tr>
                            <td align="right" nowrap="nowrap"><label for="authenticate_password">Mot de passe:</label></td>
                            <td align="left" nowrap="nowrap"><input type="password" name="authenticate[password]" id="authenticate_password" /></td>
                        </tr>
                        <tr>
                            <td colspan="2">&nbsp;</td>
                        </tr>
                        <tr>
                            <td colspan="2" align="center">
                                <input type="submit" value="Connexion!" />
                                <input type="reset" value="Reset" />
                            </td>
                        </tr>
                    </table>
                    <center>les Cookies doivent être activés sur votre browser</center>
        </form>
    </div>
     
     
        <div class="pied"><span class="top_deco"></span></div>
     
        <center>
            <span class="about">
                Made by XXX | Page d'accueil des logiciels XXX v0.X 
                            | <a href="/monadresse.php?module=secure&action=authenticate&url_referer=http%3A%2F%2Ftsfe-svn%2Fscle_prod.php%3Fmodule%3Dsecure%26action%3Dauthenticate" style="margin-left: 0px">Changer d'utilisateur</a>
                <!--            | <a href="scle_prod.php?filtre=0" style="margin-left: 0px">Afficher tous les boutons</a>
                -->
            </span>
        </center>
        </div>
    </body>
    </html>

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Tu utilises un doctype xHTML strict qui par définition est strict, or, ton code ne respecte pas cette norme.

    Je te conseil d'opter pour un doctype moins contraignant, du transitionnal par exemple, tu n'est apparemment pas près pour du strict.

    Entre autre, les balises comme <font>, <center>, etc ..., y compris les attributs comme align="center", etc ..., c'est pour faire de la mise en forme.
    C'est une manière obsolète de procéder ainsi, de plus non conforme en xHTML.
    Depuis pas mal de temps déjà il est dit que c'est au Css de faire la mise en forme, le xHTML se réserve à créer une structure et surtout de donner du sens aux contenus.

    Par ailleurs, utiliser un tableau pour un contenu d'identification, ce n'est pas correcte, là encore tu recherches à faire de la mise en forme.
    En utilisant un tableau tu fausses quelque part le sens de ce contenu qui n'est pas tabulaire (pas des statistiques, données comptables, etc ...).



    Mise à part cette parenthèse, je ne vois pas quel est le ou les éléments déboussolant autant IE jusqu'à ne rien retourner, même en faisant quelques essaies avec quelques unes des erreurs.

    Du coup et faute de mieux, je ne vois pas d'autres solutions que de partir sur un code le plus minimaliste/basique possible, quelque chose comme :
    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
    20
    21
    22
    23
    24
    25
    26
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
      <title>Page d'accueil des logiciels SCLE</title>
      <meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
      <meta http-equiv="Content-Language" content="fr"/>
    </head>
    <body>
    <div>
     
        <form method="post" action="http://monadresse/scle_prod.php?module=secure&action=authenticate" enctype="application/x-www-form-urlencoded">
        <fieldset>
            <label for="authenticate_login">Nom d'utilisateur:</label>
            <input type="text" name="authenticate[login]" id="authenticate_login"/>
            <br />
            <label for="authenticate_password">Mot de passe:</label>
            <input type="password" name="authenticate[password]" id="authenticate_password" />
            <br />
            <input type="submit" value="Connexion!" />
            <input type="reset" value="Reset" />
        </fieldset>
        </form>
     
    </div>
    </body>
    </html>
    Essai de partir sur quelque chose de fonctionnel.
    Puis après de réintégrer petit à petit les autres codes en testant à chaque fois, en espérant de "tomber" sur le code provoquant cette erreur.

  9. #9
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Merci encore une fois pour tes réponses, je comprends tout à fait ce que tu veux dire mais ce n'est pas moi qui ai fait le code et on m'a demandé de ne pas trop y toucher.. (je sais c'est abérrant...) De plus tout le code "behind" est généré par des fonctions bizarre lol

    Je vais essayé de faire comme tu dis et je te tiens au courant

    Encore merci

  10. #10
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    je comprends tout à fait ce que tu veux dire mais ce n'est pas moi qui ai fait le code et on m'a demandé de ne pas trop y toucher.. (je sais c'est abérrant...)
    Tout dépend de l'ensemble de ton environnement, comment tout cela tourne, mais théoriquement il y a moyen de faire ça sans toucher aux codes (des fonctions entre autre).

    Par exemple, tu as ce code html généré qui lui comporte l'erreur.
    Il suffit de créer une page de test, (genre test.php) et y mettre ce code dedans.
    Puis changer le nom de la page coté formulaire par "test.php", ce qui fait quelle pointera sur elle même.
    Ensuite pointer sur cette page.
    Puis rajouter au tout début un print_r($_POST).
    Au départ tu devrais remarquer le même problème, soit un $_POST vide.

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Je ne sais pas si c'est lié mais je sais que pour que mes sites fonctionnaient bien sur IE il fallait utiliser une balise du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    Peut être que ça vient de la ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/03/2013, 17h17
  2. Problème de passage MCD -> MLD avec ModelSphere
    Par cover70 dans le forum Modélisation
    Réponses: 3
    Dernier message: 12/12/2012, 00h49
  3. [FPDF] Problème avec $_POST
    Par coco38 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/04/2007, 13h46
  4. Réponses: 6
    Dernier message: 20/04/2007, 08h56
  5. problème de passage de texte avec getvariable
    Par VincentB dans le forum Flash
    Réponses: 2
    Dernier message: 12/01/2004, 18h35

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