Javascript -> Automatisierter Aufruf eines POST
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hallo Liste Leider gehen meine Javascript-Kenntnisse gen Null .... googeln hat für das spezielle Problem auch nichts gebracht, vielleicht bin ich auch zu doof ... wer weiß :o) Ich benötige eine Idee, wie man aus dem unten abgebildetem HTML-Code ein Shell-Script erzeugt/programmiert, dass im Grunde das gleiche macht, wie ein interaktiver (also im Browser ausgelöster) Aufruf der Javascript-Funktion loeschen(0). Hmm, ich weiß nicht, ob ich mich deutlich ausgedrückt habe, daher mal eine rudimentäres Shellscript-Fragment : - ---schnipp--- #!/bin/sh IrgendeinProgrammMeinetwegenPerlOderLynxOderWet_das_loeschen(0) auf_der_Adresse_192.168.99.1_aufruft. - ---schnipp--- Hier ist das HTML-Fragment, dass sozusagen die Grundlage für das zu programmierende Shellscript bildet. Kenner werde es als HTML-Code der Telefonanlage T-EUMEX 628 erkennen ;o) - ---schnipp--- function loeschen(liste) { Check = confirm("Liste(n) wirklich loeschen ?"); if(Check == true) { document.getElementById("chooselist").value = liste; document.forms[0].submit(); } } function help() { parent.frames[3].location.href = "help/help.htm?val=065"; } </SCRIPT></head><body> <form method="post" name="liste" action="formhand/ovr.frm"> <input type=hidden id="chooselist" name=041 value=5 ><input type="hidden" name=049 value=c_08_0> </form> <form name="check_status"><input type="hidden" name="prot" value="1"> <input type="hidden" name="SG" value="0"></form> <table border="0" cellspacing="0" cellpadding="2" width="388" align="center" class="t5"> <tr><td id="line" colspan="2"> Leistungsmerkmale / Verbindungsdaten / Listen löschen</td></tr> <tr><td colspan="2"> <b>Listen löschen</b><br> </td></tr> <tr><td id="men"> <a href=javascript:loeschen(0);>> Alle Listen löschen</a></td> - ---schnipp--- Ich hoffe jemand von euch hat eine Idee, die er mir übermitteln kann. Grüße Harry -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (MingW32) iD8DBQFD+lJu7ttRafA1ej8RAlq7AJsGB/9bjMQ2kO7pu5fFJDxiVyHRSwCfX0mL 3lt85SorKICRoZUYRzeCofk= =x07m -----END PGP SIGNATURE-----
Hi auch, also ansich ist dass ja das Thema von vor ein paar Tagen; "skripten mit w3m" oder so war der Betreff. Fakt ist, dass es kein Problem ist, das gepostete Formular per w3m "abzuschicken" - könnte in etwa so aussehen der Aufruf: w3m -dump -post /das/soll/post.txt http://deine-eumex.xy/formhand/ovr.frm Wobei Du dann die Datei post.txt mit den Benötigten Daten füllen mußt, also in etwa diese Zeile muß da als einziges drin stehen: 041=0&049=c_08_0 Nur jetzt kommt die große einschränkung: Die Seite besteht ja aus mehreren Formularen, Du hast ja nur Teile gepostet, da waren es schon 2 verschiedene. Also mußt Du schon recht genau prügen, was Du da überhaupt alles von brauchst - ich hab in meinem Beispiel nur das erste Formular "liste" mit seinen zwei hidden Feldern berücksichtigt. (das durch das JS ja auch abgeschickt wird) Und ich habe Bedenken, dass die Seite - vor allem die Formularfelder immer gleich sind. Von den Namen her wirken die wie Dynamisch generiert. In dem Falle müßtest Du erst die Formularseite dumpen und auswerten. Desweiteren wird die Anlage ja wohl ne Authentifizierung brauchen, wenn die im htaccess Style ist, mußt Du Benutzernamen/Passwort mit übermitteln. Ich glaube das ging bei w3m nur über "-header" (bei wget gibt es dafür nen eigenen Parameter, aber mit wget bekommst du keinen POST hin). Sollte es ein Login Formular sein, mußt Du das erst mit w3m ausfüllen und mit cookies arbeiten. Gruß Torben
Hallo, Am Tue, 21 Feb 2006, Torben Schultz schrieb: [..]
Desweiteren wird die Anlage ja wohl ne Authentifizierung brauchen, wenn die im htaccess Style ist, mußt Du Benutzernamen/Passwort mit übermitteln. Ich glaube das ging bei w3m nur über "-header" (bei wget gibt es dafür nen eigenen Parameter, aber mit wget bekommst du keinen POST hin). Sollte es ein Login Formular sein, mußt Du das erst mit w3m ausfüllen und mit cookies arbeiten.
Nochmal: 'POST' aus perl-libwww-perl ist das passende, bzw. die Vorlage, falls man noch mehr Kontrolle braucht. POST bietet schon fertig ausprogrammiert Optionen fuer fast alles was man braucht, inkl. username/passwort und fuer's debuggen. Also mal 'man POST' oder 'perldoc POST' anschauen! Das 'POST'-Script besteht uebrigens v.a. aus Doku und der Behandlung der Optionen! Die eigentliche Funktion ist im perl-Modul LWP (auch aus dem libwww Paket), mit dessen Hilfe man recht einfach HTTP mit beliebigen Servern machen kann, inkl. GET und POST und und und... Falls also POST nicht reicht... -dnh -- Best Viewed mit 743x398.5 mit 37 Farben auf Haitisch-17" Monitor, Konrastregler auf 92°, Helligkeit auf 17°, Mittwoch morgens um 7.36 Uhr von Januar bis März bei bewölktem Wetter in einem nach Nordosten ausgerichteten Gebäude. (Ulrich Eckhardt)
participants (3)
-
David Haller
-
Harry Rüter
-
Torben Schultz