Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 25/02/2011, 14h28   #1
Candidat au titre de Membre du Club
 
Homme Marc
Inscription : juillet 2009
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 25
Points : 11
Points : 11
Par défaut Problème header IE7

Bonjour,
J'ai un problème avec un header("location: blabla.php").
Sous FFox, le header arrète le déroulement du script sur la page en question pour renvoyer sur blabla.php => C'est bien ce que j'attend.
Par contre, sous IE7, le script continue après le header. J'ai mis un exit, mais cela continue tout de même après le exit => Cela pose ensuite des problème à mon script.
Je n'ai pas trouvé de réponse à mon problème.
Pour info, qq lignes de code:
Code :
1
2
3
4
header('Location: ma_page.php');// On redirige la page d'accueil 
Log::toLog($debugger,"inscrire.php: contrôle Ok après header: ",$cheminLog); // écriture dans la log si ouverte
exit();
Log::toLog($debugger,"inscrire.php: contrôle Ok après exit: ",$cheminLog); // écriture dans la log si ouverte
Merci d'avance pour votre aide
a066043 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 15h09   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il est impossible que le script continue après un exit()
Tu interpretes mal le résultat ou bien tu n'arrives jamais à cette ligne.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h40   #3
Candidat au titre de Membre du Club
 
Homme Marc
Inscription : juillet 2009
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 25
Points : 11
Points : 11
Par défaut C'est Ok => cela semblait ok

Fausse joie: J'ai un moment cru que le problème était résolu, mais je me suis trompé.
Effectivement, comme tu l'as dit, le script ne va pas au delà du exit(). Pourtant, dans certains cas il reprend le script depuis le début au lieu de suivre le header ma_page.php.
Et là, je ne comprend pas : Depuis que j'ai mis le exit(), il fonctionne "de temps en temps". J'essaie d'investiguer la raison de ce "de temps en temps".
a066043 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 10h55   #4
Candidat au titre de Membre du Club
 
Homme Marc
Inscription : juillet 2009
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 25
Points : 11
Points : 11
Par défaut Toujours pas résolu

Bonjour,
J'ai l'impression de n'avoir pas été très clair dans mes explications précédentes. Voici donc un état des lieux de mon problème.
J'ai une page qu'on appellera "inscrire.php" dans laquelle je reçois les données issues d'un formulaire.
J'effectue des contrôles dans "inscrire.php" dont un contrôle d'existence du user entré dans l'inscription.
Si le contrôle est OK, j'enregistre mon utilisateur en bd et je redirige vers la page "maPage.php" à l'aide d'un
Code :
1
2
header("location: maPage.php");
exit();
J'ai par ailleurs positionné des liogs en début de page maPage.php et inscrire.php
Le problème est que sous Internet Explorer 7 (chose qui ne se produit pas sous FF), au lieu de lancer maPage.php après avoir constaté que le formulaire est Ok, il relance la même page inscrire.php. La conséquence est que après avoir inscrit l'utilisateur et enregistré en bd, il re-contrôle que ce même user n'existe pas, s'aperçoit qu'il existe (puisqu'il avait été enregistré lors du premier passage) et renvoie donc une information comme quoi l'inscription est KO.
Autre information depuis la dernière fois, cela ne se produit que lorsque javascript est actif => Je me suis aperçu de cela de manière totalement hasardeuse en desactivant js afin d'aller plus vite pour reproduire l'erreur. Je ne comprend pas bien le rapport avec javascript mais le fait est que cela fonctionne lorsque js est desactivé et ne fonctionne pas lorsqu'il est actif.
Merci de me donner vos impressions sur la question.
a066043 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 11h28   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
as-tu du javascript quelque part ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 11h45   #6
Candidat au titre de Membre du Club
 
Homme Marc
Inscription : juillet 2009
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 25
Points : 11
Points : 11
Bonjour Sabotage,
J'ai bien du javascript dans maPage.php (page vers laquelle on devrait rediriger).
J'en ai aussi dans la première page de formulaire qui appelle "inscrire.php", mais je n'en ai pas dans "inscrire.php".

Bonjour,
Pour information, j'ai fini par mettre en place une affreuse rustine pour régler mon problème (utilisation de la SESSION pour vérifier si on est déjà passé sur la page inscrire.php).
Je laisse le sujet ouvert car si vous pouviez m'aider à corriger proprement ce problème, cela m'arrangerait.
Merci
a066043 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 16h32   #7
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149


Le problème se situe sur la page qui contient le formulaire d'inscription. Je suis prêt à parier que tu valides ton formulaire d'inscription en Javascript (genre après des contrôles sur les champs), et que cette validation se fait 2 fois, ou qu'une autre page est appelée par un location.href en JS...

Bref, vérifie bien ce JS qui s'exécute sur ta première page, c'est presque certain que ton problème vient de là.

Dav
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/03/2011, 10h37   #8
Candidat au titre de Membre du Club
 
Homme Marc
Inscription : juillet 2009
Messages : 25
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 25
Points : 11
Points : 11
Par défaut Bravo

Bravo torvalds17,
Effectivement, c'est bien la page du formulaire qui ne marchait pas. Pour résumer, j'avais un contrôle de formulaire et selon le cas, lancement du submit ou pas.
En fait , je n'effectuais pas de preventDefault sur le submit du formulaire avant le contrôle, mais uniquement si le contrôle était Ko.
Du coup, si le contrôle était ok, je faisais un superbe formulaire.submit(). Etant donné que je ne l'avais pas stoppé avant, dans le cas où le contrôle était ok, je lançais 2 fois le submit.
Merci vous deux pour m'avoir aidé à corriger ce bug dont la source était bien cachée.
a066043 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 17h19   #9
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149
De rien, et n'oublie pas de passer ce topic en
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h00.


 
 
 
 
Partenaires

Hébergement Web