Formulaire recherche et url rewrite

Nouveau WRInaute
Bonjour à tous voila j'ai crée un petit moteur de recherche pour un site de petite annonce, quand je clique sur rechercher ca me renvoi sur
index.php?p=annonces&offres=offres&a=&t=&area=rhones_alpes&dep=&cp=&c=&q=1

ce que je voudrais, c'est utiliser l'url rewriting pour afficher une url du type /annonces/offres/rhone_alpes/ain/1/p=1 quand je clique sur rechercher
Je met mon code:

Code:
//variable pour ne pas afficher d'erreur
	if (isset($_GET['t'])){ $t = ($_GET['t']); }
	if (isset($_GET['a'])){ $a = ($_GET['a']); }
	if (isset($_GET['c'])){ $c = ($_GET['c']); }
	if (isset($_GET['cp'])){ $cp = ($_GET['cp']); }
	if (isset($_GET['area'])){ $id = ($_GET['area']); }
	if (isset($_GET['dep'])){ $dep = ($_GET['dep']); }
	if (isset($_GET['offres'])){ $type = ($_GET['offres']); }
 
//Liste des regions
	$sql_region="SELECT * FROM region";
	$req_region=mysql_query($sql_region,$cnx);
	$result_region=mysql_fetch_assoc($req_region);
 
//Pour savoir nous sommes dans quelle region
	$sql_dept = " SELECT departement.nom_departement, departement.id_region, departement.code, region.nom_region,departement.url_departement
	FROM departement
	LEFT JOIN region ON departement.id_region = region.id_region
	WHERE region.url_region = '".$id."'	";
	$req_dept=mysql_query($sql_dept,$cnx);
	$result_dept=mysql_fetch_assoc($req_dept);
 
//Liste des departements de la region selectionnée	
	$sql_dept1 = " SELECT departement.nom_departement, departement.id_region, departement.code, region.nom_region,departement.url_departement
	FROM departement
	LEFT JOIN region ON departement.id_region = region.id_region
	WHERE departement.url_departement = '".$dep."' ";
	$req_dept1=mysql_query($sql_dept1,$cnx);
	$result_dept1=mysql_fetch_assoc($req_dept1);
 
//Pour afficher le nom de la region
	$sql_nom_region = " SELECT departement.nom_departement, departement.id_region, departement.code, region.nom_region,departement.url_departement
	FROM departement
	LEFT JOIN region ON departement.id_region = region.id_region
	WHERE
	region.url_region = '".$id."'";
	$req_nom_region=mysql_query($sql_nom_region,$cnx);
	$result_nom_region=mysql_fetch_assoc($req_nom_region);
?>
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html>
<head>
	<link rel='StyleSheet' href="/Service/CSS/style.css" type="text/css">
	<script type="text/javascript" src="js/jquery.js"></script>	
	<script langage="javascript">
		function change_col_height_max_selected_to(val){
			document.forms["form"].elements["col_height_max"].options[val].selected = true;
		}
	</script>	
</head>
<body>
<div id='cadre_moteur_recherche'>	
<?php 
if(isset($_GET['offres']) or isset($_GET['demandes'])){
echo" <form  action='index.php'  method='get' enctype='multipart/form-data'>

	<input type='hidden' name='p' value='annonces'> 	
";	

if ($_GET['offres']=="offres"){	
	echo"<input type='hidden' name='offres' value='offres'>";		
}
if ($_GET['offres']=="demandes"){	
	echo"<input type='hidden' name='offres' value='demandes'>";		
}	
?>	
	<input type="hidden" name="<?php if(isset($_GET['a'])) echo 'a' ?>" value="<?php if(isset($a)) echo $a ?>" />
	<div class='recherce_titre input '>		
		<label>Rechercher dans le titre</label>
			<input type="text" name="<?php  echo 't' ?>" value="<?php if(isset($t)) echo $t ?>" />
	</div>
 
<?php
echo"

	<div class='select_ville'>
		<label>Votre ville</label>
			<input type='hidden' id='area' name='area' value=".$id.">
			<input type='hidden' id='dep' name='dep' value=".$dep." >
		<select onchange='tab=this.value.split(\"|\");document.getElementById(\"area\").value=tab[0];document.getElementById(\"dep\").value=tab[1];'>";

if(!empty($_GET['area'])){	
	echo" <option value='".$id."|' >".$result_dept['nom_region']."</option> "; 
	}	
 
	echo"<option value='|'  style='background-color:#c9e750;' "; echo (empty($_GET["area"]) && empty($_GET["dep"]))?'selected="selected"':''; echo">Toute la France</option> ";
 
if(!empty($_GET['area'])){	
	echo" <optgroup style='background-color:#dcdcc3;' label='-- Departement --'></optgroup> ";
	}
 
//Liste des departement de la région
while($result_dept){
	echo" <option value='".$id."|".$result_dept['url_departement']."' "; echo ($_GET["dep"] == $result_dept['url_departement'])?'selected="selected"':''; echo">".$result_dept['nom_departement']."</option> ";
	$result_dept=mysql_fetch_assoc($req_dept);
}	
 
echo" <optgroup style='background-color:#dcdcc3;' label='-- Region --'></optgroup> ";
 
//Liste des regions
while($result_region) {
	echo" <option value='".$result_region['url_region']."|'  >".$result_region['nom_region']."</option> ";
$result_region=mysql_fetch_assoc($req_region);
}
 
echo"

	</select>
	</div>
";

?>	
	<div class='code_postal input '>		
		<label>Code postal</label>
		<input type="text" name="cp" value="<?php if(isset($cp)) echo $cp ?>" />
	</div>
 
	<div class='select_categorie'>
		<label>Séléctionner une catégorie</label>
		<select name='c' id='c' value="<?php if(isset($c)) echo $c ?>" />
			<option name='' value="" />Toute les catégories</option>
				<option value="1" <?php echo ($_GET["c"] == "1")?'selected="selected"':''; ?> >auto</option>
				<option value="2" <?php echo ($_GET["c"] == "2")?'selected="selected"':''; ?> >vetement</option>	
				<option value="3" <?php echo ($_GET["c"] == "3")?'selected="selected"':''; ?> >audio</option>	
				<option value="4" <?php echo ($_GET["c"] == "4")?'selected="selected"':''; ?> >informatique</option>	
		</select>
	</div>
	<input type='hidden' name='q' value='1'> 	
	<input type="submit" value="Rechercher">
</form>	
<?php
}
?>
</div>

et le htaccess

Code:
RewriteRule ^annonces/([a-zA-Z]+)/p=([0-9]+)$     index.php?p=services&offres=$1&q=$2 [L,QSA]

RewriteRule ^annonces/([a-zA-Z]+)/([a-zA-Z\_]+)/p=([0-9]+)$     index.php?p=services&offres=$1&area=$2&q=$3 [L,QSA]

RewriteRule ^annonces/([a-zA-Z]+)/([a-zA-Z\_]+)/([a-zA-Z\_]+)/p=([0-9]+)$     index.php?p=services&offres=$1&area=$2&dep=$3&q=$4 [L,QSA]

RewriteRule ^annonces/([a-zA-Z]+)/([a-zA-Z\_]+)/([a-zA-Z\_]+)/([0-9]+)/p=([0-9]+)$     index.php?p=services&offres=$1&area=$2&dep=$3&cp=$4&q=$5 [L,QSA]

RewriteRule ^annonces/([a-zA-Z]+)/([a-zA-Z\_]+)/([a-zA-Z\_]+)/([0-9]+)/([0-9]+)/p=([0-9]+)$     index.php?p=services&offres=$1&area=$2&dep=$3&cp=$4&c=$5&q=$6 [L,QSA]

RewriteRule ^annonces/([a-zA-Z]+)/([a-zA-Z\_]+)/([a-zA-Z\_]+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9\-]+)/p=([0-9]+)$     index.php?p=services&offres=$1&area=$2&dep=$3&cp=$4&c=$5&t=$6&q=$7 [L,QSA]

RewriteRule ^annonces/([a-zA-Z]+)/([a-zA-Z\_]+)/([a-zA-Z\_]+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9\-]+)/([0-9]+)/p=([0-9]+)$     index.php?p=services&offres=$1&area=$2&dep=$3&cp=$4&c=$5&t=$6&a=$7&q=$8 [L,QSA]

RewriteRule ^annonces/([a-zA-Z]+)/([a-zA-Z\_]+)/([0-9]+)/p=([0-9]+)$     index.php?p=services&offres=$1&area=$2&cp=$3&q=$5 [L,QSA]

RewriteRule ^annonces/([a-zA-Z]+)/([a-zA-Z\_]+)/([0-9]+)/([0-9]+)/p=([0-9]+)$     index.php?p=services&offres=$1&area=$2&cp=$3&c=$4&q=$5 [L,QSA]

ca fait plusieur semaine que je recherche mais je n'est rien trouvé, merci de m'aider
 
Nouveau WRInaute
Merci pour ton aide mais tu ne pourrais pas donner un peux plus d'explication car je debute et je n'ai pas trop compris, merci
 
WRInaute accro
C'est très très bien expliqué sur le wiki, avec un schéma en plus. Tu n'as pas compris quoi ?
 
WRInaute accro
POST: tu fais un form en POST.
REDIRECT: à partir des données POSTées dans le form du construit ton URL (rewritée), tu rediriges vers cette URL.
GET: les données sont lues dans l'URL.
 
WRInaute accro
Pourquoi réécrire des url de recherche alors que l'indexation de ce type de page est largement déconseillée ? où est le gain et l'intérêt ?
 
Nouveau WRInaute
Pourquoi réécrire des url de recherche alors que l'indexation de ce type de page est largement déconseillée ? où est le gain et l'intérêt ?
Question d'esthetique

spout, j'ai essayé d'adapter les exemple que tu ma donner à mon moteur de rechercher mais je n'ai pas réussi
 
WRInaute accro
moza2409 a dit:
Question d'esthetique
Parle a ma main :lol: et aussi a GG ... sérieux si c'est d'avoir une belle url dans le navigateur c'est tiré par les cheveux, maintenant que tu ne veuille pas dire que tu compte positionner ces pages me semble plus crédible.
 
Nouveau WRInaute
Parle a ma main et aussi a GG ... sérieux si c'est d'avoir une belle url dans le navigateur c'est tiré par les cheveux, maintenant que tu ne veuille pas dire que tu compte positionner ces pages me semble plus crédible.

Non serieux c'est esthetique, c'est pour un moteur de recherche donc je ne vois pas l'interet de positionner les pages
 
WRInaute accro
Bah dans ce cas là t'embête pas a réécrire tes urls c'est totalement superflu ou alors passe tes paramètres en POST et t'aura une url propre sans sortir des moyens techniques disproportionnés vis a vis du résultat.
 
Nouveau WRInaute
Merci pour le conseil mais je prefere quand meme réecrire l'url.
Je veux rester en Get pour avoir le resultat recherché dans l'url
 
Discussions similaires
Haut