Discussion:
redirection avec parametres
(trop ancien pour répondre)
Gilles RONSIN
2009-04-17 15:39:49 UTC
Permalink
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
Gilles RONSIN
2009-04-18 09:07:35 UTC
Permalink
Gilles RONSIN <***@please.invalid>, le ven. 17 avr. 2009
17:39:49, écrivait ceci:

Je me répond à moi même...
Post by Gilles RONSIN
<?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
2009-04-18 09:07:35 UTC
Permalink
Post by Gilles RONSIN
$x=explode("?",$_SERVER[REQUEST_URI];
J'imagine que le ) manquant est une faute de frappe qui n'est pas dans
ton code :)
Post by Gilles RONSIN
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
2009-04-18 18:14:27 UTC
Permalink
CrazyCat <***@c-p-f.org>, le sam. 18 avr. 2009 11:07:35,
écrivait ceci:

Salut,
Post by CrazyCat
Post by Gilles RONSIN
$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.
Post by CrazyCat
Post by Gilles RONSIN
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.
Post by CrazyCat
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
2009-04-19 09:34:52 UTC
Permalink
Post by Gilles RONSIN
Post by CrazyCat
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
2009-04-19 17:08:14 UTC
Permalink
John GALLET <***@wanadoo.fr>, le dim. 19 avr. 2009 11:34:52,
écrivait ceci:

Salut,
Post by John GALLET
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
En effet

[17-Apr-2009 16:40:48] PHP Fatal error: Call to undefined function
location() in C:\wamp\www\index.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.

Continuer la lecture sur narkive:
Loading...