Problème de header avec IE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de header avec IE

par ote » 06 mai 2009, 15:04

Merci à tous pour votre aide. Je vais donc modifier le programme pour intégrer les sessions. Renommer les variables ne suffira pas étant donné qu'en moyenne il y a 5000 caractères dans $chaine.

Je ne peux pas mettre résolu sur le sujet car je ne m'était pas loguée quand j'ai écris le premier message.

ote

par AB » 05 mai 2009, 20:38

Une idée pour résoudre ce problème sans devoir tout refaire avec des sessions ?
Ce serait quand même plus adapté avec des sessions et éventuellement une petite partie de tes variables dans l'URL de redirection.

par zeus » 05 mai 2009, 19:49

Que contient ta chaine ?

par D4Y » 05 mai 2009, 19:45

renommer tes variables plus court
ex: ?variable= devient ?var=

par ote » 05 mai 2009, 19:28

Bon ben j'ai fini par trouvé ce qui posait problème à force de faire des test : l'url est trop longue pour ie dont la limite est de 2083 caractères alors que pour firefox c'est 65 536. Et effectivement le formulaire est très long et il y a donc un paquet d'info à passer par l'url.

Une idée pour résoudre ce problème sans devoir tout refaire avec des sessions ?

par ote » 05 mai 2009, 16:46

non, l'adresse est correcte puisque
header('Location: http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . '/' . 'affiche_convention.php?variable=toto'); 
fonctionne et m'emmène bien sur la page affiche_convention.php

Je pense que le problème vient de la variable chaine qui est urlencodé avant d'être passé comme paramètre.

Dans $chaine il y a : $chaine = serialize($_POST);

par D4Y » 05 mai 2009, 13:53

essai un
echo 'Location: http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . '/' . 'affiche_convention.php?variable=' . urlencode($chaine) ;
Et regarde si l'adresse est correcte. Car p-e que firefox corrige des petites erreurs d'url et pas IE ;)

par Calimero » 05 mai 2009, 11:48

Bonjour,

Je suis sur un serveur mutualisé, je n'ai donc pas accès à mon error log.

Je ne comprends vraiment pas pourquoi cela fonctionne avec firefox et pas avec IE ?!?
Bonjour,

Même sur les mutualisés on peut avoir accès à l'error log, en général c'est mis en place par ton hébergeur. Il suffit qu'il soit stocké dans ton arborescence ftp, souvent pas loin de ton espace web. Souvent il se trouve dans le même répertoire que les logs ordinaires.

Je ne vois pas vraiment comment ton problème s'expliquerait par le navigateur, par contre la forme de l'url qui déclenche l'erreur est la clé pour comprendre ton souci, d'où l'intérêt de l'error log. Rapproche-toi de ton hébergeur pour y avoir accès si ce n'est pas déjà le cas.

par ote » 05 mai 2009, 10:40

Bonjour,

Je suis sur un serveur mutualisé, je n'ai donc pas accès à mon error log.

Je ne comprends vraiment pas pourquoi cela fonctionne avec firefox et pas avec IE ?!?

Re: Problème de header avec IE

par Calimero » 05 mai 2009, 06:12

Tout fonctionne parfaitement sous FF mais sous IE j'ai le droit a une jolie 404...
Si tu as une 404, alors tu dois avoir une entrée correspondante dans ton error log avec l'URL demandée qui a déclenché l'erreur... Et il te sera alors très facile de comprendre ce qui cloche dedans.

Problème de header avec IE

par Invité » 05 mai 2009, 01:51

Bonsoir,

J'ai un problème avec un header de redirection dans un de mes scripts, UNIQUEMENT sous IE. Sous FF rien à signaler.
header('Location: http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . '/' . 'affiche_convention.php?variable=' . urlencode($chaine));
Cette ligne est sensée rediriger vers une autre page en lui passant en parametre la chaine $chaine après l'avoir préalablement urlencodée.
Tout fonctionne parfaitement sous FF mais sous IE j'ai le droit a une jolie 404...
Par contre, si je fais
header('Location: http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . '/' . 'affiche_convention.php?variable=toto');
Je retrouve effectivement toto en paramètre...
Avez vous une idée pour solutionner mon probleme ?
Merci,
ote[/php]