2012-03-04 13 views
14

kiedy zrobić prosty echo $ HTTP_RAW_POST_DATA pojawia się błąd:niezdefiniowana zmienna: HTTP_RAW_POST_DATA

Undefined variable: HTTP_RAW_POST_DATA 

Czytałem, że w php.ini muszę odznaczyć

always_populate_raw_post_data = On 

ale nadal otrzymuję błąd i ponownie uruchomiłem Apache. Im przy użyciu PHP 5.3.6

+0

Czy używasz dowolnej HTTP_RAW_POST_DATA dla dowolnej usługi internetowej? – Milap

+0

w tym przykładzie, nie, ale początkowo podążałem za tą stroną http://phpmaster.com/web-services-with-php-and-soap-1/ i otrzymałem błąd, więc utworzyłem jedną stronę, aby zbadać błąd. –

Odpowiedz

24

Jeżeli chcesz mieć dostęp do surowego ciała POST naprawdę należy faworyzować użycie strumienia php://input nad $HTTP_RAW_POST_DATA jak na relevant manual entry:

php://input is a read-only stream that allows you to read raw data from the request body. In the case of POST requests, it is preferable to use php://input instead of $HTTP_RAW_POST_DATA as it does not depend on special php.ini directives. Moreover, for those cases where $HTTP_RAW_POST_DATA is not populated by default, it is a potentially less memory intensive alternative to activating always_populate_raw_post_data. php://input is not available with enctype="multipart/form-data".

Tak więc, aby uzyskać dostęp do ciała POST stosując php://input:

$post = file_get_contents('php://input'); 
+0

dziękuję, widziałem to, gdy czytałem na undefined również, ale nie myślałem, aby z niego korzystać. ale myliłem się, dzięki! –

19

Jeśli masz

Notice: Undefined variable: HTTP_RAW_POST_DATA

Proszę otworzyć plik Server dodać znaleźć

$server->service($HTTP_RAW_POST_DATA); 

i wymienić po 2 linie.

if (!isset($HTTP_RAW_POST_DATA)) $HTTP_RAW_POST_DATA =file_get_contents('php://input'); 
$server->service($HTTP_RAW_POST_DATA); 

Mam nadzieję, że to pomogłoby.

+0

dziękuję człowiekowi ton ... – San

+0

Twoje powitanie. Ciesz się .. @San – Milap

+0

Milap masz jakiś pomysł, jak uzyskać odpowiedź ze skryptu php, ponieważ korzystałem z usługi mydła i działa dobrze, przeszukałem wiele artykułów i sugerują mi zaimplementować ajax, php jest po stronie serwera i chciałem aby uzyskać od niego odpowiedź, dzięki czemu mogę go używać w mojej formie html ... – San

Powiązane problemy