Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/12/2006, 15h10   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 5
Points : 0
Points : 0
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!
rebaj83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 21h24   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 23h53   #3
Membre éclairé
 
Avatar de genova
 
Inscription : septembre 2004
Messages : 487
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 487
Points : 397
Points : 397
Envoyer un message via MSN à genova
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.
genova est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 09h52   #4
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 10h42   #5
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
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...
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 12h47   #6
Invité de passage
 
Inscription : décembre 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 5
Points : 0
Points : 0
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?
rebaj83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 12h57   #7
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
si tu avais des exemples, par exemple quel formulaire tu veux remplir? pour quel site?

sinon, oui, tu peux faire un patron, par site.
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 13h05   #8
Invité de passage
 
Inscription : décembre 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 5
Points : 0
Points : 0
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.
rebaj83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 13h20   #9
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
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 :
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é.
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 13h41   #10
Invité de passage
 
Inscription : décembre 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 5
Points : 0
Points : 0
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?
rebaj83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h45.


 
 
 
 
Partenaires

Hébergement Web