Ich muss überprüfen, ob php://input
exists/isset. Funktioniert es mit PHP isset()
? Was ist der richtige Weg, um es zu überprüfen?Wie überprüft man, ob php: // Eingabe gesetzt ist?
Antwort
Sie können den Inhalt von php://input
mit file_get_contents
erhalten und den Rückgabewert überprüfen, um zu sehen, ob es tatsächlich eingestellt ist:
$input = file_get_contents("php://input");
if ($input) {
// set
}
else {
// not set
}
Versuchen Sie es mit file_get_contents()
zu testen (zum Lesen) + empty()
oder boolean conversion (zum Testen) :
<?php
$input = file_get_contents('php://input');
if ($input) {
// exists
} else {
// not exists
}
Von php.net:
Ein Strom, der mit php: // Eingang geöffnet wurde, kann nur einmal gelesen werden; Der Stream unterstützt keine Suchvorgänge. Abhängig von der Implementierung des SAPI kann es jedoch möglich sein, einen weiteren php: // - Eingabestrom zu öffnen und den Lesevorgang erneut zu starten. Dies ist nur möglich, wenn die Anfragetextdaten gespeichert wurden. In der Regel ist dies bei POST-Anfragen der Fall, jedoch nicht bei anderen Anforderungsmethoden wie PUT oder PROPFIND .
In diesem Fall lese ich Base64-Daten von einem Datei-Upload, File_get_contents nur etwas zurückgeben, wenn es eine echte Datei liest? (Ich meine, wenn der Benutzer eine gefälschte base64 sendet, nur Text, aber vorformatiert, um wie Base 64 auszusehen, aber nicht eine echte Datei, was würde aus $ Eingabe resultieren?) – sagits
@sagits ja. 'file_get_contents()' liest bei der Verwendung dieses URL-Wrappers jeden Inhalt, falls er dort ist. Unabhängig von der inhaltlichen Struktur. – BlitZ
Vielen Dank @CORRUPT, ich habe ein wenig verwirrt über Ihre Antwort, Sie meinen, dass es die falsche Basis 64 lesen kann, aber wird falsch zurückgeben, oder es würde wieder wahr? Ich habe im Funktionshandbuch gelesen, dass es falsch zurückgibt, wenn es den Inhalt nicht lesen kann. Kannst du mir das erklären? Vielen Dank für Ihre Zeit – sagits
Angenommen, Sie bekommen eine Benutzereingabe von einer POST-Anfrage Sie prüfen, ob es dies wie ein Satz ist
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' ist wo' POST' oder 'PUT' Daten sind, nicht' GET' Parameter. – Barmar
Bearbeitete die Antwort .. Danke für die Mitteilung, dass – user2801966
Besser, obwohl es nur funktioniert, wenn die Daten ordnungsgemäß als Formulardaten formatiert sind. Normalerweise ist der Grund für die Verwendung von 'php: // input', dass Sie auf die Rohdaten zugreifen müssen. – Barmar
es true zurück, wenn die Variable existiert und es ist nicht null
$foo = 'bar';
var_dump(isset($foo)); -> true
$baz = null;
var_dump(isset($baz)); -> false
var_dump(isset($undefined)); -> false
- 1. Wie überprüft man, ob WaitHandle gesetzt wurde?
- 2. Python: Wie überprüft man, ob ein optionaler Funktionsparameter gesetzt ist
- 3. Wie überprüft man, ob ein Schlüssel in chrome.storage gesetzt ist?
- 4. TCL: Wie überprüft man, ob die Umgebungsvariable bereits gesetzt ist
- 5. Wie überprüft man, ob EnableViewStateMac zur Laufzeit gesetzt ist?
- 6. JavaScript: Wie überprüft man, ob ein Event gesetzt ist?
- 7. Wie überprüft man, ob die Eingabe Buchstabe C ist?
- 8. Wie überprüft man, ob mindestens eine Eingabe abgeschlossen ist?
- 9. Wie erkennt man, ob $ _POST gesetzt ist?
- 10. Wie überprüft man, ob Suhosin installiert ist?
- 11. Wie überprüft man, ob eine Umgebungsvariable entweder nicht gesetzt oder auf die leere Zeichenfolge gesetzt ist?
- 12. Wie überprüft man, ob ein unittest.mock.Mock return_value gesetzt hat?
- 13. Wie überprüft man, ob ein Datum abgelaufen ist (PHP)
- 14. Wie überprüft man, ob das Eingabe-Textfeld nur Leerzeichen enthält?
- 15. Wie überprüft man, ob "Radiobutton" aktiviert ist?
- 16. Wie überprüft man, ob TextView leer ist?
- 17. Wie überprüft man, ob Javascript deaktiviert ist?
- 18. Wie überprüft man, ob ContentPlaceHolder leer ist?
- 19. Wie überprüft man, ob die Schnittstelle ist
- 20. Wie überprüft man, ob Flash installiert ist?
- 21. Wie überprüft man, ob mithril.js geladen ist?
- 22. Wie überprüft man, ob LogWriter eingestellt wurde?
- 23. Wie überprüft man, ob localhost
- 24. Wie überprüft man, ob ein Sampler in GLSL null ist?
- 25. Python, wie überprüft man, ob eine Ergebnismenge leer ist?
- 26. Wie überprüft man, ob ein String ausgeglichen ist?
- 27. Wie überprüft man, ob ein Zeitversatz in der Sommerzeit ist?
- 28. Wie überprüft man, ob eine Variable auf Chrom-Speicher gesetzt ist
- 29. Wie überprüft man, ob ein std :: string gesetzt ist oder nicht?
- 30. Wie überprüft man, ob das erforderliche Attribut auf ein Feld gesetzt ist
Schauen Sie es Schrödingers Katze! Du kannst es nicht wissen bis du es öffnest! :) – Prasanth
Wenn es Standard-Web-Anfrage ist, können Sie nach $ _SERVER ['CONTENT_LENGTH'] suchen, ansonsten gibt es keinen anderen Weg. Funktionen wie fstat oder stream_get_meta_data funktionieren in diesem Fall nicht. :( – xpuu