1
resposta

Como fazer formulario só receber os dados depois do submit?

Sempre que vou criar formulários utilizado PHP, HTML e banco de dados MySql, quando carrego a pagina, o programa fica me danto o warning:

Warning : Chave de array indefinida "livro" em C:\Users\erica\Downloads\PHP\atividades\ex7.php na linha 42

No entanto, isso acontece antes de eu inserir qualquer dado e apertar o submit. Então vai dar como dado indefinido, porque eu de fato não inserir nenhum dado.

Eu geralmente resolvo utilizando:

error_reporting(0);

Eu não quero ser inicante para sempre. Preciso resolver isso de forma mais profissional. Poderiam me ajudar com isso?

Desde já, agradeço.

1 resposta

Olá Matheus.

Essa mensagem aparece porque o array que você está buscando a key 'livro' ainda não foi definido, nesse caso se você está buscando os valores de um formulário submetido deve estar tendando acessar pela variável $_POST['livro']

Para resolver você pode:

//definir uma variável e adicionar no value do input
//use a função isset para verificar se a variável com a key existe
//se existe recupera o valor, se não existe define como vazia a variável $livro 
$livro = (isset($_POST['livro'])) ? $_POST['livro'] : ''; 
//no formulário HTML
<input type='text' value='<?=$livro?>' />
//ou PHP
<?php echo "<input type='text' value='{$livro}' />"; ?>

Você pode aplicar para $GET e outros arrays, além de $POST.