J'ai ce message d'avertissement sur Netbeans 7.4 pour PHP lorsque j'utilise $ _POST , $ _GET , $ _SERVER , ....
N'accédez pas directement au tableau Superglobal $ _POST
Qu'est-ce que ça veut dire? Que puis-je faire pour corriger cet avertissement?
Edit: l' exemple de code Event affiche toujours cet avertissement.
php
netbeans
superglobals
netbeans-7.4
Kannika
la source
la source
Réponses:
filter_input(INPUT_POST, 'var_name')
au lieu de$_POST['var_name']
filter_input_array(INPUT_POST)
au lieu de$_POST
la source
$name = filter_input(INPUT_POST, $_POST["name"]);
.filter_input(INPUT_POST, 'var_name', FILTER_SANITIZE_NUMBER_INT)
Bien qu'un peu tard, je suis tombé sur cette question en cherchant la solution pour le même problème, alors j'espère que cela pourra vous aider ...
Je me suis retrouvé dans la même obscurité que toi. Je viens de trouver cet article, qui explique quelques nouveaux conseils introduits dans NetBeans 7.4, dont celui-ci:
https://blogs.oracle.com/netbeansphp/entry/improve_your_code_with_new
La raison pour laquelle il a été ajouté est que les superglobales sont généralement remplies d'entrées utilisateur, auxquelles il ne faut jamais faire confiance aveuglément. Au lieu de cela, une sorte de filtrage devrait être effectuée, et c'est ce que suggère l'indice. Filtrez la valeur superglobale au cas où elle aurait un contenu empoisonné.
Par exemple, où j'avais:
J'ai mis à la place:
Vous avez le document filter_input et filters ici:
http://www.php.net/manual/en/function.filter-input.php
http://www.php.net/manual/en/filter.filters.php
la source
Je suis d'accord avec les autres répondants que dans la plupart des cas (presque toujours), il est nécessaire de nettoyer votre entrée.
Mais considérez un tel code (c'est pour un contrôleur REST):
Il ne serait pas très utile d'appliquer un assainissement ici (même si cela ne casserait rien non plus).
Alors, suivez les recommandations, mais pas aveuglément - comprenez plutôt pourquoi elles le sont :)
la source
Juste utiliser
filter_input (INPUT_METHOD_NAME, 'var_name') au lieu de $ _INPUT_METHOD_NAME ['var_name'] filter_input_array (INPUT_METHOD_NAME) au lieu de $ _INPUT_METHOD_NAME
par exemple
au lieu de
Et utilise
au lieu de
NB: Appliquer à toutes les autres variables Super Global
la source
Voici une partie d'une ligne de mon code qui a fait apparaître l'avertissement dans NetBeans:
Après de nombreuses recherches et vu comment il existe un bazillion de façons de filtrer ce tableau, j'en ai trouvé une qui était simple. Et mon code fonctionne et NetBeans est content:
la source