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 :

LWP et Form: identification via un formulaire


Sujet :

Web Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [LWP] probleme lors de l'identification sur un forum
    Bonjour,
    Je souhaite accéder à ce site en m'identifiant via le formulaire de connexion.
    http://eterna-rpg.forumactif.net/login.forum?connexion
    Pour cela j'utilise LWP et Form. J'ai déjà utilisé un programme similaire pour me connecter à perlmonks sans problème. Mais dans ce cas je reçoit une erreur de type "erreur 200OK" donc la condition "$validate->is_success" n'est pas réalisée.
    Voici mon script quelqu'un pourrait il me dire si il détecte une erreur ?
    Peut être est la présence de PHP ou de javascript dans le forum qui pose problème ?

    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
     
    #!/usr/bin/perl
    use strict;
    use warnings;
    use LWP::UserAgent;
    use HTML::Form;
     
    # affiche tout
    #use LWP::Debug qw(+);
     
    chdir "G:/essai" or die "impossible de changer de repertoire: $!";
     
    my $url = 'http://eterna-rpg.forumactif.net/login.forum?connexion';
    my $broswer = new LWP::UserAgent;
    my $request = new HTTP::Request( GET => $url);
     
    my $res = $broswer->request($request);
    if ($res->is_success) {
    	my $headers = $res->headers();
    	my $content = $res->content();
    }else{
    	print "Erreur".$res->status_line."\n";
    }
     
    # le formulaire
    my $form = HTML::Form->parse( $res->content, $url );
     
    $form->value( username => 'rock' );
    $form->value( password => 'vsuv8r3f' );
     
    # valide et renvoie le formulaire
    my $validate = $broswer->request( $form->click );
     
    #sauvegarde de la réponse
    if ($validate->is_success) {
    	open REP, ">page.html" or die "impossible d'ouvrir le fichier :$!";
    	select REP;
    	print $validate->content;
    	close REP;
    	select STDOUT;
    	print "success\n";
    }else{
    	print "Erreur".$res->status_line."\n";
    }
    <STDIN>;
    Merci d'avance à qui voudra me donner un coup de main

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut Utilisation de WWW::Mechanize
    Salut,

    je viens de tester la connexion, et à priori il n'y a aucun problème.

    Voici mon petit bout de 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
    #!c:/perl/bin -w
     
    	use strict; use warnings;
    	use WWW::Mechanize;
     
     
    	my $URL = "http://eterna-rpg.forumactif.net/login.forum?connexion";
     	my $m = WWW::Mechanize->new;
     
    	# récupération du formulaire
    	$m->agent_alias("Linux Mozilla");
    	$m->get( $URL );
    	die 'Échec de connexion : ' . $m->res->status_line()
          		unless $m->success();
     
    	# remplissage et validation
    	$m->set_fields(
    		username => 'rock', # entrez vos identifiants de connexion ici
    		password => 'vsuv8r3f'
    	);
    	# validation formulaire
    	$m->click();
     
    	# connexion réussie ?
    	die 'Échec de validation du formulaire : ' . $m->res()->status_line()
    		unless $m->success();
     
    	# affichage resultat
    	print $m->content( format => 'text' );
    En espérant que cela a pu t'aider.
    A +

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci
    Merci pour ta réponse!
    Effectivement ça marche maintenant. L'erreur provient donc bien de mon code. J'utilise mechanize plutôt que LWP maintenant. Je vais quand même essayer de trouver l'erreur de mon code et de le réécrire.
    Encore merci.

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

Discussions similaires

  1. [Débutant] Création d'un fichier form via un formulaire de base
    Par Spirits92 dans le forum VB.NET
    Réponses: 8
    Dernier message: 22/05/2013, 08h50
  2. Réponses: 2
    Dernier message: 20/03/2013, 10h01
  3. Réponses: 9
    Dernier message: 30/08/2006, 00h42
  4. envoie de fichiers via les formulaires
    Par fabogranqi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 10/10/2004, 21h34
  5. Identification via un LDAP, password crypté
    Par brice.antoine dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 15/06/2004, 13h04

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