Maison  >  Article  >  développement back-end  >  Comment résoudre le problème de l'index non défini en php

Comment résoudre le problème de l'index non défini en php

不言
不言original
2018-06-19 16:06:003863parcourir

Bien que cette invite puisse être masquée en définissant le mode d'affichage des erreurs, cela présente également des dangers cachés, c'est-à-dire que ces invites seront enregistrées dans le journal du serveur, ce qui rendra le fichier journal extrêmement volumineux

Habituellement use $_post[''] ,$_get[''] apparaîtra lors de l'obtention des paramètres dans le formulaire Avis : Index non défini : ----;

Nous recevons souvent des formulaires POST. Le rapport de données affiche une erreur d'index non défini, comme suit : $act=$_POST['action'];
L'utilisation du code ci-dessus demande toujours
Avis : index non défini : act dans D:testpost.php à la ligne 20
De plus, parfois
Avis : Variable non définie : Soumettre... et d'autres invites similaires apparaissent
Les invites ci-dessus sont des invites PHP plutôt que des erreurs que PHP lui-même n'affiche pas. doit déclarer les variables à l'avance et peut être utilisé directement, mais il y aura une invite pour les variables non déclarées. Généralement, en tant que site Web formel, les invites seront désactivées, et même les messages d'erreur seront désactivés.
Solution :
Méthode 1 : Modification de la configuration du serveur
Modifier le mode d'affichage des erreurs sous la configuration des erreurs dans php.ini : Remplacer error_reporting = E_ALL par
error_reporting = E_ALL & ~ E_NOTICE
Redémarrez le serveur APCHE après modification pour prendre effet.
Méthode 2 : initialiser les variables.
Méthode 3 : Faire un jugement isset($_post['']), vide($_post['']) if --else
Méthode 4 : Ajouter @ avant que le code de notification n'apparaisse, @ représente cette ligne Do ne s'affiche pas en cas d'erreur ou d'avertissement, @$username=$_post['username'];
Ajoutez un @ devant la variable, par exemple if (@$_GET['action']=='save ') { ..
Méthode 5 : La dernière méthode est très pratique. C'est une fonction écrite par d'autres, et la valeur est transférée via cette fonction.
Définissez une fonction :

function _get($str){ 
$val = !empty($_GET[$str]) ? $_GET[$str] : null; 
return $val; 
}

Ensuite, lorsque vous l'utilisez, utilisez simplement _get('str') au lieu de $_GET['str']~
[PHP-Core- Error]
error_reporting = E_ALL & ~E_NOTICE
; Le niveau de rapport d'erreur est une superposition de champs de bits. Il est recommandé d'utiliser E_ALL | E_STRICT
; 1 E_ERROR Erreur d'exécution fatale
2 E_WARNING Avertissement d'exécution ( Non -erreur fatale)
 ; 4 E_PARSE Erreur d'analyse au moment de la compilation
 ; 8 E_NOTICE Rappel d'exécution (souvent un bug, peut également être intentionnel)
 ; 16 E_CORE_ERROR Erreur fatale lors du processus d'initialisation de démarrage de PHP
 ; 32 E_CORE_WARNING Avertissement lors du processus d'initialisation du démarrage de PHP (erreur non fatale)
; 64 E_COMPILE_ERROR Erreur fatale au moment de la compilation
; 128 E_COMPILE_WARNING Avertissement au moment de la compilation (erreur non fatale)
256 E_USER_ERROR Défini par l'utilisateur. erreur fatale
; 512 E_USER_WARNING Avertissement défini par l'utilisateur (erreur non fatale)
; 1024 E_USER_NOTICE Rappel défini par l'utilisateur (souvent un bug, peut-être intentionnel)
; pour la compatibilité ascendante)
; 4096 E_RECOVERABLE_ERROR Une erreur d'exécution presque fatale, si elle n'est pas détectée, elle sera traitée comme E_ERROR
; 6143 E_ALL Toutes les erreurs sauf E_STRICT (PHP6 Le nombre au milieu est 8191, qui inclut toutes )

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Utilisez strip_tags() en PHP pour supprimer les balises html tout en conservant des solutions vides

Utilisez PHP Comment obtenir la véritable adresse IP du client utilisateur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn