Der Martin: böse?!?

Beitrag lesen

Hallo,

Also er soll generell Formulare ausfüllen können post oder get.

und dann abschicken?
Okay, dann bleibt dir nichts anderes übrig, als das Formular selbst zu parsen. Wenn das Dokument mit dem Formular immer valides XHTML wäre, könnte man ja einen XML-Parser darauf loslassen, etwa simplexml. Aber da HTML so fehlertolerant ist und so viele Schlampereien zulässt (und manche Autoren sogar noch schlampiger sind als eigentlich erlaubt), wirst du selbst eine Funktion schreiben müssen, die HTML-Tags und deren Attribute isoliert.

Suche und isoliere dazu erst das form-Element und extrahiere seine Attribute action und method. Sollte action leer sein, ersetze es durch die URL des Dokuments, das du gerade untersuchst; sollte method fehlen, nimm 'GET' als Default.
Wandere dann durch das Formular und suche alle Elemente vom Typ input, select und textarea. Untersuche ihre Attribute, denn du musst bei jedem ein bisserl anders reagieren: Das name-Attribut brauchst du von allen, aber während <input type="text"> und <textarea> beliebigen Text erlauben (deswegen kannst du deren value-Attribut getrost ignorieren oder höchstens als Defaultwert nehmen), sollten für <select> nur Werte übermittelt werden, die auch als option zur Verfügung stehen. Radiobuttons und Checkboxen sind wieder etwas anders zu behandeln, hier ist deren value zu beachten; und wenn du mehrere <input type="submit"> findest, solltest du auch nur einen davon übermitteln (oder gar keinen).
Definiere nun für jedes gefundene Elemente den Wert, den du übertragen möchtest.

Baue schließlich den kompletten Query-String zusammen, indem du alle zuvor ermittelten name/value-Pärchen verkettest:
 name1=value1&name2=value2&name3=value3&usw.

Setze endlich einen weiteren Request ab. Für die GET-Methode nimmst du die action-URL, hängst ein Fragezeichen und den Query-String dran und überträgst das als Namen der angeforderten Ressource. Für POST trägst du _nur_ die action-URL als Request URL in den Header ein und versendest den Query-String als Request Body.

Ich habe das jetzt bewusst recht oberflächlich beschrieben, aber du siehst schon jetzt: Das ist immens viel Aufwand, vor allem wenn man in der Materie noch nicht sattelfest ist. Ich vermute, du hast dich mit dem Vorhaben etwas übernommen.

Ich mach kein Spam oder sonstwas!!!

Das will ich auch hoffen! ;-)

Habe zunächst meinem Beispiel Formular value="" hinzugefügt.

Wozu? Und bei welchen Elementen?

Ich bekomme so

while(!feof($fp))
{
$erg = fgets($fp);
//echo $erg;
}
$such = strpos($erg,'<form');

oder so

while(!feof($fp))
{
$erg[]=fgets($fp);
}
$such = strpos($erg,'<form');

kein Ergebnis ausgegeben, aber auch kein Fehler!

Das glaube ich nicht. In der ersten Variante müsste $such einen positiven Zahlenwert ergeben, nämlich die Position des <form>-Tags innerhalb des Strings. Im zweiten Fall solltest du eine Fehlermeldung kassieren, weil strpos kein Array als ersten Parameter haben will.

Es gibt doch sowas wo ich in den Quelltext was schreibe, für Variablenausgabe und im Seitenquelltext über den Browser werden mir dann die Inhalte ausgegeben?!

Hä?

So long,
 Martin

--
Wichtig ist, was hinten rauskommt.
  (Helmut Kohl, 16 Jahre deutsche Bundesbirne)