| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
patrick888 WRInaute discret

Inscrit le: 02 Aoû 2007 Messages: 74
|
Posté 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
Patrick |
|
| |
|
 |
phloam WRInaute accro

Inscrit le: 08 Avr 2005 Messages: 1292 Localisation: Genève
|
Posté 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... |
|
| |
|
 |
Vap WRInaute passionné

Inscrit le: 17 Juin 2007 Messages: 851 Localisation: Carry-le-Rouet (13)
|
Posté 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. |
|
| |
|
 |
patrick888 WRInaute discret

Inscrit le: 02 Aoû 2007 Messages: 74
|
Posté 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
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 |
|
| |
|
 |
| |
|
|
|
|
Autre sujet de discussion :
|
|