Citation :
- La solution la plus simple : si PHP a été compilé avec l'option ?-enable-trans-sid et qu'on a configuré session.use_trans_sid à 1, il n'est pas nécessaire de se préoccuper de transmettre l'id de session, PHP la transmet automatiquement dans l'URL de manière transparente (on ne voit pas l'id de session dans l'URL). C'est sans doute la solution la plus élégante et la moins casse-tête.
MAIS, cette solution ne peut pas être retenue dans la majorité des cas ! En effet, PHP ne gère plus cette fonctionnalité sitôt qu'on effectue une redirection avec un header ! De plus, si on utilise des URL absolues, ce qui peut arriver dans certains développements, PHP ne transmet pas l'id de session car il suppose qu'on se dirige vers un site extérieur.
- On peut comme souvent se reposer sur un système de cookies. PHP le gère d'ailleurs automatiquement dans sa configuration avec session.use_cookies. S'il est à 1, l'id de session est automatiquement enregistré en tant que cookie sur l'ordinateur du client. Cette solution ne peut pas non plus être retenue telle quelle car si le client refuse les cookies, l'id de session n'est pas enregistrée.
- On peut décider de passer à chaque fois l'id de session dans l'URL. C'est une solution qui fonctionne à tous les coups même si elle est lourde et peu élégante.
Les URL seront alors de la forme : "index.php?".session_name()."=".session_id() ou index.php?<? echo session_name();?>=<? echo session_id(); ?> ou autres variantes du même genre.
|