neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 27 sept. 2008 à 17:24
J'ai simplement passé du temps à lire la doc du mod Rewrite d'apache.
Si tu vas jeter un oeil à la doc de Multiviews, tu verras pourquoi dans certains cas, il peut y avoir conflit. C'était le cas ici.
Je ne suis pas certain d'avoir bien compris ta question... Ce que tu veux, c'est que si un champ porte le nom coucou par exemple :
lors de l'envoi du formulaire, la valeur de ce champ soit passée sous la forme :
test/coucou/valeur_du_champ
C'est ça ? Parce que ça, c'est pas possible. Et à vrai dire, ça n'a pas de sens. C'est sûrement pour cela que ce n'est pas possible : la réécriture d'url répond à des besoins, de réorganisation de fichiers, de référencement. Organiser des données d'un formulaire (qui sont transparentes pour l'utilisateur lambda) c'est un peu vain et inutile...
<hr size="2" width="100%" />Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
adess00
Messages postés261Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention27 septembre 20081 27 sept. 2008 à 17:37
en faite coucou c'est la valeur du champ donc /test/coucou equivaut à /test.php?id=coucou
C'est pas possible de rediriger /test.php?id=coucou vers /test/coucou ?
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 27 sept. 2008 à 18:57
J'en suis au même point de compréhension...
Si tu as un formulaire avec un seul champ qui s'appelle id, i ln'y a AUCUN intérêt à rediriger vers /test/coucou, si c'est pour ensuite réinterpréter l'url /test/coucou...
<hr size="2" width="100%" />Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 27 sept. 2008 à 19:09
Ben ouais... T'as pas du bien regarder...
search/?search=simpsons
Y'a un ? que t'as pas du bien voir...
Le champ du formulaire s'appelle search, la valeur est simpsons.
On peut envoyer un formulaire vers une url de son choix (qui peut être réécrite si on veut) mais les données du formulaire, si elles sont envoyées en GET, sont passées OBLIGATOIREMENT sous la forme donnée=valeur&autre_donnée=autre_valeur
Si tu veux changer ça, il faut changer le comportement de ton navigateur. Développe alors une extension pour Firefox.
<hr size="2" width="100%" />Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 27 sept. 2008 à 20:15
Non... Le script ne fait pas une recherche...
Le fonctionnement d'un formulaire html est déterminé par le standard du protocole HTTP. Le formulaire envoie les données encodées URL, c'est à dire sous forme de paires clé/valeur, séparées par des esperluettes (&). C'est la "Query String", qui est séparée de l'URL par un point d'interrogation. Un formulaire ne procède jamais à une quelconque réécriture. Il envoie les données conformément au standard du protocole HTTP, point barre.
Une URL de la forme www.unsiteauhasard.orr/search/simpsons a été écrite de la même manière que n'importe quel texte dynamique par un script côté serveur, afin de correspondre à une url de la forme www.unsiteauhasard.org/search.php?s=simpsons , qui sera interprétée plus tard par le fichier .htaccess, qui va interpréter l'url avant de la transmettre (sous sa nouvelle forme) au serveur http.
A partir du moment où le .htaccess interprète l'url, tout se passe du côté du serveur, rien ne se voit chez le client.
L'intérêt d'écrire (à l'initiative du serveur, pas du client) une URL réécrite de la forme www.unsiteauhasard.org/search/simpsons se trouve au niveau du référencement : un moteur de recherche interprètera /search/ comme étant un répertoire, et pourra organiser les différents éléments dans cette branche. Ca n'a pas d'autre utilité.
Ton formulaire, si l'attribut action="/search/" et method="post" produira une URL :
www.tonsite.com/search/
Les données seront envoyées par POST, de manière transparente pour l'utilisateur. La réécriture d'URL, ici, tu t'en fous, sauf si tu souhaites que la page search.php ne soit pas connue comme telle, mais comme /search/
Pour ce qui est des données, il n'y a absolument AUCUN intérêt à les "cacher" en les mettant en forme d'une certaine manière.
Je sais pas si je suis clair, je fais de mon mieux...
<hr size="2" width="100%" />Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
adess00
Messages postés261Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention27 septembre 20081 27 sept. 2008 à 20:26
Oui jsuis d'accord mais ce que je comprend pas c est comment ils font a partir du formulaire pour envoyer vers www.unsiteauhasard.org/search/simpsons
tu m'as dit que c'etait a partir du script search.php mais je vois pas trop comment ils obtiennent le /simpsons
En mettant action="/search/" on obtient www.tonsite.com/search/ et pas www.tonsite.com/search/simpsons
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 27 sept. 2008 à 20:35
Hum... Moi, quand je remplis le formulaire de recherche et que je clique, j'obtiens ce genre d'url :
www.site.org/search/?search=simpsons
Donc : le formulaire est envoyé en GET. Le navigateur va "url_encode" le champ. Si tu mets plusieurs mots dans le champ, ça donnera quelque chose comme ça :
www.site/org/search/?search=simpsons+le+film
On ne PEUT PAS empêcher le point d'interrogation.
<hr size="2" width="100%" />Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...