Kiedy wykonuję proste echo $HTTP_RAW_POST_DATA, pojawia się błąd:
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. Używam php 5.3.6
2 odpowiedzi
Jeśli potrzebujesz dostępu do surowego ciała POST, powinieneś naprawdę preferować użycie strumienia php://input
zamiast $HTTP_RAW_POST_DATA
zgodnie z odpowiedni wpis ręczny:
PHP: // wejście jest strumieniem tylko do odczytu, który umożliwia odczytanie surowych danych z korpusu żądania. W przypadku żądań pocztowych korzystne jest użycie PHP: // wkład zamiast $ http_raw_post_data, ponieważ nie zależy od specjalnych dyrektyw php.ini. Co więcej, dla tych przypadków, w których $ http_raw_post_data nie jest domyślnie zamienne, jest to potencjalnie mniej intensywnej pamięci alternatywy dla aktywowania zawsze_popule_raw_post_data. PHP: // Wejście nie jest dostępne z Enctype = "Multipart / Form-Data".
Tak więc, aby uzyskać dostęp do treści POST za pomocą php://input
:
$post = file_get_contents('php://input');
Jeśli dostaniesz
Uwaga: niezdefiniowana zmienna: HTTP_RAW_POST_DATA
Otwórz plik serwera dodaj znajdź
$server->service($HTTP_RAW_POST_DATA);
I zastąp następującymi 2 liniami.
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 pomoże.
Podobne pytania
Powiązane pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.