>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Não Acessar Array Superglobal $_POST Diretamente


Curso PHP com MySQL.
Aula 10.

Exatamente nestas linhas aparece um triangulo notificando o seguinte erro: " Não Acessar Array Superglobal $_POST Diretamente"
'



if(isset($_POST["txtTitulo"])){
$titulo = $_POST["txtTitulo"];
$fonte = $_POST["txtFonte"];
$titulo = $_POST["txtData"];
$titulo = $_POST["cbAutores"];
$titulo = $_POST["txtConteudo"];






1 Resposta


Robsom beleza?

Essa é uma mensagem de segurança para o PHP você deve estar vendo no NetBeans correto?
Ou seja ele está te orientando com base no PHP 5 a colocar a "$_POST" em uma variável e colocar um filtro para evitar SQL e/ou PHP INJECTION vou te mostrar abaixo como se faz! Mas para melhor aprendizado tem o curso de Segurança PHP aqui na RL System após concluir este corre pra ele e depois faz o PHP OO! ou segue a formação PHP indicada!


$txtTitulo = $_POST;
//Assim você obtém os valores via variável $txtTitulo sem filtro!
if(isset($txtTitulo["txtTitulo"])){
$titulo =$txtTitulo["txtTitulo"];
$fonte = $txtTitulo["txtFonte"];
$titulo =$txtTitulo["txtData"];
$titulo = $txtTitulo["cbAutores"];
$titulo = $txtTitulo["txtConteudo"];
}
?>

Acima ele vai transformar a "$txtTitulo" em um array associativo.
Mesmo que resolva essa mensagem, é aconselha você obter o seu "POST" com filtros de segurança, eu gosto de usar assim:
PHP 5

$txtTitulo = filter_input_array(INPUT_POST, FILTER_DEFAULT);

//Assim obtém os dados passando pelo filtro contra INJECTION

if(isset($txtTitulo["txtTitulo"])){
$titulo =$txtTitulo["txtTitulo"];
$fonte = $txtTitulo["txtFonte"];
$titulo =$txtTitulo["txtData"];
$titulo = $txtTitulo["cbAutores"];
$titulo = $txtTitulo["txtConteudo"];
}
?>


Espero ter ajudado!