Faire fonctionner phpSecurePages avec SPIP

Je ne parviens pas à faire fonctionner correctement phpSecurePages avec
SPIP, pour protéger l'accès à certains articles. Je rencontre le même
problème qu'Estelle Dupray en février 2003 :

<http://listes.rezo.net/archives/spip/2003-02/msg00164.html>

J'ai bien sûr lu (et relu) les réponses et commentaires. Pourtant assez
aguerri au PHP, je n'ai pas compris, dans les 3 scripts de phpSecurePages, à
quel endroit l'appel à la page était effectué, et donc à quel endroit la
variable de SPIP était perdue. Deuxième option, et suite à la réponse de Fil
:

<http://listes.rezo.net/archives/spip/2003-02/msg00165.html>

...j'ai tenté de passer les URL en mode "html" plutôt que "standard". Manque
de chance, ça ne marche pas non plus (j'utilise la méthode avec un fichier
.htaccess), il semble que ModRewrite ne soit pas installé ou actif sur mon
Apache.

De plus, il semble qu'il ne soit pas indispensable de passer en mode "html"
pour faire fonctionner phpSecurePages, d'après la réponse d'André
Vanderlynder, pour qui tout à l'air de fonctionner :

<http://listes.rezo.net/archives/spip/2003-02/msg00166.html>

J'ai bien essayé différentes solutions (mettre l'appel à phpSecurePages dans
le squelette .html ou dans les fichiers .php3, à l'intérieur ou à
l'extérieur de la boucle (ARTICLES)), mais rien ne fonctionne pour autant.
phpSecurePages en soit fonctionne : les étapes de login et de logout
répondent correctement (j'utilise l'identification par une base mySQL).

Je pose donc la question : quelqu'un a-t-il réussi à faire fonctionner
correctement phpSecurePages et SPIP ensemble, dans le mode d'URL "standard"
de SPIP ? Et si oui, comment, quels sont vos réglages, votre configuration ?
Merci à ceux qui savent.

Vincent Florin

-------------------------------------------------------------------
www.mapomme.com, le site Web consacré à ClarisWorks et AppleWorks !

At 17:19 23/05/2003 +0200, you wrote:

Je ne parviens pas à faire fonctionner correctement phpSecurePages avec
SPIP, pour protéger l'accès à certains articles. Je rencontre le même
problème qu'Estelle Dupray en février 2003 :

<Discuter chez rezo.net;

J'ai bien sûr lu (et relu) les réponses et commentaires. Pourtant assez
aguerri au PHP, je n'ai pas compris, dans les 3 scripts de phpSecurePages, à
quel endroit l'appel à la page était effectué, et donc à quel endroit la
variable de SPIP était perdue.

Ca se passe dans interface.php dans les lignes :

// ------ create document-location variable ------
if ( ereg("php\.exe", $HTTP_SERVER_VARS['PHP_SELF']) || ereg("php3\.cgi", $HTTP_SERVER_VARS['PHP_SELF']) || ereg("phpts\.exe", $HTTP_SERVER_VARS['PHP_SELF']) ) {
        $documentLocation = $HTTP_ENV_VARS['PATH_INFO'];
} else {
        $documentLocation = $HTTP_SERVER_VARS['PHP_SELF'];
}
if ( $HTTP_SERVER_VARS['QUERY_STRING'] ) {
        $documentLocation .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}

la variable $documentLocation doit contenir l'adresse de la page, avec le ?id_rubrique=...

En fait, tous les serveurs apache ne renvoit pas le mêmes valeurs aux appels de variables QUERY_STRING en particulier

Pour comprendre ce qui coince, installe par exemple ce script dans ton espace :
phpinfo.php avec la ligne
                 <?php phpinfo(); ?>

Puis tu le lance avec : http://www.tonSite/phpinfo.php?article=12 par exemple
Ce script affiche la configuration Apache, PHP du secteur, et en bas de page, les valeurs affectées aux variables :
Par exemple dans mon cas :
_SERVER["QUERY_STRING"] article=12
_SERVER["REQUEST_URI"] /phpinfo.php?article=12
_SERVER["SCRIPT_NAME"] /phpinfo.php
_SERVER["PHP_SELF"] /phpinfo.php

Donc dans mon cas, $HTTP_SERVER_VARS['PHP_SELF'] . $HTTP_SERVER_VARS['QUERY_STRING'] fonctionne
Mais il aurait suffit de : $HTTP_SERVER["REQUEST_URI"]

A mon avis, c'est pour celà que ce script fonctionne chez certains, et pas chez d'autres ;-(

Bonne chance,

Henri

    - Henri -