Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

cgi : récupérer le chemin de la page appelante

6 réponses
Avatar
kato fong
Bonjour,

J'ai écrit un script cgi python qui fait face à une crise de croissance.

Il est destiné à être utilisé sur des serveurs variés avec des
organisations difficilement prévisibles.

J'aimerais donc déterminer _facilement et de façon sûre_ le chemin de la
page html/php appelant ce script.

J'ai vu que je pourrais utiliser le HTTP_REFERER. Toutefois, dans une
configuration possible, cette variable me renvoie :

http://www.XXX.com/~user001/lance.php

ce qui me gêne car suivant les cas cela peut faire référence à :
/home/user001/www/, /home/user001/public_html, voire autre chose ...

Une idée ?

D'avance merci

--
kf

6 réponses

Avatar
hg
kato fong wrote:


J'aimerais donc déterminer _facilement et de façon sûre_ le chemin de
la page html/php appelant ce script.

J'ai vu que je pourrais utiliser le HTTP_REFERER. Toutefois, dans une
configuration possible, cette variable me renvoie :

http://www.XXX.com/~user001/lance.php

ce qui me gêne car suivant les cas cela peut faire référence à :
/home/user001/www/, /home/user001/public_html, voire autre chose ...



Si la question est de savoir ce que représente ~, tu peux lire le
contenu de $HOME avec os.getenv('HOME')


os.path.realpath('.') me renvoie /var/www/cgi-bin

et

os.getenv('HOME') me renvoie "None".

j'ai finalement opté pour la solution consistant à rajouter un paramètre
lors de l'appel. pas terrible ... :(

A+

--
kf


Ben si, c'est propre.

hg




Avatar
jean-michel bain-cornu
Bonjour,
J'aimerais donc déterminer _facilement et de façon sûre_ le chemin de la
page html/php appelant ce script.

J'ai vu que je pourrais utiliser le HTTP_REFERER. Toutefois, dans une
configuration possible, cette variable me renvoie :

http://www.XXX.com/~user001/lance.php

ce qui me gêne car suivant les cas cela peut faire référence à :
/home/user001/www/, /home/user001/public_html, voire autre chose ...


os.path.realpath('.') ?

hg
Si la question est de savoir ce que représente ~, tu peux lire le

contenu de $HOME avec os.getenv('HOME')
A+
jm


Avatar
kato fong

J'aimerais donc déterminer _facilement et de façon sûre_ le chemin de la
page html/php appelant ce script.

J'ai vu que je pourrais utiliser le HTTP_REFERER. Toutefois, dans une
configuration possible, cette variable me renvoie :

http://www.XXX.com/~user001/lance.php

ce qui me gêne car suivant les cas cela peut faire référence à :
/home/user001/www/, /home/user001/public_html, voire autre chose ...



Si la question est de savoir ce que représente ~, tu peux lire le
contenu de $HOME avec os.getenv('HOME')


os.path.realpath('.') me renvoie /var/www/cgi-bin

et

os.getenv('HOME') me renvoie "None".

j'ai finalement opté pour la solution consistant à rajouter un paramètre
lors de l'appel. pas terrible ... :(

A+

--
kf



Avatar
jean-michel bain-cornu
os.getenv('HOME') me renvoie "None".
Oui, ce n'était pas une bonne suggestion, car le process (apache ?)

s'éxécute sans contexte utilisateur, donc pas de variable $HOME...

Avatar
jean-michel bain-cornu
j'ai finalement opté pour la solution consistant à rajouter un paramètre
lors de l'appel. pas terrible ... :(



Ben si, c'est propre.

...et indépendant de la plate-forme sous-jacente.



Avatar
kato fong
j'ai finalement opté pour la solution consistant à rajouter un paramètre
lors de l'appel. pas terrible ... :(



Ben si, c'est propre.

...et indépendant de la plate-forme sous-jacente.



c'eût été propre si j'avais été sûr d'introduire les douzes lignes de
modifs (réparties dans 4 endroits) at the _right places_ ...

et en plus, ça m'a demandé facilement une heure de boulot :X

A+

--
kf