Page 1 sur 2
Redirection en php
Posté : 03 nov. 2006, 13:40
par bmag
Bonjour,
J'ai effectué un script en PHP dans un fichier.
Ce script ne comporte qu'une seule et unique ligne que voici :
<?php header("Location:/resultat.htm"); ?>
Donc il s'agit d'un fichier nommé attente.php qui ne comporte qu'une seule et unique ligne (ça veut dire qu'il n'y a pas de ligne blanche ni une autre ligne que celle sus-citée).
Lorsque j'appelle cette page le resultat est le suivant :
Warning: Cannot modify header information - headers already sent by (output started at /var/www/22/s/e/m/attente.php:1) in attente.php on line 1
Quelqu'un peut-il m'éclairer ?
Posté : 03 nov. 2006, 13:47
par Ryle
Ton fichier attente.php tu l'appelles en direct dans l'url (ce qui perd probabelment un peu de son intérêt s'il ne fait rien d'autre) ou bien tu l'inclus depuis d'autres scripts ?
(Pis bon à priori ça semble évident que non, mais tu ne m'en voudras pas de poser la question quand même hein ?) Pas non plus d'espace avant le "<?php" ?
Posté : 03 nov. 2006, 13:53
par Invité
Le fichier PHP contient en réalité les lignes suivantes :
<?php
if(file_exists("resultat.xml"))
{
header("Location:/resultat.htm");
}
else
{
header("Location:/erreur.htm");
}
?>
Mais l'erreur est la même. Je l'appelle en saisissant directement l'adresse dan IE. Mais le but c'est de faire une redirection conditionnelle avant tout affichage.
Si je réduit à la ligne unique sitée, l'erreur est toujours présente
Posté : 03 nov. 2006, 14:08
par Invité
Pour répondre à ta question, le script a pour vocation d'être présent dans une page html, avant tout autre code. J'ai effectué plusieurs essais dans tous les sens mais toujours la même erreur. Il n'y a pas d'espace avant "<?php".
Posté : 03 nov. 2006, 14:33
par Shrell
dans une page html? essaye de la renommer en page.php pour voir

Posté : 03 nov. 2006, 14:40
par Ajoloca
Bonjour,
Certains disent que ça n'a pas d'importance, dans un serveur j'ai le souci (j'ai pas encore compris PQ) mais il me demande un espace entre les deux points (:) et l'adresse.
Essaie, on ne sait jamais.
Posté : 03 nov. 2006, 14:44
par Invité
Quand je dis html, c'est simplement que le reste du code de la page est en html. Mais évidement, l'extention est bien "PHP" (sinon, je n'aurais pas ce genre de message d'erreur).
J'ai également vérifié différentes façon de remonter ma page, dont LeechFTP au cas ou qque chose serait mal interprété,
j'ai également ouvert un incident au niveau de mon hébergeur (ONLINE) car ça me paraît vraiment trop bizarre...
Au pire si qqun pouvait m'indiquer comment effectuer une redirection conditionnelle sur la présence d'un fichier xml sur le serveur (donc la condition en PHP et éventuellement la redirection en javascript ?)
Merci par avance.
Posté : 03 nov. 2006, 14:45
par Invité
Certains disent que ça n'a pas d'importance, dans un serveur j'ai le souci (j'ai pas encore compris PQ) mais il me demande un espace entre les deux points (:) et l'adresse.
Essaie, on ne sait jamais.
déjà essayé...
merci qd même.
Posté : 03 nov. 2006, 15:08
par Ryle
Pour le faire en js il te suffit d'utiliser document.location = "ton_url";
<?php
if(file_exists("resultat.xml"))
echo '<script>document.location = "/resultat.htm";</script>';
else
echo '<script>document.location = "/erreur.htm";</script>';
?>
Mais je trouve étonnant ce genre de problème, surtout chez online..
Essaye éventuellement avec is_file() au lieu de file_exists() voir si cela change quelque chose ?
Posté : 03 nov. 2006, 15:13
par iclo
Pour le moi, le problème n'est pas un problème de redirection, mais est plus générale que ça : c'est un problème de header.
Es-tu sûr que tu n'as pas ne serait ce qu'un simple espace avant l'ouverture des balises php ?
Posté : 03 nov. 2006, 15:21
par bmag
Un grand Merci Ryle. ça marche du feu de dieu.
Le problème vient exclusivement de la fonction header, puisqu'appelée seule, elle provoque également l'erreur (cad sans la fonction file_exists).
Non iclo, pas le moindre espace.
Posté : 03 nov. 2006, 15:23
par iclo
Etrange, tu avais regardé le code source html de la page qui renvoyait l'erreur.
Javascript: attention ça peut toujours être désactivité par le visiteur.
Posté : 03 nov. 2006, 15:32
par Ryle
Javascript: attention ça peut toujours être désactivité par le visiteur.
C'est sur... mais ça reste quelques 2-3% des gens qui le font, et comme en général ca les empêche de profiter pleinement de 90% des sites internet, ils installent un bon antivirus et ça leur passe vite
Au pire, tu peux rajouter une balise <noscript> et leurs donner le lien en leur adressant un message sévère mais courtois

Posté : 04 nov. 2006, 00:14
par Ultiny
Un meta refresh enfin messieurs

... au lieu d'un Js.
Moi je pense aussi que tu a laisser un saut de ligne en haut de ton fichier .php
Par exemple :
Au lieu de :
[EDIT]: Chez moi ça marche parfaitement :
http://ultiny.online.fr/webshare/progra ... ection.php
Posté : 04 nov. 2006, 14:14
par bmag
Un meta refresh enfin messieurs

... au lieu d'un Js.
Si je peux conditionner le meta refresh, je prends.
Moi je pense aussi que tu a laisser un saut de ligne en haut de ton fichier .php
Ben non. Je modifie le petit script php avec notepad puis le remonte par un glisser/déposer dans mon espace ftp. Il ne comprends pas d'espace ni de ligne vierge.
[EDIT]: Chez moi ça marche parfaitement :
http://ultiny.online.fr/webshare/progra ... ection.php[/quote]
Tu utilises quoi pour éditer ton fichier php ?