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

Web Perl Discussion :

Session Perl/CGI avec MySQL


Sujet :

Web Perl

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 22
    Par défaut Session Perl/CGI avec MySQL
    Bonjour à tous,

    J'aimerais solliciter votre aide car je tente de stocker mes sessions Perl/CGI dans une DB MySQL et je n'y arrive tout simplement pas.

    J'ai lu, re-lu, et re-re-lu les différents documents sur CPAN et ça ne colle toujours pas...

    Il semble y avoir plein d'exemple sur le NET mais je n'ai pas réussi à en trouvé un avec MySQL. Les exemples que j'ai trouvé semblent tous être le default et ça, ça fonctionne sans problème.

    Si quelqu'un d'entre vous a un lien ou un exemple COMPLET sur ce que je tente de faire, ce serait fort apprécié...

    Robert.

  2. #2
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    Je ne suis pas sûr d'avoir bien compris, tu veux loguer tes sessions CGI, c'est ça ?

    Veux-tu le faire à la main ? Avec CGI::Session::Driver::mysql ?

    Où cela bloque-t-il ? Peux-tu poster ton code ?

  3. #3
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    J'imagine que tu as lu Session Management with CGI::Session de Sherzod Ruzmetov (l'auteur principal du module).

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 22
    Par défaut
    J'ai finalement réussi !

    Après avoir tricotté à maintes reprises, j'ai pondu ceci...

    Je post ici une copie de ce qui a fonctionné pour moi juste au cas ou ça pourrait aider quelqu'un d'autre.


    Table à créer pour contenir les sessions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        CREATE TABLE sessions (
            id CHAR(32) NOT NULL UNIQUE,
            a_session TEXT NOT NULL
        );

    Fichier qui crée la session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #!/usr/bin/perl -w
    #
    # Fichier session.cgi
    #
     
    use strict;
    use warnings;
     
    use CGI qw/:all *table start_ul/;
    use CGI::Pretty;
    use CGI::Carp qw(fatalsToBrowser);
    use CGI::Session;
    use DBI;
     
    my $host = 'localhost';
    my $database = 'User';
    my $user = 'test';
    my $password = 'test';
    my $session;
     
    my $dsn = "DBI:mysql:database=$database;host=$host";
     
    my $dbh = DBI->connect($dsn, $user, $password) or die "Echec connexion";
     
    $session = new CGI::Session("driver:MySQL", undef, {Handle=>$dbh});
     
    my $CGISESSID; 
    $CGISESSID = $session->id();
    print $session->header();
     
    print start_html( -title=>'Test Session' );
     
    $session->expire('+1h');
    $session->param('test', 'valeur');
     
    print a({-href=>'./sessionload.cgi'}, "Cliquer");

    Ficher qui charge la session après coup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #!/usr/bin/perl -w
    #
    # Fichier sessionload.cgi
    #
     
    use strict;
    use warnings;
     
    use CGI qw/:all *table start_ul/;
    use CGI::Pretty;
    use CGI::Carp qw(fatalsToBrowser);
    use CGI::Session;
    use DBI;
     
     
    my $host = 'localhost';
    my $database = 'User';
    my $user = 'test';
    my $password = 'test';
    my $session;
     
    my $dsn = "DBI:mysql:database=$database;host=$host";
     
    my $dbh = DBI->connect($dsn, $user, $password) or die "Echec connexion";
     
    $session = CGI::Session->load("driver:MySQL", undef, {Handle=>$dbh});
     
    print $session->header(); #demarrage du header de session!
     
     
    my $test = $session->param('test');
     
     
    print start_html( -title=>'Test Session' );
     
    print $test, p;

    Je tiens à te remercier "iblis" pour ton aide. Le lien que tu m'a fourni a allumé des lumières.

    Robert.

Discussions similaires

  1. feuille CSS avec Perl/cgi-pm
    Par Shyboy dans le forum Web
    Réponses: 1
    Dernier message: 05/08/2007, 19h01
  2. Système de cache d'objets avec MySql ou Session ?
    Par vodnok dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2007, 13h04
  3. Ouvrir une session client avec mysql
    Par n.sidali dans le forum Requêtes
    Réponses: 1
    Dernier message: 01/02/2007, 19h55
  4. BD avec PERL = eXist ou MySQL ?
    Par Batou dans le forum SGBD
    Réponses: 4
    Dernier message: 24/11/2005, 02h13
  5. Réponses: 5
    Dernier message: 19/07/2004, 17h27

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