Muszę sprawdzić, czy istnieje/jest ustawiony php://input
. Czy to działa z php isset()
? Jaki jest właściwy sposób, aby to sprawdzić?Jak sprawdzić, czy ustawione jest wejście php: //?
Odpowiedz
można uzyskać zawartość php://input
użyciu file_get_contents
i sprawdzić wartość zwracaną, aby zobaczyć, czy to faktycznie ustawić:
$input = file_get_contents("php://input");
if ($input) {
// set
}
else {
// not set
}
spróbuj przetestować go z file_get_contents()
(do czytania) + empty()
lub boolean conversion (do testowania) :
<?php
$input = file_get_contents('php://input');
if ($input) {
// exists
} else {
// not exists
}
Od php.net:
Strumień otwarty z php: // wejściem można odczytać tylko raz; strumień nie obsługuje operacji wyszukiwania. Jednak w zależności od implementacji SAPI może być możliwe otwarcie innego strumienia wejściowego php: // i ponowne uruchomienie odczytu. Jest to możliwe tylko po zapisaniu danych treści żądania . Zazwyczaj ma to miejsce w przypadku żądań POST, ale nie innych metod żądań, takich jak PUT lub PROPFIND.
Czy w tym przypadku odczytuję dane base64 z pliku, file_get_contents zwraca tylko coś, jeśli odczytuje prawdziwy plik? (to znaczy, jeśli użytkownik wyśle fałszywą bazę 64, tylko tekst, ale wstępnie sformatowany, aby wyglądał jak baza 64, ale nie prawdziwy plik, co wynikałoby z $ input?) – sagits
@sagits yes. 'file_get_contents()', podczas korzystania z tego wrappera URL, odczytuje dowolną treść, jeśli jest tam. Bez względu na strukturę zawartości. – BlitZ
Dziękuję za @CORRUPT, trochę się zdezorientowałem z twojej odpowiedzi, masz na myśli to, że może odczytać fałszywą bazę 64, ale zwróci fałsz, czy też zwróci true? Czytałem w instrukcji funkcji, że zwraca wartość false, jeśli nie może odczytać zawartości. Czy możesz mi to wyjaśnić? Dziękuję za Twój czas. – sagits
Załóżmy otrzymujesz wejściowych użytkownika z POST wnioskować można sprawdzić, czy jest to zestaw tak
if(isset($_POST['var_name']))
{
//for additional checking like if it's not empty do this
if(!empty($_POST['var_name']))
{
//Do whatever you want here
}
}
'php: // input' to miejsce, w którym znajdują się dane" POST "lub" PUT ", a nie parametry" GET ". – Barmar
Edytował odpowiedź .. thanx za poinformowanie mnie, że – user2801966
Lepiej, chociaż będzie działać tylko wtedy, gdy dane są poprawnie sformatowane jako dane formularzy. Zwykle powodem użycia 'php: // input' jest to, że musisz uzyskać dostęp do nieprzetworzonych danych. – Barmar
zwraca true, jeśli zmienna istnieje i jej not null
$foo = 'bar';
var_dump(isset($foo)); -> true
$baz = null;
var_dump(isset($baz)); -> false
var_dump(isset($undefined)); -> false
- 1. PHP: jak sprawdzić, czy klient jest lokalny?
- 2. Jak sprawdzić, czy sesja PHP jest pusta?
- 3. PHP Jak sprawdzić, czy zmienna jest odniesieniem?
- 4. Jak sprawdzić .htaccess, czy PHP jest włączone?
- 5. MongoEngine - Zapytanie - Jak sprawdzić, czy pole ListField jest puste lub czy nie jest ustawione
- 6. PHP: Jak sprawdzić, czy data jest dzisiaj, wczoraj czy jutro
- 7. Jak sprawdzić wejście STDIN w skrypcie Ruby?
- 8. Jak sprawdzić, czy nazwa domeny jest rekordem CNAME w PHP
- 9. Jak sprawdzić, czy obiekt JSON jest pusty w PHP?
- 10. Jak sprawdzić, czy czas jest między dwa razy w PHP
- 11. Jak sprawdzić, czy wpis mysql jest pusty w PhP?
- 12. Jak sprawdzić, czy plik jest ASCII lub Binary w PHP
- 13. Jak sprawdzić, czy połączenie jest resetowane przez peer w php?
- 14. Jak sprawdzić, czy metoda jest statyczna w PHP?
- 15. Jak sprawdzić, czy zmienna jest prymitywna w PHP
- 16. Jak sprawdzić, czy użytkownik jest zalogowany w php?
- 17. Jak sprawdzić, czy słowo jest japoński lub angielski PHP
- 18. Jak sprawdzić, czy gniazdo jest otwarte w PHP?
- 19. Jak sprawdzić, czy zmienna środowiskowa jest ustawiona w PHP?
- 20. Jak sprawdzić, czy ciąg jest numeryczny?
- 21. Jak sprawdzić, czy rozwijanie jest wyłączone?
- 22. jak sprawdzić, czy istnieje stała w php
- 23. Jak sprawdzić, czy rozszerzenie PECL jest obecne?
- 24. Jak sprawdzić, czy sesja jest aktywna?
- 25. Jak sprawdzić, czy Suhosin jest zainstalowany?
- 26. Jak sprawdzić, czy obraz przedstawia błąd - PHP
- 27. Jak sprawdzić, czy jest konsola?
- 28. Wyczyść wcześniej ustawione nagłówki php
- 29. Jak sprawdzić, czy zmienna jest obiektem Moment.js?
- 30. Jak mogę sprawdzić, czy dany ciąg znaków jest poprawnym wprowadzeniem do preg_match PHP?
Look to Kot Schrödingera! Nie możesz tego wiedzieć, dopóki go nie otworzysz! :) – Prasanth
Jeśli jest to żądanie sieciowe, możesz sprawdzić $ _SERVER ['CONTENT_LENGTH'], poza tym nie ma innego sposobu. Funkcje takie jak fstat lub stream_get_meta_data nie działają w tym przypadku. :( – xpuu