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

Langage PHP Discussion :

Script automatisation de procédure


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut Script automatisation de procédure
    Bonjour,

    Je souhaiterai créer un script permettant de se loguer et d'automatiser une tâche rébarbative qui consiste à cliquer sur plusieurs liens successifs.

    J'ai lu par ci par là quelques pistes comme l'utilisation de la librairie curl en PHP ou utiliser la fonction fsockopen ou encore de le faire en PerL

    Je n'ai aucune idée de par où commencer et avec quoi ?

    Toute aide ou bonnes idées sont les bienvenues !

    Merci d'avance pour votre aide !

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Salut,
    Je souhaiterai créer un script permettant de se loguer et d'automatiser une tâche rébarbative qui consiste à cliquer sur plusieurs liens successifs.
    C'est bien possible mais avant tu dois connaître les pages en questions ensuite d'utiliser Curl.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut
    Salut Thes32,

    Alors pour ce qui est des noms des pages sur lesquelles je dois naviguer je les connais.

    D'ailleurs, j'ai réussi avec cURL à m'authentifier sur le site, il ne me reste plus qu'à partir de ce point là qu'à simuler un "clic" sur un lien de la page où je suis positionné après mon authentification.

    Et c'est là que je bloque, je ne sais pas comment continuer mon script afin qu'une fois authentifié, il navigue vers une autre page.

    Je mets mon 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
     
    <?php
    $ch = curl_init();
     
    curl_setopt($ch, CURLOPT_URL,"http://site/login" );
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'LOGIN=monlogin&PASSWORD=monpass&heureTR=\"\"' );
    curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie_site.txt');
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
     
    $auth = curl_exec ($ch);
     
    curl_close ($ch);
    J'ai pensé à rajouter après ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $ch2 = curl_init();
     
    curl_setopt($ch2, CURLOPT_URL,"http://site/lien1" );
     
    echo $navig = curl_exec ($ch2);
     
    curl_close ($ch2);
    Je pensais avoir l'affichage de la page correspondant au lien pour vérifier le bon fonctionnement du script mais je n'obtiens qu'une page avec l'erreur : "Session expired" ce qui accuserait peut-être les cookies de ne pas suivre dans ma 2ème requête cURL, non ?

    J'ai tout de même essayé ça mais apparemment ça ne fonctionne pas non plus :
    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
     
    <?php 
    $ch = curl_init();
     
    curl_setopt($ch, CURLOPT_URL,"http://site/login" );
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'LOGIN=monlogin&PASSWORD=monpass' );
    curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie_site.txt');
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
     
    $auth = curl_exec ($ch);
     
    curl_setopt($ch, CURLOPT_URL,"http://site/lien1" );
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie_site.txt'); 
     
    $lien = curl_exec ($ch);
     
    curl_close ($ch);
    ?>
    Une idée ?

    Merci !

  4. #4
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Peux tu tester avec ceci ?

    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
     
    <?php
     
    $credentials = array( 'LOGIN' => 'tonLogin', 'PASSWORD' => 'tonpassword', 'autre' => 'valeur' );
     
    //initialisation de Curl
    $ch = curl_init();
    //fixer les paramètres
    curl_setopt( $ch, CURLOPT_URL, "http://site/login" );
    curl_setopt( $ch, CURLOPT_POST, 1 );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, $credentials );
    curl_setopt( $ch, CURLOPT_COOKIEJAR, 'cookie_site.txt' );
    curl_setopt( $ch, CURLOPT_COOKIEFILE, 'cookie_site.txt' );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    //execution login
    $resultat = curl_exec ( $ch );
    echo $resultat;
    echo "<br>".PHP_EOL;
     
    //navigation
    curl_setopt( $ch, CURLOPT_URL, "http://site/lien1" );
    echo $resultat = curl_exec ( $ch );
    echo $resultat;
    echo "<br>".PHP_EOL;
     
    curl_close ( $ch );
     
    ?>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut
    Je viens d'essayer ça mais j'ai toujours l'erreur de perte d'authentification :
    "Session expired..."

    D'ailleurs tu affichais 2 fois le résultat dans ton code mais j'ai corrigé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo $resultat = curl_exec ( $ch );
    echo $resultat;
    Toujours les cookies en cause ?

  6. #6
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Je viens d'essayer ça mais j'ai toujours l'erreur de perte d'authentification :
    "Session expired..."
    Le fichier cookie_site.txt est bien crée ? le script peut bien le lire ?

    D'ailleurs tu affichais 2 fois le résultat dans ton code mais j'ai corrigé
    Non, en fait les deux affichages sont différentes l'une c'est pour afficher le résultat de l'authentification et l'autre c'est pour afficher la page du lien1.

Discussions similaires

  1. Script automatisation ignite ux
    Par rouget dans le forum Shell et commandes POSIX
    Réponses: 11
    Dernier message: 11/01/2013, 16h12
  2. Réponses: 6
    Dernier message: 20/12/2007, 11h49
  3. pb script automatisation reservation ip
    Par karine82 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 23/11/2007, 15h54
  4. [Access97] Automatiser une procédure
    Par Cyric dans le forum VBA Access
    Réponses: 8
    Dernier message: 20/08/2007, 15h33
  5. Script Shell et procèdure stockée
    Par Flipmode dans le forum SQL
    Réponses: 8
    Dernier message: 15/06/2007, 17h15

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