Url rewriting et passage de parametres - PHP - Programmation
Marsh Posté le 14-02-2008 à 21:29:25
Les trucs que tu passes en GET, pourquoi tu y accèdes pas par $_GET ? $_REQUEST ça date de 1973.
Et pour regarder tout ce qui passe en GET, tu fais print_r($_GET), qui va t'afficher tout le tableau.
Sinon pour ton problème, je ne comprend rien, déja je crois que tu as inversé tes 2 URLS, et peux-tu donner un exemple d'adresse à laquelle tu "ajoutes d'autres paramètres" ?
Marsh Posté le 15-02-2008 à 09:13:21
Je suis un grand nostalgique bon, le $_REQUEST ou $_GET c'est pareil.
Quand je fait un print_r($GET) j'obtiens ça :
tableau Array
(
[cPath] => 44_93
)
Pour ce qui est de passer des paramètres, c'est un formulaire qui le fait :
Code :
|
Marsh Posté le 15-02-2008 à 10:00:40
Je comprend pas tout là
Ton formulaire appelle l'URL "boutique.php", comment tu veux qu'il passe dans ta rewriteRule qui s'applique à l'URL "(.*)-c-(.*).html"
Marsh Posté le 15-02-2008 à 12:09:22
En fait, je sais pas trop comment fonctionne le principe de l'URL rewriting. J'ai installé un module (SEO) sur OsCommerce. Ce que j'ai compris c'est que le htaccess transforme les "belles" adresses en adresse "ancienne" et qu'il faut dans le code, transformer les "anciennes" adresses pour afficher des belles adresses.
Donc, si j'ai bien compris, la solution serait de faire une fonction qui transforme dans le code du formulaire, l'ancienne adresse boutique pour mettre la "belle" adresse comme champ "action" ?
Un autre truc que je comprends pas, c'est comment fait il pour transformer l'ancienne adresse en nouvelle adresse ? (quand j'accède à boutique.php avec des arguments, il m'affiche dans le champ adresse de mon navigateur la "belle" adresse)
Merci pour les explications,
Axel
Marsh Posté le 15-02-2008 à 12:25:24
axel584 a écrit : En fait, je sais pas trop comment fonctionne le principe de l'URL rewriting. J'ai installé un module (SEO) sur OsCommerce. Ce que j'ai compris c'est que le htaccess transforme les "belles" adresses en adresse "ancienne" et qu'il faut dans le code, transformer les "anciennes" adresses pour afficher des belles adresses. |
Evite l'URL-rewriting sur les formulaires, tu dois appeler une page php toute conne sinon c'est galère. Ou alors t'envoie tout en Post.
Ensuite seulement, à la fin du script appelé, tu redirigeras vers une belle adresse.
axel584 a écrit : Un autre truc que je comprends pas, c'est comment fait il pour transformer l'ancienne adresse en nouvelle adresse ? (quand j'accède à boutique.php avec des arguments, il m'affiche dans le champ adresse de mon navigateur la "belle" adresse) |
Soit tu l'écrit direct dans le code html, soit tu te fais une/des fonctions qui te créent tes belles adresses, par ex à partir des anciennes.
Marsh Posté le 17-02-2008 à 20:42:43
theredled a écrit : |
C'est effectivement là que ça coince (quand j'essaye de passer à mes "belles" adresses des parametres)... néanmoins, je sais que c'est possible et j'aimerai beaucoup y arriver.
Quelqu'un a t'il une idée de comment faire ?
Merci beaucoup,
Axel
Marsh Posté le 18-02-2008 à 14:36:36
axel584 a écrit : C'est effectivement là que ça coince (quand j'essaye de passer à mes "belles" adresses des parametres)... néanmoins, je sais que c'est possible et j'aimerai beaucoup y arriver. Quelqu'un a t'il une idée de comment faire ? Merci beaucoup, Axel |
Je vois pas l'intérêt mais la façon la plus propre c'est soit d'envoyer les données en post, soit en adresse "moche" en get, puis de redirigier (en php, donc on voit rien coté client) vers la belle adresse.
Sinon c'est javascript, mais ce serait inutile, pas pratique, pas accessible et pas propre.
Marsh Posté le 08-09-2008 à 12:20:25
tien j'ai le même problème. Ma règle est :
RewriteRule ^([a-z0-9_-]*)\.html$ /fr/index.php?page=$1 [L]
mais dans mes pages je voudrais rajouter des liens pour passer d'une langue à l'autre. Donc je voulais simplement mettre des liens genre :
?lang=fr ou ?lang=en ...
Mais impossible de récup avec $_GET['lang']. Pourtant quand je fais $_SERVER['REQUEST_URI'] il y a bien le ?lang=**.
Marsh Posté le 08-09-2008 à 12:21:59
Regarde dans $_GET. Et il manque le QSA pour que les paramètres soient rajoutés :
Code :
|
Marsh Posté le 08-09-2008 à 14:10:25
Reply
Marsh Posté le 14-02-2008 à 17:44:14
Bonjour,
J'ai un petit soucis avec une règle de mon URL rewriting :
RewriteRule ^(.*)-c-(.*).html$ boutique.php?cPath=$2 [QSA,L,NC]
Quand j'accède à cette page, ça fonctionne bien, mais quand je veux accèder à cette page en y ajoutant d'autres paramètres, cela ne fonctionne pas (les paramètres ne sont pas passés)
Par exemple, si j'accède à cette page :
http://www.mondomaine.fr/boutique. [...] lter_id=11
il me renvoit sur :
http://www.mondomaine.fr/saxophone [...] 48_54.html
mais quand j'affiche
filter <?=$_REQUEST["filter_id"];?> c'est vide
et quand j'affiche :
cPath <?=$_REQUEST["cPath"];?>
j'ai la bonne valeur (42_48_54)
Comment faire pour passer les paramètres ?
Je pensais que QSA servait justement à ça.
Merci pour votre aide,
Axel