OVH Cloud OVH Cloud

SCRIPT_FILEMANE

5 réponses
Avatar
oam
Bonjour,

Est-ce que quelqu'un aurait une solution pour déterminer le chemin d'un
script (equivalent à SCRIPT_FILENAME) lorsqu'on utilise php en vesrion CGI
sur Apache,
car dans ce cas SCRIPT_FILEMANE est érroné et pointe vers le chemin de
php.exe ?

Merci d'avance.

5 réponses

Avatar
Paul Delannoy
oam a écrit:
Bonjour,

Est-ce que quelqu'un aurait une solution pour déterminer le chemin d'un
script (equivalent à SCRIPT_FILENAME) lorsqu'on utilise php en vesrion CGI
sur Apache,
car dans ce cas SCRIPT_FILEMANE est érroné et pointe vers le chemin de
php.exe ?


$PHP_SELF ?

Merci d'avance.


De rien

Avatar
Xavier Garreau
Est-ce que quelqu'un aurait une solution pour déterminer le chemin d'un
script (equivalent à SCRIPT_FILENAME) lorsqu'on utilise php en vesrion CGI
sur Apache,
car dans ce cas SCRIPT_FILEMANE est érroné et pointe vers le chemin de
php.exe ?


Tu devrais avoir ça dans PATH_TRANSLATED mais ça dépend d'un des paramètres du
php.ini, cgi.fix_pathinfo

a+
--
Xavier Garreau
http://www.xgarreau.org/

Avatar
Olivier Miakinen

Est-ce que quelqu'un aurait une solution pour déterminer le chemin d'un
script (equivalent à SCRIPT_FILENAME) lorsqu'on utilise php en vesrion CGI
sur Apache,
car dans ce cas SCRIPT_FILEMANE est érroné et pointe vers le chemin de
php.exe ?


Tiens ? Dans mon cas, c'est SCRIPT_NAME qui pointe vers le chemin de
l'exécutable php, tandis que SCRIPT_FILENAME pointe vers le script :
http://www.miakinen.net/phpinfo

Sinon, comme le signale Xavier Garreau, tu peux l'avoir dans
PATH_TRANSLATED. Quoi qu'il en soit, le mieux est de faire ce que
j'ai fait pour te répondre : regarder ce que dit phpinfo() sur ton serveur.

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)

Avatar
oam
"Xavier Garreau" a écrit dans le message de news:
dqlg9e$2fs7$
Est-ce que quelqu'un aurait une solution pour déterminer le chemin d'un
script (equivalent à SCRIPT_FILENAME) lorsqu'on utilise php en vesrion
CGI sur Apache,
car dans ce cas SCRIPT_FILEMANE est érroné et pointe vers le chemin de
php.exe ?


Tu devrais avoir ça dans PATH_TRANSLATED mais ça dépend d'un des
paramètres du php.ini, cgi.fix_pathinfo



Oui c'est en effet la solution que j'ai retenue,

$inter_type = php_sapi_name();
if (substr($inter_type, 0, 3) == 'cgi') {
$chemin_script = str_replace('\','/',$_SERVER['PATH_TRANSLATED']);
} else {
$chemin_script = $_SERVER['SCRIPT_FILENAME'];
}

mais je savais pas qu'elle dépendait de cgi.fix_pathinfo dans php.ini.
Je n'ai pas trouvé trace de cette variable dans mon php.ini et pourtant cela
fonctionne... Une idée ?


Avatar
Xavier Garreau
mais je savais pas qu'elle dépendait de cgi.fix_pathinfo dans php.ini.
Je n'ai pas trouvé trace de cette variable dans mon php.ini et pourtant cela
fonctionne... Une idée ?


Cette variable n'existe que depuis PHP 4.3.0 (cf.
http://www.php.net/manual/en/ini.php)

Elle doit à peu près dater de la sortie de la rfc pour la cgi/1.1 (Octobre 2004,
http://www.ietf.org/rfc/rfc3875.txt). Les seuls documents que l'on trouvait
avant sur la spec cgi faisaient que chacun traitait ça un peu à sa sauce. Et
finalement, c'est la sauce Apache qui a pris (les auteurs de la rfc 3875,
justement, sont D. Robinson, K. Coar : The Apache Software Foundation)

J'ai rencontré pas mal de soucis pour comprendre ces variables dont la
signification semblait changer d'une version à l'autre en codant
<pub>ZazouMiniWebServer ( http://www.xgarreau.org/zazouminiwebserver/ )</pub>.
La sortie de cette rfc a stabilisé les choses :)

a+
--
Xavier Garreau
http://www.xgarreau.org/