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

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

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

Beitrag 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.
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

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

Beitrag 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:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

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

Beitrag 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...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

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

Beitrag 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.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

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

Beitrag 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.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

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

Beitrag 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
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

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

Beitrag 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.
Antworten