Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

url rewriting

Poster un nouveau sujet Imprimer cette discussion    Forum -> URL Rewriting et .htaccess   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
patrick888
WRInaute discret
WRInaute discret

Inscrit le: 02 Aoû 2007
Messages: 74

URL permanente de ce messagePosté le : Sam Mai 10, 2008 22:03    Sujet du message: url rewriting

Bonjour,j'ai un petit probleme de url rewriting que je n'arrive pas à résoudre, alors j'ai tout repris depuis le début.
j'ai 3 pages php:

1: rotisserie-livraison-rotis.php
2: livraison-rotis.php
3: rotisserie.php

la premiere liant vers la deuxieme. la deuxieme vers la troisieme.

1:la premiere enumere la liste des départements
2:la deuxieme enumere la liste des villes du département ou se trouvent les rotisseries
3:la troisieme enumere les rotisseries de la ville, avec adresses...

les codes correspondants a chaque page sont les suivants:

1: rotisserie-livraison-rotis.php

Code:

<?php
$sql = ("SELECT DISTINCT departement FROM livraison_rotis ORDER BY departement");
$result = mysql_query($sql);

echo '<ul>';

while ($row = mysql_fetch_assoc($result)) {
echo '<li><a href="livraison-rotis.php?departement='.$row['departement'].'">'.$row['departement'].'</li>';
}

echo '</ul>';
?>


2: livraison-rotis.php

Code:

<?php
$departement = $_GET['departement'];

$sql = ("SELECT DISTINCT ville FROM livraison_rotis WHERE departement='$departement' ORDER BY ville");
$result = mysql_query($sql);

echo '<ul>';

while ($row = mysql_fetch_assoc($result)) {
echo '<li><a href="rotisserie.php?ville='.$row['ville'].'">'.$row['ville'].'</li>';
}

echo '</ul>';
?>

et
Code:

<?php echo $_GET['departement']; ?>


3: rotisserie.php

Code:

<?php
$ville = $_GET['ville'];

$sql = ("SELECT nom,adresse,code_postal,ville,ville,tel,fax,mail FROM livraison_rotis WHERE ville='$ville' ORDER BY nom");
$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
echo '<ul>';
echo '<li>'.$row['nom'].'</li>';
echo '<li>'.$row['adresse'].'</li>';
echo '<li>'.$row['code_postal'].'</li>';
echo '<li>'.$row['ville'].'</li>';
echo '<li>'.$row['tel'].'</li>';
echo '<li>'.$row['fax'].'</li>';
echo '<li>'.$row['mail'].'</li>';
echo '</ul>';
}
?>

et
Code:

<?php echo $_GET['ville']; ?>


tout marche nikel, mes départements apparaissent, mes villes, mes adresses, selont les pages.

apres, pour l'url rewriting, j'ai un soucis, plus rien ne marche.

je voudrais que la page 2: livraison-rotis.php s'affiche de cette maniere:

Code:

/livraison-rotis-BOUCHES-DU-RHONE.html


que la page 3: rotisserie.php s'affiche aussi de cette maniere
Code:

/rotisserie-JUAN-LES-PINS.html


au lieu de
Code:

/livraison-rotis.php?departement=BOUCHES%20DU%20RHONE


et
Code:

/rotisserie.php?ville=JUAN%20LES%20PINS


Si quelqu'un pouvait me donner un coup de main, ça fait une bonne semaine que je galere comme un ane.

j'ai un .htaccess ci dessous
Code:

RewriteEngine on
RewriteRule livraison-rotis-(.*)\.html$ /livraison-rotis.php?departement=$1 [L]
RewriteRule rotisserie-(.*)\.html$ /rotisserie.php?ville=$2 [L]



j'ai changé le code de la premiere page comme ci dessous:
Code:

<?php
$sql = ("SELECT DISTINCT departement FROM livraison_rotis ORDER BY departement");
$result = mysql_query($sql);

echo '<ul>';

while ($row = mysql_fetch_assoc($result)) {
echo '<li><a href="livraison-rotis-'.preg_replace("/ /","-",$row['departement']).'.html">'.$row['departement'].'</li>';
}

echo '</ul>';
?>

et de la deuxieme page comme ça:
Code:

<?php
$departement = $_GET['departement'];

$sql = ("SELECT DISTINCT ville FROM livraison_rotis WHERE departement='$departement' ORDER BY ville");
$result = mysql_query($sql);

echo '<ul>';

while ($row = mysql_fetch_assoc($result)) {
echo '<li><a href="rotisserie-'.preg_replace("/ /","-",$row['ville']).'.html">'.$row['ville'].'</li>';
 
}

echo '</ul>';
?>


avec des départements ou des villes pas composés, du style Paris, Marseille, Nice, tout est nikel, l'url, les noms des villes et des départements, mais pour des departements et villes composés de plusieurs mots, aix en provence par exemple, l'url s'affiche correctement, mais le nom de la ville ne s'affiche pas sur la page,et les liens vers les villes de ce département ne s'affichent pas non plus... mais par contre, sur la page rotisserie.php, les adresses, num telephone, fax, s'affichent correctement, mais sans le nom de la ville qui ne veut pas s'afficher.

pourquoi, je ne comprends pas.

Si quelqu'un navait une autre idée pour .htaccess ou pour mon code php, je ne m'en sortirais pas tout seul, c'est sur!

Un grand merci à qui m'aidera et me sauvera de mon stress Smile


Patrick
 
patrick888
phloam
WRInaute accro
WRInaute accro

Inscrit le: 08 Avr 2005
Messages: 1292
Localisation: Genève

URL permanente de ce messagePosté le : Dim Mai 11, 2008 1:00    Sujet du message: url rewriting

J'ai malheureusement pas le courage de lire tout ton post mais j'ai remarqué ca : <?php echo $_GET['departement']; ?> et ca <?php echo $_GET['ville']; ?>

Tu devrais quand même filtrer ce qui arrive en GET avant de l'afficher sur une page sauf si tu souhaites que ton site devienne le paradis du xss ,de l'injection de liens et des hackers...

Aussi tu utilises ces varisble non filtré dans ta requête sql :
$departement = $_GET['departement'];

$sql = ("SELECT DISTINCT ville FROM livraison_rotis WHERE departement='$departement' ORDER BY ville");

C'est idéal pour quelqu'un qui voudrais te faire une injection sql ou pire effacer ta bdd...
 
phloam Visiter le site web du posteur
Vap
WRInaute passionné
WRInaute passionné

Inscrit le: 17 Juin 2007
Messages: 851
Localisation: Carry-le-Rouet (13)

URL permanente de ce messagePosté le : Dim Mai 11, 2008 10:34    Sujet du message: url rewriting

Je te donne la démarche pour ta deuxième page.

Si tu veux que l'adresse soit livraison-rotis-BOUCHES-DU-RHONE.html au lieu de livraison-rotis.php?departement=BOUCHES-DU-RHONE

il faut faire de l'url rewriting effectivement, et changer les liens que tu utilise.

Pour la récriture :

Code:

RewriteEngine On

RewriteRule livraison-rotis-(.*)\.html livraison-rotis.php?departement=$1


Ensuite dans le code de la page rotisserie-livraison-rotis.php il faut que tu remplace la ligne

Code:
echo '<li><a href="livraison-rotis.php?departement='.$row['departement'].'">'.$row['departement'].'</li>';


par

Code:
echo '<li><a href="livraison-rotis-'.$row['departement'].'.html">'.$row['departement'].'</li>';


En clair, n'utilise que les adresses html.
 
Vap Visiter le site web du posteur
patrick888
WRInaute discret
WRInaute discret

Inscrit le: 02 Aoû 2007
Messages: 74

URL permanente de ce messagePosté le : Dim Mai 11, 2008 18:07    Sujet du message: url rewriting

Merci de vos reponses, en fait, avec le nouveau .htaccess et le changement de code php, ça ne me change pas les espaces en - contrairement à mon ancien code donc ça me fait un truc du genre %s.
et concernant l'histoire de $get, je ne savais pas que ça pouvait etre dangeureux comme ça, mais de toute maniere, je suis incapable de changer ça! je suis trop nul Wink

Patrick

Bon, ça y est, c'est résolu, je m'étais embobiné au niveau des codes

Code:

$ville = $_GET['ville'];

$sql = ("SELECT nom,adresse,code_postal,ville,ville,tel,fax,mail FROM livraison_rotis WHERE ville='$ville' ORDER BY nom");


j'avais mélangé les variables villes avec les départements, un petit méli mélo quoi,
Merci de vos aides réspectives.

il y a quand meme cette histoire de bdd qui serait piratable par le biais de $_GET; si quelqu'un avait plus de renseignements à ce sujet...

Encore une fois merci

Patrick
 
patrick888
 
Montrer les messages depuis:   
Revenir en haut    Forum -> URL Rewriting et .htaccess Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Autre sujet de discussion :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort