Heim >Backend-Entwicklung >PHP-Tutorial >So lösen Sie das Problem des undefinierten Indexes in PHP
Obwohl diese Eingabeaufforderung durch Festlegen des Fehleranzeigemodus ausgeblendet werden kann, birgt dies auch versteckte Gefahren, das heißt, diese Eingabeaufforderungen werden im Protokoll des Servers aufgezeichnet, was dazu führt, dass die Protokolldatei extrem groß wird
Normalerweise Verwenden Sie $_post[''], $_get[''] wird angezeigt, wenn Sie die Parameter im Formular abrufen Hinweis: Undefinierter Index: --------;
Wir erhalten häufig Formular-POSTs wie folgt: $act=$_POST['action'];
Bei Verwendung des obigen Codes wird immer angezeigt: Hinweis: Undefinierter Index: act in D:testpost.php in Zeile 20
Außerdem erscheinen manchmal
Hinweis: Undefinierte Variable: Senden... und andere derartige Eingabeaufforderungen
Die oben genannten sind PHP-Eingabeaufforderungen und keine Fehler, die PHP selbst verursacht Variablen müssen im Voraus deklariert werden und können direkt verwendet werden. Es wird jedoch eine Eingabeaufforderung für nicht deklarierte Variablen angezeigt. Als formelle Website werden im Allgemeinen Eingabeaufforderungen und sogar Fehlermeldungen deaktiviert.
Lösung:
Methode 1: Änderung der Serverkonfiguration Ändern Sie den Fehleranzeigemodus unter der Fehlerkonfiguration in php.ini: Ändern Sie error_reporting = E_ALL in
error_reporting = E_ALL & ~ E_NOTICE
Starten Sie den APCHE-Server nach der Änderung neu, damit sie wirksam wird.
Methode 2: Variablen initialisieren.
Methode 3: Treffen Sie ein Urteil isset($_post['']), empty($_post['']) if --else
Methode 4: Fügen Sie @ hinzu, bevor der Benachrichtigungscode erscheint, @ stellt diese Zeile dar Do wird nicht ausgegeben, wenn ein Fehler oder eine Warnung vorliegt, @$username=$_post['username'];
Fügen Sie ein @ vor der Variablen hinzu, z. B. if (@$_GET['action']=='save ') { ..
Methode 5: Die letzte Methode ist eine von anderen geschriebene Funktion, über die der Wert übertragen wird.
Definieren Sie eine Funktion:
function _get($str){ $val = !empty($_GET[$str]) ? $_GET[$str] : null; return $val; }Wenn Sie sie dann verwenden, verwenden Sie einfach _get('str') anstelle von $_GET['str'] ~
[PHP-Core-Error]
error_reporting = E_ALL & ~E_NOTICE
; Die Fehlerberichtsebene ist die Überlagerung von Bitfeldern. Es wird empfohlen, E_ALL | zu verwenden. 1 E_ERROR schwerwiegender Laufzeitfehler
; ) Sexueller Fehler)
; 4 E_PARSE Kompilierungszeitfehler
; 8 E_NOTICE Laufzeiterinnerung (häufig ein Fehler, möglicherweise beabsichtigt)
; 32 E_CORE_WARNING Warnung während der PHP-Startinitialisierung (nicht schwerwiegender Fehler)
; 64 E_COMPILE_ERROR Schwerwiegender Fehler während der Kompilierung
; 128 E_COMPILE_WARNING Warnung während der Kompilierung (nicht schwerwiegender Fehler)
; >; 512 E_USER_WARNING Benutzerdefinierte Warnung (nicht schwerwiegender Fehler)
; 1024 E_USER_NOTICE Benutzerdefinierte Erinnerung (häufig ein Fehler, kann auch beabsichtigt sein)
; 2048 E_STRICT-Kodierungsstandardisierungswarnung (empfohlene Änderung für die Weiterleitung). Kompatibilität)
; 4096 E_RECOVERABLE_ERROR Ein nahezu schwerwiegender Laufzeitfehler, wenn er nicht erkannt wird, wird er als E_ERROR behandelt
; 6143 E_ALL Alle Fehler außer E_STRICT (in PHP6 8191, also alle)
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Verwenden Sie PHP So erhalten Sie die echte IP des Benutzer-Clients
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des undefinierten Indexes in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!