Formulaire recherche et url rewrite

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par moza2409, 4 Août 2012.

  1. moza2409
    moza2409 Nouveau WRInaute
    Inscrit:
    4 Août 2012
    Messages:
    7
    J'aime reçus:
    0
    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
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 162
    J'aime reçus:
    326
  3. moza2409
    moza2409 Nouveau WRInaute
    Inscrit:
    4 Août 2012
    Messages:
    7
    J'aime reçus:
    0
    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
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 162
    J'aime reçus:
    326
    C'est très très bien expliqué sur le wiki, avec un schéma en plus. Tu n'as pas compris quoi ?
     
  5. moza2409
    moza2409 Nouveau WRInaute
    Inscrit:
    4 Août 2012
    Messages:
    7
    J'aime reçus:
    0
    Je n'ai pas compris comment l'utiliser
     
  6. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 162
    J'aime reçus:
    326
    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.
     
  7. moza2409
    moza2409 Nouveau WRInaute
    Inscrit:
    4 Août 2012
    Messages:
    7
    J'aime reçus:
    0
    tu ne pourrais pas me donner un exemple concret ?
     
  8. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 181
    J'aime reçus:
    1
    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 ?
     
  9. moza2409
    moza2409 Nouveau WRInaute
    Inscrit:
    4 Août 2012
    Messages:
    7
    J'aime reçus:
    0
    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
     
  10. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 181
    J'aime reçus:
    1
    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.
     
  11. moza2409
    moza2409 Nouveau WRInaute
    Inscrit:
    4 Août 2012
    Messages:
    7
    J'aime reçus:
    0
    Non serieux c'est esthetique, c'est pour un moteur de recherche donc je ne vois pas l'interet de positionner les pages
     
  12. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 181
    J'aime reçus:
    1
    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.
     
  13. moza2409
    moza2409 Nouveau WRInaute
    Inscrit:
    4 Août 2012
    Messages:
    7
    J'aime reçus:
    0
    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
     
Chargement...
Similar Threads - recherche rewrite Forum Date
Search Console Problème de version de langue dans les résultats de recherche Google Référencement international (langues, pays) 17 Juin 2021
Optimiser les vidéos pour la recherche YouTube YouTube, Google Images et Google Maps 27 Avril 2021
Mots-clés longue traîne algorithme moteur de recherche Rédaction web et référencement 20 Avril 2021
Recherche Rédacteur Web Technique AUTO Rédaction web et référencement 9 Avril 2021
Recherche conseils et aide pour hébergement Administration d'un site Web 14 Mars 2021
Google Images: URL à la place du titre dans les résultats de recherche YouTube, Google Images et Google Maps 4 Mars 2021
Search Console 2 513 URL Valides -Envoyée et indexée - 20 résultats dans la recherche google Crawl et indexation Google, sitemaps 28 Janvier 2021
Description Vide dans recherche Google Référencement Google 19 Janvier 2021
Robots : n'autoriser que les 4 ou 5 moteurs de recherche principaux Crawl et indexation Google, sitemaps 15 Janvier 2021
Quel seuil minimal de volume de recherches pour un mot-clé ? Débuter en référencement 29 Décembre 2020