J'ai développé un script PHP qui utilise $ _REQUEST [] superglobal. Une demande client typique peut consister en:
http://host.name/socnet/add.php?shortid=1&author=NewUser2&comment=Dad%20dad%20dad
Cette URL est réécrite par Apache dans mon environnement de production à un https équivalent: // URL selon la règle suivante:
RewriteRule ^socnet/add.php(.*) https://%{SERVER_NAME}/socnet/add.php$1 [R,L]
Tout en développant avec PHP 5.3.2 et le débogage avec NetBeans tout fonctionne comme prévu $_REQUEST['comment']="Dad dad dad"
Cependant quand je déployé à mon environnement hôte VPS en cours d'exécution PHP 5.2.4 et qui fait l'URL rewr ition décrit ci-dessus $_REQUEST['comment']="Dad%20dad%20dad"
...
Il semble donc que $_REQUEST['comment']
est URL non décodé comme prévu avec 5.2.4 et ma règle de réécriture
Toutes les idées pour lesquelles cela se produit et une solution raisonnable serait être grandement apprécié. Est-ce un problème lié à la version PHP ou quelque chose de plus subtil? Intéressé d'entendre de toute personne qui a rencontré ce problème au moment du déploiement avant et comment ils l'ont résolu.
Correction de l'ajout de [NE] Pas d'option d'échappement. Voir le commentaire (5) sur issues.apache.org/bugzilla/show_bug.cgi?id=34602. – codeasone
Donc la règle de réécriture devient 'RewriteRule^socnet/add.php https: //% {SERVER_NAME} /socnet/add.php [R, L, QSA, NE]' – codeasone