|
|||||||
1. Introduction
2. Installation 3. Le serveur Web 4. Travailler avec Apache ou Xitami 5. Programmation 6. Debogage 7. Scripts Python 8. Services Karrigell 9. Python Inside HTML 10. HTML Inside Python 11. HTMLTags - génère du HTML en Python 12. Inclure des documents 13. Sessions 13.1 Exemple 14. Authentification 15. Internationalisation |
13. SessionsLes sessions sont une façon pour le serveur de garder en mémoire des informations relatives à un utilisateur particulier pendant qu'il navigue de page en page Supposons que vous soyez sur un site sur lequel vous avez trouvé deux CD que vous voudriez commander ; puis sur une autre page vous trouvez un livre. Ensuite on vous posera des questions sur votre adresse, on vous demandera d'écrire un message si c'est pour un cadeau, puis il y aura des questions sur votre numéro de carte bancaire. Après tout cela le site affichera une page récapitulant toute votre commande pour que vous confirmiez l'achat Sans les sessions ceci serait difficile à réaliser ; il faudrait passer toutes les informations de page en page par des champs de formulaire cachés, et ce serait compliqué à implémenter Avec les sessions tout devient simple ; l'utilisateur est identifié par un "identifiant de session" qui est envoyé avec chaque requête sous la forme d'un cookie. Cet identifiant correspond à un objet sur le serveur, objet à qui on peut ajouter des attributs ou de qui on peut en lire pendant toute la durée de la navigation de l'internaute Avec Karrigell, sur chaque page dans laquelle vous voulez modifier une information de session ou y accéder, commencez par créer un objet session par :
Si vous êtes au début de la session, Karrigell génèrera un cookie appelé sessionId et le renverra au navigateur web. Pour les requêtes suivantes, le navigateur enverra automatiquement ce cookie et le serveur retrouvera l'objet associé L'objet session est un objet Python ordinaire, on peut lui affecter des valeurs sous forme d'attributs :
Depuis un autre script on accède à cette valeur par :
Les objets session prennent en charge une méthode En fait, vous n'êtes pas obligé de clore explicitement une session ; Karrigell s'assure qu'il n'y a jamais plus de 1000 sessions simultanées et efface les plus anciennes quand on arrive à la 1000ème 13.1 ExempleDans un fichier HTML, créez un formulaire et envoyez-le à un script PIH :
Le script reçoit les données d'entrée via QUERY (ou les variables contenant les champs du formulaire), crée un objet session et sauvegarde nom et prenom comme attributs de cet objet :
Le script suivant est appelé sans chaîne de requête (query string), mais il retrouvera les informations via l'objet session :
Du fait que le script a clos la session, si vous revenez à la page précédente avec le navigateur et que vous réessayez le lien Suivant... vous recevrez une superbe trace d'erreur Python vous informant que l'objet session n'a pas d'attribut prenom. Modifiez le script en enlevant ou en mettant en commentaire la ligne
|