Petit pb UR d'un formulaire.

WRInaute impliqué
Bonjour,

j'ai un form
<form action="search.php" method="GET">
J'ai qu'une variable qui est transmise.

J'ai essayé:
RewriteRule ^search-([a-zA-Z0-9]+)\.html$ /search.php?requete=$1 [L]

Mais la règle ne s'opère pas.

Une idée ?
 
WRInaute accro
C'est le navigateur qui passe les paramètres en _GET lors du submit.
Le seul moyen c'est de rediriger.
 
WRInaute impliqué
Justement c'est que je me suis dit, j'ai donc mis en début du fichier recherche2.php:
session_start();
$requete = htmlspecialchars($_GET['requete']))
header("location:/recherche2-".$requete.'.html');

Mais la redirection ne s'effectue point :p "La page n'est pas redirigée correctement"
 
WRInaute impliqué
Bon, je reprends à 0 pour être plus clair:

mon formulaire:

Code:
<form action="search2.php" method="GET">
<input type="text" name="requete" size="50" value="machin" onfocus="if(this.value='machin') { this.value='' }" onblur="if(this.value='') { this.value='machin' }">

ma page search2
Code:
<?php       
 session_start();
 $_SESSION['requete']=htmlentities($_GET['requete']); 
 if (isset($_SESSION['requete'])){
$requete=$_SESSION['requete'];}
else {$requete = (htmlspecialchars($_GET['requete']));
header("location:/search2-".$requete.'.html');}
  ?>

Donc mon but est de transformer les url de type search2.php?requete=exemple en search2-exemple.html.

Dans mon htaccess, je mets:
Code:
RewriteRule ^search2-([a-zA-Z0-9\-]+).html$ /search2.php?requete=$1 [L]

Quand je texte, cela me mets "Cette page Web présente une boucle de redirection.
La page Web à l'adresse http://localhost/search2-exemple.html a déclenché trop de redirections"

J'ai tenté de rajouter une variable dans l'url: search2-nom-$requete. Sans succès.

Voilà mon soucis :)
 
WRInaute accro
Ben oui, tu pars en boucle... Ton formulaire envoie sur search2.php?requete=toto, qui fait un redirect sur search2-toto.html qui est en fait search2.php?requete=toto, qui fait un redirect vers la même chose, et ainsi de suite.

Si tu veux faire ça, il te faut deux scripts différents: un qui fait le redirect, et l'autre qui gère le résultat.

Alternativement, tu peux faire en sorte que ce soit le client (avec un JS) qui forme l'URL search2-toto.php.

Et pourquoi utiliser une variable de session? Et il te manque de l'urlencode.

Jacques.
 
WRInaute impliqué
BOnjour,

Ah ok, merci des explications, j'ai compris.

J'utilise les sessions pour garder en mémoire la requete de l'internaute pour, plus tard, lui permettre de revenir sur la page de recherche de sa requête.
 
Haut