Seite 1 von 1

Mit PB, Formulardaten an Webserver senden (POST-Methode)

Verfasst: 25.09.2010 00:43
von Sunny
Kann sein, dass es dieses Thema hier im Forum schonmal gab, aber die SuFu zeigt mir keine Ergebnisse an, wenn der Suchbegriff weniger als 4 Zeichen hat und da ich nach "CGI" suchen wollte, hat mir das nich viel gebracht.

Jetzt muss ich erstmal überlegen, wie ich euch meine Frage am besten Stelle.
Ich hab >>hier mal ein kleines Formular<< gebastelt.
Es ist erstmal sehr simpel gehalten, damit die Erklärungen hoffentlich auch relativ einfach ausfallen, so dass ich sie auch verstehe. :lol:

Wenn ich dieses kleine Formular jetzt ganz normal ausfülle, dann werden die Daten mittels POST an die Seite http://post-form.de.ki/auswertung.php gesendet und ausgegeben.

Jetzt würde ich gerne wissen, wie es möglich ist, die nötigen Daten mittels PB direkt an den Server zu senden. (Also keine Alternativen, wie z.B.: die Formularfelder automatisch ausfüllen lassen und dann Absenden)

Dazu brauche ich ja dann sicherlich Netzwerk-Funktionen, wie SendNetworkString() usw...
und die Daten müssen ja dann wahrscheinlich an diese Seite geschickt werden:
http://post-form.de.ki/auswertung.php

Allerdings hab ich keine Ahnung, welche Daten wann, wie und warum gesendet werden müssen.
Wäre schön, wenn mir das mal jemand von euch anhand des oberen Formulars (am besten mit einem Beispiel) erklären könnte.

Re: Mit PB, Formulardaten an Webserver senden (POST-Methode)

Verfasst: 25.09.2010 08:01
von rolaf
Eigendlich so:

Code: Alles auswählen

Vorname$ = "didi"
Nachname$ = "doedel"

RunProgram("http://post-form.de.ki/auswertung.php?vorname=" + Vorname$ + "&nachname=" + Nachname$)
Geht natürlich so jetzt nicht, da meine Glaskugel mir nicht sagt welche Variablen-Namen du für vornamen und nachnamen in auswertung.php benutzt und statt $_POST mußt du $_GET nehmen. :mrgreen:

http://www.schattenbaum.net/php/variable2.php

Direkt an den Server? - Bin ich momentan überfragt. :mrgreen:
Sicher kommt gleich ts-soft vorbei, der weiss Alles. :mrgreen:

Re: Mit PB, Formulardaten an Webserver senden (POST-Methode)

Verfasst: 25.09.2010 08:28
von Bisonte
DrFalo hat geschrieben:Eigendlich so:

Code: Alles auswählen

Vorname$ = "didi"
Nachname$ = "doedel"

RunProgram("http://post-form.de.ki/auswertung.php?vorname=" + Vorname$ + "&nachname=" + Nachname$)
Geht natürlich so jetzt nicht, da meine Glaskugel mir nicht sagt welche Variablen-Namen du für vornamen und nachnamen in auswertung.php benutzt und statt $_POST mußt du $_GET nehmen. :mrgreen:

http://www.schattenbaum.net/php/variable2.php

Direkt an den Server? - Bin ich momentan überfragt. :mrgreen:
Ok... obwohl er POST meinte... geht das natürlich auch, aber mich würde auch mal der Unterschied interessieren, zwischen den beiden Varianten. Und natürlich wie das mit Post funktioniert.

Es gibt ja auch Seiten die man vielleicht füttern möchte, die man NICHT selbst ändern kann...

Re: Mit PB, Formulardaten an Webserver senden (POST-Methode)

Verfasst: 25.09.2010 10:00
von Sunny
statt $_POST mußt du $_GET nehmen
Das Beispiel-Formular ist zwar von mir, aber das hab ich mir auch nur schnell zurechtgebastelt, um ein passendes und simples Beispiel zu haben.

Wie Bisonte schon richtig erkannt hat:
Es gibt ja auch Seiten die man vielleicht füttern möchte, die man NICHT selbst ändern kann...
Und wenn man z.B. anstatt nur Vor- und Zuname einen ganzen Lebenslauf Versenden möchte hilft die GET-Methode auch nicht mehr weiter, weil man damit nur eine bestimmte Menge von Zeichen versenden kann.

P.S.: Ich hab mir schonmal einiges über CGI durchgelesen und auch ein paar Beispiele gefunden, aber die waren immer nur für Perl oder Python und ich hab nich die geringste Ahnung, wie ich das in PB umsetzen kann.

Re: Mit PB, Formulardaten an Webserver senden (POST-Methode)

Verfasst: 25.09.2010 13:37
von Sunny
OK...
Nach ner Weile googlen und rumprobieren ist bei mir jetzt folgender Code zustande gekommen.

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 80

Vorname$="Max"
Nachname$="Mustermann"

lenght=StringByteLength("vorname="+Vorname$+"&nachname="+Nachname$)+1

ConnectionID = OpenNetworkConnection("www20.subdomain.com", Port)
If ConnectionID
  SendNetworkString(ConnectionID, "POST /auswertung.php HTTP/1.1"+#CRLF$)
  SendNetworkString(ConnectionID, "Host: post-form.de.ki"+#CRLF$)
  SendNetworkString(ConnectionID, "Accept: */*"+#CRLF$)
  SendNetworkString(ConnectionID, "Content-type: application/x-www-form-urlencoded"+#CRLF$)
  SendNetworkString(ConnectionID, "Content-length: "+Str(lenght)+#CRLF$)
  SendNetworkString(ConnectionID, "Connection: close"+#CRLF$+#CRLF$)
  SendNetworkString(ConnectionID, "vorname="+Vorname$+"&nachname="+Nachname$)
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
  
End
Die gesendeten Werte werden in einer MySQL-Datenbank gespeichert und auf dieser Seite wieder ausgegeben: http://post-form.de.ki

Mich würde jetzt aber mal interessieren, was das "application/x-www-form-urlencoded" im Content-type zu bedeuten hat.

Re: Mit PB, Formulardaten an Webserver senden (POST-Methode)

Verfasst: 25.09.2010 20:37
von HeX0R
Sunny hat geschrieben: Mich würde jetzt aber mal interessieren, was das "application/x-www-form-urlencoded" im Content-type zu bedeuten hat.
http://tinyurl.com/a7u2yu

Re: Mit PB, Formulardaten an Webserver senden (POST-Methode)

Verfasst: 25.09.2010 23:19
von Sunny
Jo... :mrgreen:
Hab hier mal was gutes über MIME-Typen gefunden:
http://de.selfhtml.org/diverses/mimetypen.htm

Falles es noch andere Leute interessiert.