Warning "Do not Access Superglobal $ POST Array Directly" on Netbeans 7.4 for PHP
Mam ten komunikat ostrzeżenie na Netbeans 7.4 Dla PHP podczas gdy używam $_POST, $_GET, $_SERVER ,....
Nie uzyskuj bezpośredniego dostępu do tablicy Superglobal $_POST
Co to znaczy? Co mogę zrobić, aby skorygować to Ostrzeżenie?
Edit: przykładowy kod zdarzenia nadal pokazuje to Ostrzeżenie.
4 answers
filter_input(INPUT_POST, 'var_name')
zamiast $_POST['var_name']
filter_input_array(INPUT_POST)
zamiast $_POST
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-09 10:40:24
Chociaż trochę późno, natknąłem się na to pytanie podczas poszukiwania rozwiązania tego samego problemu, więc mam nadzieję, że może to być pomocne...
Znalazłem się w tej samej ciemności, co Ty. Właśnie znalazłem ten artykuł, który wyjaśnia kilka nowych wskazówek wprowadzonych w NetBeans 7.4, w tym ten: {]}Https://blogs.oracle.com/netbeansphp/entry/improve_your_code_with_new
Powodem, dla którego został dodany, jest to, że superglobale zwykle są wypełnione danymi użytkownika, której nigdy nie powinno się ślepo ufać. Zamiast tego należy wykonać jakieś filtrowanie i to sugeruje podpowiedź. Filtruj wartość superglobalną w przypadku, gdy ma ona zatrutą zawartość.
Na przykład, gdzie miałem:
$_SERVER['SERVER_NAME']
Wstawiłem zamiast:
filter_input(INPUT_SERVER, 'SERVER_NAME', FILTER_SANITIZE_STRING)
Masz filter_input i filters doc tutaj:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-23 17:09:42
Zgadzam się z innymi odpowiedziami, że w większości przypadków (prawie zawsze) konieczne jest odkażenie swojego wkładu.
Ale rozważ taki kod (jest dla kontrolera REST):
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
case 'GET':
return $this->doGet($request, $object);
case 'POST':
return $this->doPost($request, $object);
case 'PUT':
return $this->doPut($request, $object);
case 'DELETE':
return $this->doDelete($request, $object);
default:
return $this->onBadRequest();
}
Nie byłoby zbyt użyteczne stosowanie tutaj dezynfekcji (chociaż też niczego nie złamie).
Więc stosuj się do zaleceń, ale nie ślepo - raczej zrozum po co są:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-06 11:04:17
Po prostu użyj
Filter_input (INPUT_METHOD_NAME, 'var_name') zamiast $_input_method_name['var_name'] filter_input_array (INPUT_METHOD_NAME) zamiast $_input_method_name
E. g
$host= filter_input(INPUT_SERVER, 'HTTP_HOST');
echo $host;
Zamiast
$host= $_SERVER['HTTP_HOST'];
echo $host;
I używać
var_dump(filter_input_array(INPUT_SERVER));
Zamiast
var_dump($_SERVER);
Uwaga: stosuje się do wszystkich innych Super globalnych zmiennych
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-01 15:42:09