POST-Vars mit externemn Programm an PHP Skript übergeben

Alles, was PHP betrifft, kann hier besprochen werden.

POST-Vars mit externemn Programm an PHP Skript übergeben

Postby Ticha » 27. March 2008 18:01

Hallo Leute

ich möchte mit einem C Porgramm auf ein PHP Skript zugreifen. Das PHP Skript benötigt aber einen einkommenden POST_VAR String, damit es etwas tut. Wie ich eine Website vom Apacher her anfrage weiss ich, das problem ist nur, ich weiss nicht wie ich die PostVars übergebe. Mit Get-Vars möchte ich es nicht machen, weil ich eventuell mehr Zeichen benötige als mit Get Vars zur Vefügung stellt.

ich spreche dfen Apach folgendermassen an:

Code: Select all
GET test/test.php


wie gesagt, dem würde ich jetzt gerne noch eien POST-VARS String hinzufügen. Aber ich weiss nicht wie... kann mir da einer helfen?

gruss Ticha
1101011010101110100010101010101101
0101011010101110101010101111100010
0011010101111000100101010101010111
1110100011010101001010101102011001

2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*
Ticha
 
Posts: 94
Joined: 18. January 2006 14:23

Postby Nobbie » 27. March 2008 18:15

Wenn Du es mit C unbedingt machen willst, mußt Du die C-Funktionen finden, mit denen man einen TCPIP-Socket öffnet und dann mußt Du gemäß der Spezifikation von HTTP einen ordnungsgemäßen POST-Request an den Server schicken, auf dem das PHP Script läuft.

Wie so etwas in PHP gemacht wird, könnte ich Dir anhand eines Beispiels zeigen, ich weiß aber nicht, welche Funktionen die C-Runtime-Library dafür zur Verfügung stellt.

Im Prinzip mußt Du nach dem öffnen des Sockets bestimmte Strings auf den Server senden und die Parameter im sog. "url-encoded" Format übertragen. Anschließend mußt Du bis EOF den Socket auslesen (das ist die Antwort des Servers resp. des PHP Scripts).

Im Wikipedia (und überhaupt via Google) findest Du viele Erklärungen zum Protokoll HTTP:

http://de.wikipedia.org/wiki/Hypertext_ ... r_Protocol

P.S.:
>GET test/test.php

Da MUSS schon einmal POST stattdessen stehen:

POST test/test.php

usw.
Nobbie
 
Posts: 8759
Joined: 09. March 2008 13:04

Postby Wiedmann » 27. March 2008 18:17

Und was hat dein C Problem jetzt mit PHP zu tun?

Code: Select all
GET test/test.php

wie gesagt, dem würde ich jetzt gerne noch eien POST-VARS String hinzufügen.

Dazu müsste man den Apachen schonmal grundlegend über:
Code: Select all
POST test/test.php

ansprechen...

Aber um OnTopic zu bleiben... hier kannst du nachlesen, wie man das mit PHP macht:
25.2. Wie kann ich einen HTTP POST-Request absenden?
http://www.php-faq.de/q/q-code-post.html
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Ticha » 27. March 2008 18:24

ok.... also schon POST vorn dran setzen.

Ok wenn ich nun in meinem PHP Skript das ich ansprechen möchte, eine variable $string habe, die einen mit POST geschickten String erhalten soll, weiss ich immer noch nicht wie ich dem Apachen mitteilen kann welcehn Wert die Vriable String hat oder wo schreibe ich die in dem String hin den ich dem Apachen schicken?

"POST /test/test.php" aber wohin nun der Post string?
1101011010101110100010101010101101
0101011010101110101010101111100010
0011010101111000100101010101010111
1110100011010101001010101102011001

2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*
Ticha
 
Posts: 94
Joined: 18. January 2006 14:23

Postby Wiedmann » 27. March 2008 18:28

Siehe der Link oben. Ob du den Request mit PHP, C, Java, Bash, what ever zusammenbaust, macht keinen Unterschied.

(Und als PHP-Programmierer solltest du ja das bischen Code soweit verstehen können.)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Ticha » 27. March 2008 19:31

also ich habe mir jetzt den Code und das bei Wiki durchgelesen... doch anscheinend bin ich irgendwie zu doof, da nen String zu erstellen, den der Indianer auch vertseht.

folgendes hab ich mal zusammengebastelt:

Code: Select all
POST /ct/schnittstelle.php \r\n
HOST 127.0.0.1\r\n
Content-type:application/x-www-form-urlencoded\r\n
Content-length: 29 \r\n
Connection: Close\r\n\\r\n

daraufhin frägt er mich welchen Post string ich anhängen möchte

"string=whois::Robert::DeRien::"

danach passiert aber nix mehr

also ich teste das ganze vie tellnet vclient

wo muss ich da was ändern? wo hab ich meinen Fehler?
1101011010101110100010101010101101
0101011010101110101010101111100010
0011010101111000100101010101010111
1110100011010101001010101102011001

2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*
Ticha
 
Posts: 94
Joined: 18. January 2006 14:23

Postby DJ DHG » 27. March 2008 20:41

Moin Moin!

Wie wäre es, um das alles ein wenig zu vereinfachen, mit libcurl?

http://curl.haxx.se/libcurl/c/
http://curl.haxx.se/lxr/source/docs/examples/postit2.c

mfg DJ DHG
User avatar
DJ DHG
AF Moderator
 
Posts: 2455
Joined: 27. December 2002 13:50
Location: Kiel

Postby Ticha » 27. March 2008 20:48

cool Danke :) ich glaub wenn ich es überhaupt nicht hinbekomme werd ich es denke mal benutzen :D aber noch ni ich selbst am probieren :D irgendwie muss das doch gehen *grübel*
1101011010101110100010101010101101
0101011010101110101010101111100010
0011010101111000100101010101010111
1110100011010101001010101102011001

2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*
Ticha
 
Posts: 94
Joined: 18. January 2006 14:23


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests