Redirection Php

Eléphanteau du PHP | 11 Messages

25 août 2011, 14:58

Hello

je suis sur un projet (stage) en ce moment

j'ai développé mon appli en php 5.3 mais comme un boulet j'ai pas pensé a verifier la plateforme de production et c'est du 5.1 (bon ça aurait pu etre pire)

mais voila je n'arrive pas a effectuer une redirection (header), l'administrateur a mis l'error_reporting a 0 donc pas d'affichage d'erreur, de plus il n'est pas dispo jusqu'a mardi prochain

j'ai un fichier test :

Code : Tout sélectionner

<?php header("Location: planning.php"); ?>
et... "ça ne marche pas !!"

je n'ais pas de message d'erreur, pas de redirection, l'ecran reste blanc

si vous avez des pistes j'en veux bien :(

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

25 août 2011, 15:08

Aucune erreur de syntaxe, vérifie bien si la page "planning.php" existe dans le même dossier. Et ça n'a rien à avoir avec la version de PHP.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 11 Messages

25 août 2011, 15:23

le fichier existe bien et j'ai aussi essayé

Code : Tout sélectionner

<?php header("Location: http://www.google.fr/"); ?>
est ce que c'est possible de desactiver les header dans le php ini ?


dans mon phpinfo il y a :

Loaded Modules mod_headers

donc ça devrait être bon pourtant ?

Eléphant du PHP | 250 Messages

25 août 2011, 16:20

Bonjour
-1- Tu as essayé ça:
<?php error_reporting(-1); ?>
-2- Quand tu dis page blanche, il y a quoi dans ta barre d'adresse?
Tchô
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

25 août 2011, 17:06

Voici les spécifications de la fonction header (doc):
(PHP 4, PHP 5)

header — Envoie un en-tête HTTP

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

header() permet de spécifier l'en-tête HTTP string lors de l'envoi des fichiers HTML. Reportez-vous à » HTTP/1.1 Specification pour plus d'informations sur les en-têtes HTTP.

Attention:
----------------
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 11 Messages

25 août 2011, 17:14

Re ! j'ai essayé de mettre l'erro_reporting a -1 mais ça ne marche pas (toujours page blanche, même si je fait des fautes volontaires)

l'url dans la barre d'adresse reste la même

j'ai essayé de faire une requete grace a dragonfly dans opera, et voici le resultat

Code : Tout sélectionner

GET /livraison/planning/testredir.php HTTP/1.1 Host: caché User-Agent: Opera/9.80 (Windows NT 6.1; U; en) Presto/2.9.168 Version/11.50 Accept: text/html, application/xml;q=0.9, application/xhtml xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: en Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Connection: Keep-Alive, TE TE: deflate, gzip, chunked, identity, trailers
et voici le resultat

Code : Tout sélectionner

HTTP/1.1 200 OK Date: Thu, 25 Aug 2011 14:55:18 GMT Server: Apache X-Powered-By: PHP/5.1.6 Content-Length: 1 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html
rien de croustillant donc :| j'ai essayé la redirection sur un autre navigateur et elle ne marche pas non plus

mais elle marche pour d'autre sites donc c'est pas le navigateur

Eléphant du PHP | 250 Messages

25 août 2011, 17:22

Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards. [/b]
A la vue du peu de code que tu nous as donné, je serai plutôt d'accord avec ce qui précède...
Et ton fichier est en utf-8 sans BOM ?
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

Manserke
Invité n'ayant pas de compte PHPfrance

25 août 2011, 18:51

ok bah c'est surement ça

je l'ais encodé en Utf 8 tout cours :) je testerais demain la je suis pas sur l'intranet

j'aurais vraiment besoin d'un cours intensif sur les encodage parce que je suis vraiment nul a ça

Eléphanteau du PHP | 11 Messages

26 août 2011, 09:34

Re !

effectivement c'était bien ça ! :D sans vous j'aurais jamais trouvé !

merci :P

d'ailleurs je suis bête parce que, dans le header on vois clairement

Code : Tout sélectionner

Content-Length: 1
quel nul je fait :shock:

Eléphant du PHP | 250 Messages

26 août 2011, 09:35

Super! Content d'avoir pu t'aider!
Tchô
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."