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 078
    J'aime reçus:
    295
  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 078
    J'aime reçus:
    295
    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 078
    J'aime reçus:
    295
    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 190
    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 190
    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 190
    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
Comment rewriter une page de recherche URL Rewriting et .htaccess 2 Juin 2010
Search Console Forte chute en recherche mais 1er dans search console Débuter en référencement 13 Octobre 2020
J'ai indexé mes pages sur searchConsole, mais les pages ne figurent pas dans les résultats recherche Crawl et indexation Google, sitemaps 7 Septembre 2020
Le moteur de recherche d'Apple va-t-il voir le jour ? Autres moteurs de recherche connus 27 Août 2020
Moteur de recherche interne Google Développement d'un site Web ou d'une appli mobile 10 Juillet 2020
Mon site wordpress ne s'affiche pas dans recherches Google Problèmes de référencement spécifiques à vos sites 30 Juin 2020
Search Console Google Search console: page envoyée et indexée mais introuvables par une recherche google Référencement Google 30 Juin 2020
Google en fait trop avec les intentions de recherche Référencement Google 29 Février 2020
Recherche Google - an error occured Problèmes de référencement spécifiques à vos sites 31 Janvier 2020
recherche aléatoire des bots ?! Référencement Google 14 Janvier 2020