PHP - Socket Problem

kallinger
Goto Top

Socket öffen, mit Get abfragen, mit Post senden und wieder abfragen

Hi @ all!

Ich hab mal schon wieder ein doofes PHP Problem...

Und zwar möchte ich einen Socket zu einem Webserver öffnen, dann Daten mittels GET empfangen, und per POST wieder senden und dannach den Request wieder empfangen...
kunrz und knapp: Hier ist der BSP. Code:


Also das Script wird ordnungsgemäßs aufgerufen und läuft auch durch!
Aber...:
  • Es wird nicht $res zurückgegeben
  • Der Socket scheint ab dem GET geschlossen zu sein.. zumindest geht ab dann nix mehr
  • Habe per Whireshark das ganze schon überprüft, es werden die Daten per GET empfangen
  • Danach bekomme ich den Request, dann sende ich die Daten per POST
  • Dann sende ich die GET anfrage bekomme aber nix zurück! (eigentlich müsste ich das GET auch nicht mehr senden) sondern müsste gleich in dem $res nach dem POST stehen tuts aber nicht
  • Whireshark läss auch auf keinen Fehler schließen...


Hat jemand vll. nen Tipp !?
Danke schon mal im Voraus

__
Grüße Kallinger

PS: nen neuen Socket kann ich nicht aufmachen, da sonst die SessionID vom Webserver sich wechseln würde. Die ist aber hier nötig!

Content-Key: 141375

Url: https://administrator.de/contentid/141375

Ausgedruckt am: 29.06.2022 um 12:06 Uhr

Mitglied: dog
dog 24.04.2010 um 16:46:58 Uhr
Goto Top
Und zwar möchte ich einen Socket zu einem Webserver öffnen

Wofür cURL schonmal wesentlich besser ist, als selbst basteln - und es kann auch alles, was du brauchst.

Und mit feof() wirst du auch nicht weit kommen bei HTTP.
Es gibt für HTTP zwei Arten Daten zu senden: Als kompletter Block (dann ist der Content-Length-Header angegeben) oder mit Transfer-Encoding: chunked, dann erhältst du einzelne Blöcke mit Längenangabe (und ein "0" am Schluss).
Mitglied: Kallinger
Kallinger 24.04.2010 um 19:53:10 Uhr
Goto Top
Hi!

Das Problem liegt ja weder an der Content Length (wird ja eh berechnet) noch am Transfer Encoding...
Ich glaube eher dass das Problem an PHP (bei mir lokal) liegt..

vll. ein Programmierfehler, oder ein falscher Parameter in der php.ini !?
Ich komm einfach nicht drauf!


__
Grüße Kallinger
Mitglied: dog
dog 24.04.2010 um 21:54:19 Uhr
Goto Top
Mitglied: Kallinger
Kallinger 26.04.2010 um 15:05:56 Uhr
Goto Top
Hi!

Hab jetzt gerade mal curl ausprobiert ... Muss sagen, dass das Teil echt super ist!
Zum einen viel schneller und zum anderen auch stark vom Handling!

Leider funktioniert das ganze noch nicht ganz so, wie ich das möchte...


Hier ma mein Code:

Kann ich das so schreiben oder muss das ein Array sein!?
Laut WhireShark sieht das ganz gut aus !?

Hmmm... wenn Du nochmal ne Idee hättest, wärs supi!

Danke!
__
Grüße Kallinger
Mitglied: dog
dog 26.04.2010 um 15:39:37 Uhr
Goto Top

Und jetzt schau dir mal die Variablennamen genau an :) face-smile
Mitglied: Kallinger
Kallinger 26.04.2010 um 16:05:49 Uhr
Goto Top
Hey!


Js, sorry! hab ich ganz vergessen zu Posten... hab ich geänder!
funktioniert leider immer noch nicht

hab jetzt mal noch ne Frage zu
Wann und wie funktioniert das, wen ich auf die LOCATION zugreifen will !?
Muss ich die nochmal extra anfordern oder macht das PH automatisch ...

Weil komischerweise ist das so:
GET ftk. POST auch, aber dann bekomm ich ein HTTP 200 Status zurück uns sollte eig. nen 301 bekommen !? an was kann das liegen !?

__
Grüße Kallinger
Mitglied: dog
dog 26.04.2010 um 16:09:48 Uhr
Goto Top

bedeutet, dass curl einem Location:-Redirect automatisch folgt, so lange bis es ein Ergebnis bekommt (2xx/4xx/5xx-Header).
Mitglied: Kallinger
Kallinger 26.04.2010 um 16:34:51 Uhr
Goto Top
Hi!

Ah, OK!
Jetzt bekomme ich auch den HTTP 301 zurück...
und in dem Packet steht auch meine LOACTIOn drinne.. greift jetzt


automatisch auf den Link zu, oder ?!
Wenn ich dam beim $res2 durchsuche, kann ich mich auch darauf verlassen, dass ich auch den LOCATION link geöffnet habe...
Brauch ich dann für ne Suche in dem $res2 wieder, oder !?


DANKE
__
Grüße Kallinger