Caractere & avec l'URL Rewriting

Nouveau WRInaute
Bonjour aux WRInautes

En resumé: j'ai un petit probleme a passer le caratere & via l'url rewriting

Coté PHP
Un petit php qui imprime la valeur placer en url
Code:
<?php
  if(isset($_GET["value"])){
    $value = $_GET["value"];
    $value = trim($value);
    $value = htmlspecialchars($value);
   
    // Stripslashes
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }
    echo $value;
  }
?>

exemple test.php?value=bonjour > donne bonjour

avec un & ..../test.php?value=bon&jour > ne marche pas biensur
alors je met ..../test.php?value=bon%26jour > ce qui donne bien bonj&our

Coté URL Rewriting
le petit .htaccess
Code:
RewriteEngine On
Options +FollowSymlinks
 
RewriteRule ^(.*)-test.html$ test.php?value=$1 [L]

ce qui donne .../bonjour-test.html > qui donne bien bonjour
mais .../bon%26jour-test.html > donne malheuresement bonj :cry:

mes conclusions: l'url rewrinting s'effectue quand même puisque qu'il va sur text.php
le php semble correcte sans l'url rewriting

mes questions:
L'argument $1 est il altéré par l'url rewrting quand il voi un %26?
Mon URL rewriting est-il correcte?
le (*) est-il suffisant?
Est ce impossible 8O

merci a tous :p

ps:hebergeur OVH
 
WRInaute impliqué
Je pense que %26 se transforme en & pour apache... et & est un caractère spécial pour apache en mo_rewrite.
Donc il te faut trouver une autre solution.
 
Nouveau WRInaute
Ca va être dur...
Une double specialisation du caractère :/
Un truc qui se transforme en %26 pour apache, on peut toujours rever :mrgreen:
 
Nouveau WRInaute
8O la bonne idée
ce que ca donne
avec
.../bon%26jour-test.html
ou
.../bon&jour-test.html
value=bon&jour
$_GET["value"]: bon
la même chose

sans urlrewriting le %26 apparait dans getenv('QUERY_STRING') apres value
ya donc bien transformation

merci,
au pire des cas je traite getenv('QUERY_STRING') au lieu de prendre $_GET["value"]
jap.gif

apres si ya des trucs plus propre....
 
Discussions similaires
Haut