Page 1 sur 2
remplir un formulaire en javascript
Publié : 04 juin 2006, 12:18
par amal
Bonjour à tous
je suis debutante en javascript, je voulais savoir comment je peux remplir un formulaire deja existant sur un autre site web,et puis le valider à partir d'un code javascipt ?
Merci Bcp
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 04 juin 2006, 14:55
par epsy
salut,
pour faire un robot de spam?
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 04 juin 2006, 21:46
par amal
non pas du tout c'est un cas d'ecole faisant parti d'un projet de fin d'etude de niveau bac+5,
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 04 juin 2006, 22:18
par epsy
est-ce que cet autre site web est dans un iframe? ou pas?
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 05 juin 2006, 09:31
par calimo
Sur un autre site web, c'est effectivement un peu compliqué, car le javascript s'exécute sur la page par laquelle il a été chargée.
Deux solutions en effet, tu inclus la page souhaitée dans une iframe, ou tu fais un script utilisateur pour greasemonkey
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firedragon Firefox/1.5.0.4
Publié : 05 juin 2006, 09:37
par amal
Merci Bcp pour votre aide, c gentil,mais je pense avoir precisé que je suis debutante en javascript ,donc je ne sais pas comment inclure la page dans un iFrame ,ni ce que c est le greasmonkey.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 05 juin 2006, 21:10
par epsy
un iframe c'est du html:
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 05 juin 2006, 22:25
par amal
Merci Bcp Epsy
Alors si j'ai bien compris ,il faut inclure la page dans un iframe pour pouvoir remplir le formulaire, est ce que cela marchera si je change le le champ "value" de chaque zone de texte et comment je fais pour envoyer le fomulaire ?
Merci d'avance.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 05 juin 2006, 22:40
par epsy
en effet c'est ça
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 05 juin 2006, 22:52
par arno.
Vous êtes sûrs que ça marche cette histoire d'iframe ?
Quand j'essaye, j'obtiens :
Error: uncaught exception: Permission denied to get property HTMLDocument.forms
Je trouve ça d'ailleurs bien heureux. Ça m'étonne qu'on puisse soumettre un formulaire depuis une autre page.
Publié : 05 juin 2006, 23:27
par arno.
Le code qui déclenche l'exception est :
Code : Tout sélectionner
<body>
<script type="text/javascript">
/* on recoit en parametre l'objet HTMLIFrameElement qui correspond à la frame */
function Traitement(iframe) {
// on recupere le document a l'interieur de la frame
var iframeDocument = iframe.contentDocument;
// on essaye d'accéder au contenu de ce document, mais on ne peut pas
var iframeFormulaires = iframeDocument.forms;
}
</script>
<!-- lorseque la frame sera chargee la fonction de traitement sera declenchée -->
<iframe onload="Traitement(this)" src="http://unepagequicontientunformulaire.org"/>
</body>
amal, je n'ai pas compris ce que tu veux faire. Est-ce que tu veux mettre une page sur un site à partir de laquelle on peut soumettre un formulaire sur un autre site ?
Dans ce cas, je ne pense pas que ce soit possible (je me trompe peut-être) car ce serait la porte ouverte à toutes les fenetres, et ça pourrait poser des problèmes de sécurité.
Ou bien, est-ce que tu veux,
depuis ton navigateur, remplir un formulaire de manière automatique ?
Dans ce cas, effectivement greasemonkey, ou un bookmarklet sont peut-être des solutions plus appropriées.
Publié : 05 juin 2006, 23:35
par amal
ce que je veux faire au juste c trouver un moyen de remplir un formulaire deja existant sur un site web,de maniere automatique ,c.a.d sans intervention manuelle de ma part, ca doit etre le resultat d'une execution d'un script javascript ou autre.
Merci bcp pour votre aide
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 05 juin 2006, 23:40
par Benoit
Cela dépend de ce qu'on appelle "site", je pense qu'on a les privilèges suffisants tant qu'on reste dans le même nom de domaine. Est-ce que ton script peut être placé sur le même domaine que le formulaire ?
Sinon effectivement il faut les privilèges chrome comme dans le cas des bookmarklets et scripts Greasemonkey.
Une dernière solution est bien sûr "autre"
Par exemple, un script PHP qui communique directement en HTTP avec le site en question.
Publié : 05 juin 2006, 23:46
par amal
Salut Benoit,merci pour ton interet.
est ce que tu peux me donner un peu plus de detail sur ta derniere solution concernant le script php?
Merci bcp
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Publié : 06 juin 2006, 08:04
par Benoit
Bon d'abord cela dépend de si tu connais le formulaire et ses champs a priori ou si tu dois d'abord l'analyser (le second cas est nettement plus compliqué).
En supposant que tu sais ce que tu dois envoyer, il y a encore deux solutions : soit le formulaire n'est pas très compliqué (pas de fichier joint) et le site accepte qu'on passe les champs dans l'URL (méthode GET). Là il suffit d'appeler l'URL suivie de tous les champs :
Code : Tout sélectionner
$var = fopen("http://www.example.com/monformulaire?login=toto&passwd=toto", "r");
Si la méthode GET ne fonctionne pas, il faut utiliser la méthode POST. Pour ça tu dois ouvrir une connexion avec
fsockopen et puis écrire dedans les instructions HTTP. C'est moins drôle.