Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

redirection avec parametres

5 réponses
Avatar
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

5 réponses

Avatar
Gilles RONSIN
Gilles RONSIN , le ven. 17 avr. 2009
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];
Avatar
CrazyCat
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
Avatar
Gilles RONSIN
CrazyCat , le sam. 18 avr. 2009 11:07:35,
é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
Avatar
John GALLET
>> 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
Avatar
Gilles RONSIN
John GALLET , le dim. 19 avr. 2009 11:34:52,
é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.