PDA

Voir la version complète : PHP5 et PATH_INFO


dkpra
08/09/2005, 15h39
Je rencontre un gros problème dans la phase d'intégration d'un projet de site Web sur un hébergement 60gp.

Le site est en php5 et se base massivement sur l'option MultiViews et PATH_INFO pour obtenir des URL jolies.

Malheureusement l'utilisation du PATH_INFO semble défaillant dès qu'on utilise du php5.

Voici un test :

http://psydk.org/test.php/plop <---- php4, pas de soucis

http://psydk.org/test.php5/plop <---- page d'erreur avec écrit « No input file specified. » (dans Firefox, ou IE)

En tentant de cerner le problème, j'ai découvert que l'erreur n'a plus lieu quand la ligne suivante n'est plus dans la requête http :

Accept-Encoding: gzip,deflate

C'est visiblement le mot « gzip » qui déclenche toute l'erreur.

Voici des captures d'écran de la trace de la requête ; avec la ligne « Accept-Encoding: gzip,deflate » :
http://mess.psydk.org/pi1.png

Sans la ligne :
http://mess.psydk.org/pi2.png


Après ce n'est plus de mon ressort :/ Donc voilà, s'il y avait une âme charitable pour voir du côté serveur ce qui se passe, on serait super reconnaissant :) L'idée de devoir recoder du php5 en php4 pour contourner le bug ne nous séduit guère :(

alexlop
20/10/2005, 09h36
salut,

moi aussi j'ai le meme probleme
il est specifié depuis quelque temps sur les travaux en cours, qu'il y a un probleme entre gzip et php5

resultat quand on appel un fichier
..../file.php5 ca marche
et quand on appel un fichier
..../file.php5/ ca marche plus !

si on desactive gzip
.htaccess:
mod_gzip_on Off
les deux marches mais on a plus gzip !

en revanche la variable $_SERVER['PATH_INFO'] ne fonctionne qu' en php4
je ne voix pas le rapport avec le reste
c'est un probleme distinct

et j'aimerai bien que les 2 soient resolus !

j0k3r_n0ir
20/12/2005, 00h20
si on desactive gzip
.htaccess:
mod_gzip_on OffCertes on réussi à afficher la page.
Mais dans mon cas (url rewriting) cela pause un probleme car tout ce qui suit le / est totalement ignoré ...

Ainsi si l'on veut faire pointer /produits/ sur /produits.php5, pas de problème. Mais si on veut faire pointer /produits/article-1.html sur /produits.php5?prod=1 ... on retombe sur la page produits.php5 tout court.

C'est très énervant !!
Ca veut dire qu'il faut soit que je revienne en php4 soit que je change mes regles de ré-écritures ?

C'est relou. :mad:

j0k3r_n0ir
23/12/2005, 23h50
Je viens d'avoir la joie de découvrir que sous PHP 4 comme sous PHP 5 :

Virtual Directory Support disabled

:(
Merci OVH :o

alexlop
25/12/2005, 11h43
parade au probleme

si la fonction server pathinfo ne fonctionne pas ne php5
en revanche la variable $_SERVER['REQUEST_URI'] fonctionne bien
il suffit alors de décaler (car 1 élément en plus) d'un cran et on obtient le meme resultat

preg_match('/^\/(\w+)\/(\w+)/', $_SERVER['PATH_INFO'], $chemin);

$chemin[1]

devient equivalent à

preg_match('/^\/(\w+)\/(\w+)/', $_SERVER['REQUEST_URI'], $chemin);
$chemin[2]