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 :

Développer un robot qui remplit des formulaires


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Développer un robot qui remplit des formulaires
    Bonjour,

    dans le cadre d'un projet de site de concours, je souhaiterai developper un robot php qui remplirait automatiquement les champs d'un formulaire de concour.

    un peu dans le meme esprit qu'un robot spammeur, sauf qu'ici il ne s'agit pas de spam! Wink

    malheureusement je ne trouve pas d'infos sur le forum sur ce genre de programme.

    quelqu'un a deja realisé ce genre de code?
    pourriez vous m'orienter dans ma recherche?

    merci!

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    ern fait ton robot doit soumettre des formulaires et non pas les remplir (ce n'est pas la même chose) donc il doit remplacer le rôle du navigateur qui envoie une requête au serveur
    Pour celà tu as la fonction http://php.net/fsockopen. Pour les requêtes GET tu peux simplifier en utilisant la fonction http://php.net/file_get_contents

  3. #3
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Ou bien tout simplement utiliser la librairie CURL
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par genova
    Ou bien tout simplement utiliser la librairie CURL
    je l'avais oublié celle là, merci genova
    il y a un exemple d'utilisation dans la FAQ :
    http://php.developpez.com/faq/?page=...iotheques_curl

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    Tu auras besoin de Curl pour toute les connexions au site et l'envoie de réponses,
    tu auras aussi besoin de preg_match_all pour scanné les pages qui contiennent les champs de formulaire (<form>) puis contrôler ou envoyé la prochaine request, et à l'intérieur du champs de formulaire, qu'elles sont les champs à remplir (et leurs type)

    J'avais fait ce genre de robot mais en bash (avec wget, cat, grep, sed)
    tu auras peut être la gestion des cookies à faire,
    je te conseil un code de php qui utilisé pour t'aidé la connexion avec fsockopen http://sourceforge.net/projects/poxy/
    tu y verras comment contrôlé les balise HTML...

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    merci pour vos réponses.

    Donc si j'ai bien pigé, le système c'est de récupérer la source de la page formulaire avec curl, de la modifier comme ceci en ajoutant les réponses aux champs:

    Source du formulaire : <input type="text" name="nom">
    Formulaire complété : <input type="text" name="nom" value="rebaj83">

    puis de soumettre le formulaire en javascript. j'ai bon?

    la seule chose qui me reste à définir, c'est comment remplir des formulaires qui auront le meme genre de champs ( nom, prenom, adresse...) sans que ces champs aient le meme nom d'un formulaire à l'autre, vous voyez ce que je veux dire? en fait comment reconnaitre deux champs qui on le meme intitulé "nom" mais pas forcément le meme identifiant sur chaque formulaire. Avec un patron par exemple?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    si tu avais des exemples, par exemple quel formulaire tu veux remplir? pour quel site?

    sinon, oui, tu peux faire un patron, par site.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    comme je l'ai dit dans mon premier message, je souhaite développer un robot qui inscrira automatiquement les membres inscrits (nom prenom adresse...) a des concours recencés par l'administrateur du site.

    En fait l'administrateur parcours le web a la recherche de pages concours, les ajoutent dans la BDD, puis le robot inscrit automatiquement les membres sur cette page.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    Alors, je pense que le plus intéressent serais
    de faire un script ou tu peux ajouté les adresse URL qui pointe directement vers la page d'inscription,
    ensuite que le script envoie directement des données pré formaté au site pour les inscrires.
    http://fr.php.net/curl
    Par exemple, si les données pour les inscriptions sont à envoyé en POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $array = array('nom' => array('paul', 'jean', 'toto'), 'email' => array('paul@free.fr', 'jean@orange.fr', 'toto@caramail.com'));
    $site_concours['page inscription'] = 'http://www.concours.fr/inscription.php';
     
    for ($i = 0; $i < count($array['nom']); $i++)
    {
      $sessions = curl_init();
      curl_setopt($sessions,CURLOPT_URL,$site_concours['page inscription']);
      curl_setopt($sessions, CURLOPT_POST, 1);
      curl_setopt($sessions,CURLOPT_POSTFIELDS,'name='.urlencode($array['nom'][$i]).'&email='.urlencode($array['email'][$i]).'');
      curl_setopt($sessions, CURLOPT_RETURNTRANSFER,1);
      curl_exec($sessions);
      curl_close($sessions);
    }
    il faut bien sure crée la fonction qui permettras de faire une boucle jusqu'à la fin des membres que tu veux inscrire.

    Bien sur, avant il faut que tu saches quels sont les noms des champs de formulaire à renvoyé.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    oui c bien ca, je pensais faire un patron concernant les nom des input, par exemple, "nom, name, nm, nomdefamille..." pour rechercher le champ nom, puis quand je trouve celui qui correspond, je rempli avec le nom de famille.

    vous pensez qu'il y a plus simple?

Discussions similaires

  1. [MySQL] Créer un robot qui récupère des documents sur le web
    Par NynaByla dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/11/2012, 15h58
  2. Développer un robot qui parcours le web
    Par akrogames dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 22/02/2011, 15h53
  3. Robot qui remplit les formulaire automatiquement
    Par cyclopsnet dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 19/05/2010, 15h39
  4. Ecrire un robot qui remplirai des formulaires web et les validerai
    Par biglittlekiss dans le forum Général Java
    Réponses: 22
    Dernier message: 11/02/2007, 17h44
  5. Réponses: 1
    Dernier message: 15/08/2006, 01h39

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