0

Je suis en train de développer un module Apache 2 qui, entre autres fonctions, devrait intercepter certaines variables POST, puis établir une session PHP ci-dessous, définissant toutes les variables de session pertinentes.Apache Module de développement: PHP SESSION accès

Une option que j'ai envisagée consistait à utiliser des bibliothèques de cookies pour définir PHPSESSID dans la requête, puis insérer toutes ces valeurs dans le tableau associatif $ _SESSION. Problème est que je n'arrive pas à trouver une API pour le PHP, et mes soupçons que ces valeurs se trouvent réellement en dessous, dans le serveur Apache lui-même, sont actuellement sans fondement.

Est-ce que quelqu'un sait si c'est même possible? Ou même si je néglige une solution de contournement simple qui fonctionnerait?

+2

Je pense que vous devez écrire une extension PHP plutôt qu'un module Apache pour ce que vous voulez faire. Si vous vous connectez à Apache très tôt dans la requête, PHP n'a pas encore été invoqué, donc il n'y a pas de place pour injecter des variables de session. Si vous vous connectez plus tard dans la requête, PHP aura déjà été exécuté (et dans le cas de FastCGI) votre hook Apache ne fonctionnera probablement pas. Consultez [PHP at the Core] (http://www.php.net/manual/fr/internals2.php) pour plus d'informations sur le développement d'extensions PHP. – drew010

+0

Écrire une extension PHP signifierait aussi écrire du code pour d'autres systèmes de traitement web (comme CGI), ce qui, sans être particulièrement gênant dans mon cas,. – ravemir

+0

Je ne suis pas sûr de comprendre, l'extension PHP ne devrait pas vraiment se soucier de ce que l'API serveur est utilisée pour ce que cela ressemble à ce que vous voulez faire. Vous devez simplement ajouter un point d'ancrage pour le démarrage de la requête, vérifier vos variables de publication, démarrer une session et y injecter les données. – drew010

Répondre

0

J'ai finalement décidé d'écrire une extension PHP, à côté d'un autre gestionnaire sur mon module Apache, puisque je préfère y analyser certaines variables POST.

Le module va "mâcher" les données qui doivent être sauvegardées dans la session, et les transmettre comme nouvelles variables POST, après validation criptografique des données. L'extension PHP va alors démarrer une nouvelle session et définir chaque élément comme une variable de session.

Cela suppose que mon module s'exécutera avant le module PHP lui-même. Dans le cas où cela ne se produirait pas, je devrai gérer la validation sur PHP, ou essayer de forcer le gestionnaire à s'exécuter avant PHP en quelque sorte.

Questions connexes