Soucis sur recupération d'un $_GET ...

WRInaute passionné
Bonjour,

Encore lui ... je sais ^^.

Soit 2 champs d'une table: ville et rewite_ville contenant respectivement le nom de la ville normal et le nom de la ville ré ecrite.

Soit pour une ville nommé Faye d'anjou, cela me donne:
-----Ma_table-----------
-------ville------ ville_rewrite----
Faye d'anjou-----faye-d-anjou

Je construit ma requête pour obtenir le nom de la ville ré écrite dans mon url rewrité:
Code:
<a href="'.$la_region.'-'.$une_ville_rewrite.'-'.$monid.'.php">titre</a>
Ce qui me donne:
Code:
<a href="Haute_Normandie-faye-d-anjou-2.php">titre</a>
Dans la page suivante, je récupère le nom de la ville transmit par $_GET et cela me renvoie : anjou au lieu de faye-d-anjou

Pourquoi?

Toujours depuis la 2 ieme page, je fais mes requêtes à partir de l'id transmit pour récupérer le nom de la ville stocké en bd, j'obtiens comme résultat: Faye d'anjouanjou au lieu de Faye d'anjou .

Re pourquoi ?

Merci
 
WRInaute passionné
Haaaa, chiote .

Qu'est ce qui cloche la dedans:
Code:
RewriteRule  ^mot1-mot2-([^/]*)-([^/]*)-([^/]*)-([^/]*)\.php$  /page-site.php?type=$1&ville=$2&region=$3&id=$4 [L]
ou
Code:
RewriteRule  ^mot1-mot2-(.*)-(.*)-(.*)-([0-9]*)\.php$  /page-site.php?type=$1&ville=$2&region=$3&id=$4 [L]

$1 et $2 peut contenir tiret et lettre minuscule
$3 peut contenir tiret bas, lettre majuscule et minuscule
$4 chiffre

Merci
 
WRInaute occasionnel
Voir sur google le problème des regexp greedy/ungreedy.

Tente de mettre des ? dans tes expresions parenthéses :

Code:
RewriteRule  ^mot1-mot2-(.*?)-(.*?)-(.*?)-([0-9]*)\.php$ ...
 
WRInaute passionné
Ok merci.

Entre temps, j'ai trouvé d'où venait mon soucis ..
Truc con, ville=$2 dans htaccess et &ville='.$la_ville.' par $_GET correspond à une variable:
Code:
  $la_ville = $localisation['ville'];
  $la_ville.="$ville";
Du coup en remplacent ville dans mon htaccess et dans le lien par vil, sa roule parfaitement ^^ (pour le moment).
 
WRInaute passionné
Wow.... deux secondes, tu veux dire que tu récupères le contenu de $_GET['ville'] directement dans la variable $ville ?

Si c'est le cas, tu as une grosse faille de sécurité dans ton script PHP.
 
WRInaute passionné
Plus ou moins ..
En faite je récupère 4 infos par $_GET puis ensuite je fais:
Code:
$ma_ville_transmit=stripcslashes(htmlspecialchars($_GET["vil"]));
$mon_id_transmit=$_GET["id"];
info3
info4

if (isset($_GET["info2"]) AND isset($_GET["vil"]) AND isset($_GET["info3"]) AND isset($_GET["id"]))
{
.....
A la finale, seule l'id me sert à trouver les infos, le reste c'est surtout pour obtenir une zolie url !
J'ai bon là ?
 
Discussions similaires
Haut