PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: post data


mutzel
2003-08-04, 10:31:21
bis jetzt konnte mir in anderen foren keine antwort auf meine frage gegeben werden also versuch ichs mal hier...

ich brauch eine php funktion die mir einfach die gesamten mit POST an das script uebergebenen daten liefert.
also nicht einen array mit alle variablen von post (wie z.b. $HTTP_POST_VARS) sondern nur die reinen rohdaten

wenn ich z.b. bei post "?muhsagtdiekuh" uebergebe dann will ich das mir das script auch genau das wieder ausspuckt


thx

Nase
2003-08-04, 12:27:32
Du meinst Du hast ein Formularfeld, da tippst Du den Text rein, und dieser Text soll dann an das Script übergeben werden ?

mutzel
2003-08-04, 13:31:51
nein eben nicht .. ich hab nur ein tool welches header + daten schickt aber in den daten ist nicht das uebliche "?text=muhsagtdiekuh" sondern es wird nur "?muhsagtdiekuh" gesendet deswegen gehn die ueblichen funktionen nicht

JTHawK
2003-08-04, 14:46:29
dann schreib das "tool" doch so um das es das sendet was du haben willst ...

mutzel
2003-08-04, 15:31:41
das hab ich auch schon versucht hab es aber nicht geschafft (liegt an der TNMHTTP komponente des CBuilders) also dachte ich mir das es einfacher waere das php script anzupassen

Sphinx
2003-08-04, 23:14:18
Also wenn ich dich Richtig verstanden habe...

http://www.forum-3dcenter.org/vbulletin/newreply.php?s=&action=newreply&threadid=86135

Das klappt bei dir nicht ?

oder willst du alles auslesen =? also den kompletten Header "URL"?
oder willst du spezielle Daten auslesen

wie HTTP_POST_VARS["action"];

EDIT : Ließ dir mal Artikel durch bezogen auf "HEADER" <- Google

mutzel
2003-08-05, 09:27:45
Original geschrieben von Sphinx
Also wenn ich dich Richtig verstanden habe...

http://www.forum-3dcenter.org/vbulletin/newreply.php?s=&action=newreply&threadid=86135

Das klappt bei dir nicht ?

oder willst du alles auslesen =? also den kompletten Header "URL"?
oder willst du spezielle Daten auslesen

wie HTTP_POST_VARS["action"];

EDIT : Ließ dir mal Artikel durch bezogen auf "HEADER" <- Google

ich moechte nicht den header (wie man das bei get macht) sonder den vom client geschickten contet auslesen

HTTP_POST_VARS geht dafuer nicht (siehe 1. post)

irgendwie stimmt was mit deinem link nicht

edit:
ich hab mich auch schon tod gegoogelt und hab dabei nur $HTTP_RAW_POST_DATA entdeckt
um diese variable zu aktivieren muss man allerdings "always_populate_raw_post_data" in der "php.ini" auf "on" setzten .. und das kann ich nich weil der server nicht mir gehoert

Captain America
2003-08-05, 09:56:17
Original geschrieben von mutzel
ich moechte nicht den header (wie man das bei get macht) sonder den vom client geschickten contet auslesen

HTTP_POST_VARS geht dafuer nicht (siehe 1. post)

irgendwie stimmt was mit deinem link nicht

edit:
ich hab mich auch schon tod gegoogelt und hab dabei nur $HTTP_RAW_POST_DATA entdeckt
um diese variable zu aktivieren muss man allerdings "always_populate_raw_post_data" in der "php.ini" auf "on" setzten .. und das kann ich nich weil der server nicht mir gehoert


AFAIK geht es nicht anders. Du kannst aber folgendes Versuchen: alle Daten per GET übermitteln, und dann mit $_SERVER["QUERY_STRING"] denganzen String auslesen. Was genau willst du denn machen, dass du POST Rawdata brauchst?

UH OH OH mir fällt noch was ein: mit $_POST und ein paar Zeilen Code kannst du evtl. den ganzen POST-Body nachbasteln! ;D

mutzel
2003-08-05, 10:32:34
Original geschrieben von Captain America
AFAIK geht es nicht anders. Du kannst aber folgendes Versuchen: alle Daten per GET übermitteln, und dann mit $_SERVER["QUERY_STRING"] denganzen String auslesen. Was genau willst du denn machen, dass du POST Rawdata brauchst?

UH OH OH mir fällt noch was ein: mit $_POST und ein paar Zeilen Code kannst du evtl. den ganzen POST-Body nachbasteln! ;D

ich brauch POST weil ich mehr als 255 zeichen senden will .. also nix mit QUERY_STRING

$_POST hat exakt den selben inhalt wie $HTTP_RAW_POST_DATA und damit ist es auch unbrauchbar
das problem ist einfach das ich keine normale uebergabe von verschiedenen variablen mache sondern einfach nur ein batzen daten schicke den ich dann selber im script auseinandernehme

Matthias2x
2003-08-06, 08:03:06
Original geschrieben von mutzel
edit:
ich hab mich auch schon tod gegoogelt und hab dabei nur $HTTP_RAW_POST_DATA entdeckt
um diese variable zu aktivieren muss man allerdings "always_populate_raw_post_data" in der "php.ini" auf "on" setzten .. und das kann ich nich weil der server nicht mir gehoert

du kannst aber versuchen die option über die ini_set() Funktion einzuschalten. standardmäßig ist der wert auf 0, probier also mal folgendes in deinem Script:

ini_set('always_populate_raw_post_data','On');

der neue wert gilt dann für die Laufzeit des Scriptes und wird beim beenden wieder auf den alten wert zurückgesetzt. bei mir funktioniert das jedenfalls einwandfrei mit PHP 4.2.3 unter WinXP und auf meinem 1&1 Server mit derselben PHP Version und Suse 8.1

edit: möglicherweise funktioniert es nicht wenn PHP im Safemode läuft wie das z.b. bei Strato der Fall ist. also einfach ausprobieren. auslesen kannste den aktuellen wert so:

ini_get('always_populate_raw_post_data');

Harleckin
2003-08-06, 08:59:51
Ok, ich geh mal davon aus du hast ein Formular..

nein eben nicht .. ich hab nur ein tool welches header + daten schickt aber in den daten ist nicht das uebliche "?text=muhsagtdiekuh" sondern es wird nur "?muhsagtdiekuh" gesendet deswegen gehn die ueblichen funktionen nicht


print ("<input type=\"hidden\" name=\"text\" value=\"$foo\">
<input type=\"submit\" value=\"weiter\">");

Somit sollte im Header "?text=muhsagtdiekuh" möglich sein.

Die Werte im Header bekommt man dann mittels $_GET..

echo $_GET['text'];



Also noch viel Spaß

Nase
2003-08-06, 09:05:24
Wenn ich das Formular übermittle, dann steht mir $foo doch direkt in $text zur Verfügung ?

mutzel
2003-08-07, 10:13:53
Original geschrieben von Harleckin
Ok, ich geh mal davon aus du hast ein Formular..




print ("<input type=\"hidden\" name=\"text\" value=\"$foo\">
<input type=\"submit\" value=\"weiter\">");

Somit sollte im Header "?text=muhsagtdiekuh" möglich sein.

Die Werte im Header bekommt man dann mittels $_GET..

echo $_GET['text'];



Also noch viel Spaß

wie oft soll ich noch sagen das ich A kein formular hab B POST und nich GET benutze womit C klar waere das mich der header einen scheissdreck angeht und D das ich nur die puren POST daten und nicht einzelne variablen brauch


@Matthias2x
das mit dem ini_set klingt schon mal ganz gut .. werds glei ma austesten

mutzel
2003-08-07, 10:36:31
Original geschrieben von Matthias2x
du kannst aber versuchen die option über die ini_set() Funktion einzuschalten. standardmäßig ist der wert auf 0, probier also mal folgendes in deinem Script:

ini_set('always_populate_raw_post_data','On');

der neue wert gilt dann für die Laufzeit des Scriptes und wird beim beenden wieder auf den alten wert zurückgesetzt. bei mir funktioniert das jedenfalls einwandfrei mit PHP 4.2.3 unter WinXP und auf meinem 1&1 Server mit derselben PHP Version und Suse 8.1

edit: möglicherweise funktioniert es nicht wenn PHP im Safemode läuft wie das z.b. bei Strato der Fall ist. also einfach ausprobieren. auslesen kannste den aktuellen wert so:

ini_get('always_populate_raw_post_data');


habs jetzt getestet

bei
ini_get('always_populate_raw_post_data');
bekomm ich 0 raus und wenn ich davor
ini_set('always_populate_raw_post_data','On');
mache bleibts auf 0 also is der safemode an ... vielleicht stell die mir das ja um wenn ich dort mal anrufe .. ansonsten muss ich wohl das mein tool umschreiben :(