Anfrage an ein Php-skript mit der post methode?
-
also ich will mit meinem c++ programm eine anfrage an ein PHP Skript im internet stellen, wo die Variablen mittels der post-variante an das skript übergeben wird. Das ganze sollte möglichst mit sockets funktionieren. Mit get ist das ja kein problem, da ich ja nur die zeile, die ich in den explorer eingeben würde an den server sende, aber bei post weiß ich nicht weiter.
Danke für die Hilfe.
-
Ist eigentlich gleich wie GET nur musst Du noch etwas mehr mitsenden... siehe http://www.jmarshall.com/easy/http/#postmethod
-
also irgendwie werde ich aus dem línk nicht schlau...wenn ich mit get sende sieht das ungefähr so aus (auszug nachdem ich schon mit dem server verbunden bin) :
sprintf( get, "GET /seite/index.php?var1=%s&var2=%s HTTP/1.0\n\n", var1, var2);
send( sock, get, strlen(get), 0);do {
count = recv( sock, buffer, sizeof(buffer), 0);
write( 1, buffer, count);
}
while (count > 0);könntets du mir vllt. ein beispiel geben inwieweit sich die anfrage ändert, wenn ich var1 und var2 mittels post übergebe?
-
Was ist dir an dem Beispiel auf der Seite denn nicht verständlich??
-
Maikel schrieb:
sprintf( get, "GET /seite/index.php?var1=%s&var2=%s HTTP/1.0\n\n", var1, var2);
Damit wirst Du aber vermutlich nur 1% aller Web-Server ansprechen können (mit dem unteren Beispiel übrigens auch)...
Und für POST nehmen wir einfach das Beispiel aus dem Link und machen Cut-n-Past und schon sind wir fertig:
"POST /path/script.cgi HTTP/1.0\n" "From: frog@jmarshall.com\n" "User-Agent: HTTPTool/1.0\n" "Content-Type: application/x-www-form-urlencoded\n" "Content-Length: 32\n" "\n" "home=Cosby&favorite+flavor=flies\n" "\n"Diese string musst Du einfach dem Server senden...
-
Damit wirst Du aber vermutlich nur 1% aller Web-Server ansprechen können
Was macht diese Aussage für einen Sinn ohne Begründung?
Und nach den Post-Daten kommt glaub ich kein leere Zeile mehr.
-
Bitte schreib mal den Grund, Jochen!
-
Die meisten Server hosten heute mehr als einen Webspace (Domain). Beste Beispiels sind die "Massenhoster" 1und1 bzw. Strato (aber auch sonst fast alle Hoster machen das so).
Und da eine HTTP/1.0 Anfrage nur nach dem "Dokument" fragt weis der Webserver nicht von welcher Domain (Webspace) er das holen soll...
Deshalb muss heute eigentlich immer das HTTP/1.1 Protokoll verwendet werden, was dann wie folgt aussieht:"GET / HTTP/1.1\n" "Host: www.domain.de\n" "\n"
-
Ja gut mit den "Massenhoster" trifft ja bei mir nicht zu...ich hab das vorher so vereinfacht gesendet und das hat auch prima geklappt...aber auf jedenfall danke für die antworten hat mir sehr weitergeholfen...