Redirection URL, include et header

finipe Messages postés 57 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 22 mars 2004 - 22 mars 2004 à 20:14
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009 - 18 août 2004 à 16:22
Bonjour à tous.

Je débute en php, et j'ai créé un site en utilisant mes maigres connaissances du moment. Il est fait ainsi : une page navig.php dont le menu et la forme ne change pas, mais dont le contenu texte est un autre fichier, inclus, avec donc une adresse du genre http://www.monsite.com/navig.php?URL=fichier.php

J'ai écrit un petit script qui est censé rediriger le visiteur vers l'adresse http://www.monsite.com/navig.php?URL=fichier.php si celui-ci arrive sur mon site par l'adresse http://www.monsite.com/fichier.php de manière à ce qu'il ait toute la mise en page et le menu.

Voici le script que j'ai fait de mes petits doigts boudinés :

-------------
<?
$adresse = parse_url($_SERVER['PHP_SELF']);
if (!isset($adresse[query]))
{
$fichier=basename($adresse[path]);
header("Location: ".$adresse[host]."navig.php?URL=".$fichier);
}
?>
-------------

Voilà, ça fonctionne, la page est bien redirigée, mais j'ai l'impression que malgré la condition "if (!isset($adresse[query]))" il lit quand même le code si on arrive sur la page de manière normale, car il me met le message d'erreur suivant "Warning: Cannot modify header information - headers already sent by..." puis il affiche le reste de la page correctement. Où ai-je fait une bêtise ?

Merci pour votre aide ! :)

1 réponse

magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
18 août 2004 à 16:22
<?
$adresse = parse_url($_SERVER['PHP_SELF']);
if (!isset($adresse[query]))
{
$fichier=basename($adresse[path]);
header("Location: ".$adresse[host]."navig.php?URL=".$fichier);
}
?>

Tu dis que si Query n'est pas défini (le not !) il doit executer le code qui suit, le problem vient peut etre de la

Essay aussi en placant un autre condition vide qui est le contraire de cette ci et met y un return; pour stopper la fonction en cas de non execution

J espere que ca marchera

Magidev

Pour un contact plus rapide
Ajoutez moi dans vos contacts MSN
Je suis souvent la - Merci

magidev@hotmail.com
0
Rejoignez-nous