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 :

[Débutant] cookie or not cookie?


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 196
    Par défaut [Débutant] cookie or not cookie?
    Bonjour,

    je travail sur la connection automatique à une application web intranet.
    mon problème et que je ne comprends pas bien comment je peux faire pour recevoir et utiliser les cookies.

    voila mon code :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    print "\nLOGIN : ";
    chomp($login=<>);
    print "\nMot de passe : ";
    chomp($motp=<>);
     
    	#-------Connexion (login) au serveur ------#
     
    require HTTP::Request;
    use LWP::UserAgent;
    use HTTP::Request::Common;
    use HTTP::Cookies;
     
    $ua = LWP::UserAgent->new;
     
    $r=$ua->request(POST 'http://sav.fr/binaccdi/accint.dll', 
    [provenance => CTLIDT,environnement => expsv,CODLOOK => 0,
    CODLANG => 0,nom => $login,password => $motp,submit => formident]);
     
    $resultat=$r->content;
     
    open (FICOUT,'>c:/tmp/oc1.htm');
    print FICOUT "\n$resultat";
     
    # La on est sur la premiére page. on vas maintenant appeler la page suivante
    # et récupérer le cookie qui vas bien ...
     
    @url=split('\n',$resultat);
    foreach(@url){
    	if(/> APPLI2 </){
    		if(/(http.*CODLOOK=0)/){
    			print $1;
    			$httpurl=$1;
    		}
    	}
    }
     
    $ua = LWP::UserAgent->new(
            agent      => 'Mozilla/4.0 (compatible; MSIE 6.0; windows NT 5.1)',
            cookie_jar => HTTP::Cookies->new(
                file           => $conf{f},
                autosave       => 1,
                ignore_discard => 1,        # le cookie devrait être effacé à la fin
            )
        );
     
        $request = HTTP::Request->new( GET => "$httpurl" );
     
    $r = $ua->request($request);
    print "\n", $r->status_line, "\n";
    $resultat=$r->content;
     
    open (FICOUT,'>c:/tmp/oc2.htm');
    print FICOUT "\n$resultat";
     
    # print "\n$resultat";
    comment je peux faire pour voir se que contient mon cookie?
    si perl le lit correctement ou pas?
    (je sais que le cookie arrive car je le vois arriver avec ethereal!!)
    comment je peux renvoyer les informations du cookie?

    voila tout!
    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu devrais créer HTTP::Cookies dans une variable et ensuite utiliser cette variable dans le constructeur du UserAgent, il serait plus accessible ainsi.
    Ensuite il te suffit d'utiliser la méthode scan de ton objet HTTP::Cookies pour inspecter son contenu. Les cookies sont automatiquement ajouté à ton objet lorsqu'ils sont reçus et automatiquement renvoyés par LWP::UserAgent, tu n'as pas à t'en préoccuper.

    --
    Jedaï

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 196
    Par défaut
    merci de l'info!

    Tu devrais créer HTTP::Cookies dans une variable et ensuite utiliser cette variable dans le constructeur du UserAgent, il serait plus accessible ainsi.
    je regarde de suite!

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par rteuteu55
    merci de l'info!

    je regarde de suite!
    C'est juste une question d'accessibilité et de lisibilité, parce que si tu ne fais pas ça, tu es obligé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ua->cookie_jar()->scan( \&ta_méthode );
    (et lorsque le code Perl commence à ressembler à du Java...)

    --
    Jedaï

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 196
    Par défaut
    j'ai en effet le cookie enregistré correctement dans mon fichier tecte!
    néanmoins, je ne vois pas comment je peut écrire ma seconde requêttes pour qu'elle utilise automatiquement? mon cookie?!

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Il faut utiliser le même UserAgent tout du long du script, pas en créer un par requête.

    --
    Jedaï

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 196
    Par défaut
    donc si je comprends bien!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $cookie = HTTP::Cookies->new(
                       File     => "toto.txt",
                       AutoSave => 1,
                   );
    j'utilise mon cookie dans ma requêtte 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $ua = LWP::UserAgent->new(
            agent      => 'Mozilla/4.0 ',
            cookie_jar => $cookie 
    )
     
    $request = HTTP::Request->new( GET => "$httpurl1", cookie_jar => $cookie);
    code ??

    j'utilise mon cookie dans ma requêtte 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $request = HTTP::Request->new( GET => "$httpurl2", cookie_jar => $cookie);
    ....

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

Discussions similaires

  1. [Débutant] L'utilisation des cookies
    Par Perfourras dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/06/2008, 10h29
  2. cookie or not ?
    Par deny dans le forum Modules
    Réponses: 1
    Dernier message: 11/05/2008, 10h24
  3. Réponses: 4
    Dernier message: 24/11/2006, 15h43
  4. [Cookies] Création du cookie en automatique
    Par gdavin dans le forum Langage
    Réponses: 5
    Dernier message: 07/10/2005, 17h14
  5. [Cookie]Enregistrer un Cookie sur le serveur
    Par schneiderj dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 06/04/2005, 14h39

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