Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2012, 16h33   #1
Membre éclairé
 
Avatar de Sekigawa
 
Développeur Web
Inscription : mars 2008
Messages : 426
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 426
Points : 316
Points : 316
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
__________________
Cookie : Anciennement petit gâteau sucré, qu'on acceptait avec plaisir. Aujourd'hui : petit fichier informatique drôlement salé, qu'il faut refuser avec véhémence.
Sekigawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 19h49   #2
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 737
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 737
Points : 3 306
Points : 3 306
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.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 10h44   #3
Membre éclairé
 
Avatar de Sekigawa
 
Développeur Web
Inscription : mars 2008
Messages : 426
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 426
Points : 316
Points : 316
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 ?
__________________
Cookie : Anciennement petit gâteau sucré, qu'on acceptait avec plaisir. Aujourd'hui : petit fichier informatique drôlement salé, qu'il faut refuser avec véhémence.
Sekigawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 11h35   #4
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 737
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 737
Points : 3 306
Points : 3 306
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.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 14h44   #5
Membre éclairé
 
Avatar de Sekigawa
 
Développeur Web
Inscription : mars 2008
Messages : 426
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 426
Points : 316
Points : 316
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...
__________________
Cookie : Anciennement petit gâteau sucré, qu'on acceptait avec plaisir. Aujourd'hui : petit fichier informatique drôlement salé, qu'il faut refuser avec véhémence.
Sekigawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 19h50   #6
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 737
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 737
Points : 3 306
Points : 3 306
Citation:
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.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 08h56   #7
Membre éclairé
 
Avatar de Sekigawa
 
Développeur Web
Inscription : mars 2008
Messages : 426
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 426
Points : 316
Points : 316
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 :
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>
__________________
Cookie : Anciennement petit gâteau sucré, qu'on acceptait avec plaisir. Aujourd'hui : petit fichier informatique drôlement salé, qu'il faut refuser avec véhémence.
Sekigawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 11h01   #8
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 737
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 737
Points : 3 306
Points : 3 306
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 :
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.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 14h12   #9
Membre éclairé
 
Avatar de Sekigawa
 
Développeur Web
Inscription : mars 2008
Messages : 426
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 426
Points : 316
Points : 316
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
__________________
Cookie : Anciennement petit gâteau sucré, qu'on acceptait avec plaisir. Aujourd'hui : petit fichier informatique drôlement salé, qu'il faut refuser avec véhémence.
Sekigawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 14h33   #10
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 737
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 737
Points : 3 306
Points : 3 306
Citation:
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.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 16h55   #11
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 309
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 309
Points : 74
Points : 74
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 :
1
2
 
<meta http-equiv="X-UA-Compatible" content="IE=edge">
Peut être que ça vient de la ?
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h33.


 
 
 
 
Partenaires

Hébergement Web