Website Formular über URL ausfüllen

2 Antworten

Grundsätzlich solltest du aus Sicherheits- und Komfortabilitätsgründen server-seitiges Scripting bzw. Programmierung (PHP, ASP.NET, etc.) nutzen. Hier kannst du erheblich mehr Informationen unterbringen und verarbeiten und zugleich eine deutlich konsistentere Umgebung anbieten.

Neben der Methode, die pgoetz vorschlug, kannst du aber auch JavaScript nutzen. (Damit bist du nicht an die GET-Unterstützung des Servers gebunden, brauchst andererseits aber JavaScript-Unterstützung.)

Dieses Script

dürfte dir dabei eine große Hilfe sein. Es erfüllt genau, was du anforderst:

  • Unmittelbar nach dem Laden einer Seite untersucht es den URL nach Parametern im Format "Feld=Wert".
  • Findet es sowas, versucht es, das Element mit der Id "Feld" auf den Wert "Wert" zu setzen.

Somit kannst du nicht nur klassische Formulare, sondern auch Entscheidungswege, Ansichten und vieles andere "voreinstellen".

Das automatisierte Betätigen von Buttons ist heikel und kann große Probleme verursachen. CSRF-Exploits sind da noch die harmlose Variante... Dennoch: Es geht, wenn du unbedingt willst:

document.forms[document.forms.length-1].submit()

Dieses kurze Script simuliert beispielsweise das (automatische) Drücken auf den "Submit"-Button des ersten Formulars auf der Website (genauer gesagt: es schickt das Formular einfach los), (was beim Benutzer mindestens zu Stirnrunzeln führen wird, wenn er nicht versteht, warum er gerade ein Formular, dessen Inhalte er möglicherweise nicht mal gesehen hat, abgeschickt hat ohne es abgeschickt zu haben).

Und dieses Script (das jQuery benötigt)

$('#MeinSchalter').click()

drückt beispielsweise automatisch auf den Button mit der Id "MeinSchalter". Innerhalb des Handlers kannst du dann alles weitere realisieren: Neue Seite laden, Inhalte anzeigen oder ausblenden oder das Formular an den Server schicken ... oder sonstwas machen.

Das geht nur, wenn das Formular nicht nur per POST (meistens für Formulare verwendet), sondern auch per GET vom Server verarbeitet wird. Dann kannst Du die Parameter mit den entsprechenden Namen an die URL hängen. Beispiel: http://www.example.com/form.html?param1=value1&param2=value2

Damit würdest Du die Parameter mit den Namen "param1" und "param2" an den Server schicken. Die Namen kannst Du aus dem HTML Quellcode des Formulars ermitteln.


cyman87 
Beitragsersteller
 30.09.2012, 18:48

Ok, Danke. Wie kann ich z.B. auf dieser Seite ein Häckchen setzen und den Button Senden betätigen?

http://ulrichradig.dyndns.org/ (USER: admin PASSWORT: uli1)

0
pgoetz  30.09.2012, 20:53
@cyman87

Also als erstes solltest Du nicht Dein Passwort auf gutefrage.net veröffentlichen, denn hier ist öffentlich. :) Du kannst die folgende URL verwenden, falls der Server GET-Anfragen bearbeitet. Es sieht für mich so aus, weil ich keinen Fehler erhalte, aber ich weiß nicht, welchen Effekt die einzelnen Checkboxes haben. http://ulrichradig.dyndns.org/index.htm?OUT=B&OUT=C&SUB=Senden Bei diesem Beispiel sind jetzt B und C gesetzt, falls Du A noch setzen willst, einfach &OUT=A anhängen. Falls Du die anderen nicht setzen willst, diese rausnehmen. SUB ist der Senden-Button.

0
cyman87 
Beitragsersteller
 30.09.2012, 21:55
@pgoetz

Vielen Dank für deine Antwort. Die Website ist öffentlich und das Passwort auch. Aber das ganze funktioniert nicht. Bei mir kommt auch kein Fehler zurück. Muss vielleicht dieses "submit" auch in die URL eingebaut werden?

0
pgoetz  01.10.2012, 06:59
@cyman87

Das eigentlich Submit ist der HTTP Request. Wenn der Server nichts macht, dann ist der Programmierer so clever gewesen, diese Art des Formularabsendens zu verhindern, indem er bei einem GET Request einfach nichts macht. Über eine einfache URL mit Parametern kannst Du dann nichts machen.

0
cyman87 
Beitragsersteller
 01.10.2012, 09:18
@pgoetz

Es muss doch eine Möglichkeit geben die Daten die an den Server gesendet werden wenn Häckchen gesetzt und Button betätigt auszulesen bzw. mitzuschreiben?

0
pgoetz  01.10.2012, 11:53
@cyman87

Natürlich geht das. Sende den Request per POST, wie auch der Browser es macht. Aber Deiner Frage nach zu urteilen, solltest Du Dich erst mal mit den Grundzügen des Protokolls HTTP auseinandersetzen. Nur über eine Adresse im Browser geht es nicht, wenn der Server nur POST verarbeitet.

0