IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Modifier une base de donnée dans le Session_OnEnd


Sujet :

ASP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut Modifier une base de donnée dans le Session_OnEnd
    J'ai lu dans le tutoriel ASP ( http://florian.developpez.com/asp/page4.php ) que l'auteur s'est acharné à tenter de modifier une base de donnée lors de l'appel de la fonction Session_OnEnd() du fichier Global.asa.
    N'y-a-t-il vraiment aucun moyen de modifier une base de donnée à ce moment là?

  2. #2
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    En théorie, il ne devrait pas y avoir de problème.
    Il faut seulement ne pas oublier que les sessions ne se terminent pas à un temps précis ou quand l'utilisateur ferme son navigateur... Cependant, le code devrait s'exécuter... un jour...
    Fait tes tests et fait nous part de tes résultats.
    En théorie, le code de "Session_OnEnd" devrait s'éxécuter 20 minutes (temps par défaut) après la dernière action de l'utilisateur.
    Tu peux utiliser pour forcer la fin d'une session.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut
    Justement, j'ai essayé plusieurs manières, soit en abandonnant la session, soit en attendant 20 minutes, mais rien n'y fait, et pourtant le code est bon, puisque je l'ai recopié dans Session_OnStart() pour tester, et là aucun problème...

  4. #4
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Est-ce que nous pouvons voir ton code?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut
    voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var connexion = new ActiveXObject("ADODB.Connection");
    connexion.Open("ODBCBdd");
    connexion.Execute("DELETE Session_temp.* FROM Session_temp WHERE (((Session_temp.session_username)='" + Request.Cookies("cookiepseudo") + "'));");
    connexion.Close();

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 966
    Points
    3 966
    Par défaut
    salut
    un Request.Cookies("cookiepseudo") sur une session qui est censée être terminée, ça rique d'être pas facile avec un utilisateur qui n'est plus là ?
    La collection Request sous-entend que l'utilisateur demande une page...
    Objet Request
    L'objet Request extrait les valeurs que le navigateur client a passé au serveur au cours d'une demande HTTP
    mais je suis pas sur qu'une variable session type session("pseudo") marche mieux.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2002
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Je crois qu'effectivement, la solution pourrait être une variable de session, quoique la variable Session("Pseudo") pourrait être détruite tout juste avant le lancement de la requête pour effacer les traces de l'utilisateur dans ta base de donnée.

    Si ton utilisateur n'est pas le dernier, tu peut passer par les variables d'Application, mais le problème risque de se poser pour le dernier utilisateur de ton application...

    Je te suggère de placer dans la table de ta BD, une date d'expiration sur ton enregistrement, qui te permettrait de "nettoyer" les utilisateurs expirés, lors d'un accès par un utilisateur !!!

    Ou encore, au lieu d'utiliser une table pour y placer des informations volatiles sur tes utilisateurs, place ces infos dans des variables de sessions (array), variables qui disparaitront d'elle-même lors de la fermeture de session !!!

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut
    Merci pour vos réponses, la solution de la date d'expiration sur les enregistrements me parrait la plus sûre et la plus adéquate avec mon application.
    Je vous remercie de votre aide! 8)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modifier une base de données dans un formulaire
    Par pascal1967 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/09/2014, 09h09
  2. Importer la structure d'une base de donnée dans un combobox
    Par hanines dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/09/2005, 22h41
  3. Réponses: 8
    Dernier message: 23/03/2005, 19h28
  4. Réponses: 4
    Dernier message: 29/11/2004, 16h51
  5. [C#] Modifier une base de donnée
    Par Macintoc dans le forum Accès aux données
    Réponses: 15
    Dernier message: 03/06/2004, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo