redirection avec parametres

Le
Gilles RONSIN
Salut,

pour des raisons diverses, je remplace la page d'accueil d'un site
écrit avec Joomla, mais je veux continuer à pouvoir accèder à l'ancien
site.
la page d'accueil originale (index.php) a été renommée en !index.php.
Dans la nouvelle page j'ai voulu ajouter une redirection à l'ancienne
page par les commande suivantes

<?php
$x=explode("?",$_SERVER[REQUEST_URI];
if($x[1]!="")location("./!index.php?".$x[1]);
?>

de façon à ce que s'il y a un lien de type index.php?param=valeur, la
page redirige vers !index.php?param=valeur.

hors le lien reste sur index.php?param=valeur.

Vous voyez où je me suis planté ? ou vous avez une meilleure idée ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles RONSIN
Le #19139021
Gilles RONSIN 17:39:49, écrivait ceci:

Je me répond à moi même...

<?php
$x=explode("?",$_SERVER[REQUEST_URI];
if($x[1]!="")location("./!index.php?".$x[1]);
?>



ça marche avec
if($x[1]!="")header("Location:./!index.php".$x[1];
CrazyCat
Le #19139031
Gilles RONSIN wrote:
$x=explode("?",$_SERVER[REQUEST_URI];



J'imagine que le ) manquant est une faute de frappe qui n'est pas dans
ton code :)

if($x[1]!="")location("./!index.php?".$x[1]);
hors le lien reste sur index.php?param=valeur.



A ta place, j'utiliserais directement $_SERVER['QUERY_STRING'] qui donne
directement la chaîne de requète.

Et d'autre part, location() n'est pas connu par moi, mais je connais:
header("Location: ".$url);

--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces : http://www.g33k-zone.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Gilles RONSIN
Le #19141441
CrazyCat écrivait ceci:

Salut,

Gilles RONSIN wrote:
$x=explode("?",$_SERVER[REQUEST_URI];



J'imagine que le ) manquant est une faute de frappe qui n'est pas
dans ton code :)



Bien vu. Pour une fois que je n'avais pas copié collé...en effet la
parenthèse y est dans le code.

if($x[1]!="")location("./!index.php?".$x[1]); hors le lien reste
sur index.php?param=valeur.



A ta place, j'utiliserais directement $_SERVER['QUERY_STRING'] qui
donne directement la chaîne de requète.



Je n'ai pas fait de php depuis quelques temps.. en effet, cette
solution est nettement plus propre.

Et d'autre part, location() n'est pas connu par moi, mais je
connais: header("Location: ".$url);



Oui. C'est bien ce que j'ai trouvé par la suite.

Merci en tout cas de t'être penché sur mon problème.
Amicalement
John GALLET
Le #19144021
>> Et d'autre part, location() n'est pas connu par moi, mais je
connais: header("Location: ".$url);



Oui. C'est bien ce que j'ai trouvé par la suite.



Sauf que tu aurais dû avoir une erreur indiquant que la fonction
location() est indéfinie, en tous cas ce n'est pas une fonction php
standard. Vérifie tes paramètres de log, ça te permettra d'aller plus
vite dans la recherche d'erreurs:

Environnement de DEV: directement dans le flux (html) de sortie avec
display_errors() ou idem PROD, et error_reporting(E_ALL).

Environnement de PROD: dans les logs http. Eventuellement baisser le
niveau d'erreur à E_WARNING.

a++;
JG
Gilles RONSIN
Le #19146481
John GALLET écrivait ceci:

Salut,

Sauf que tu aurais dû avoir une erreur indiquant que la fonction
location() est indéfinie, en tous cas ce n'est pas une fonction
php standard. Vérifie tes paramètres de log, ça te permettra
d'aller plus vite dans la recherche d'erreurs:


En effet

[17-Apr-2009 16:40:48] PHP Fatal error: Call to undefined function
location() in C:wampwwwindex.php on line 3


autant de lignes que d'essai....

J'ai perdu les bons reflexes, mais comme c'est une maintenance
ponctuelle...
Merci pour ton assistance.
Publicité
Poster une réponse
Anonyme