PHP: Utilizando $_POST no atributo value

Olá galera! Entrando com mais um post simples, mas útil para iniciantes.

Toda vez que for atribuído um valor a um input, select, textarea, deve-se primeiro inicializar a variável.

No exemplo abaixo, a variável $campo vai receber o valor passado via $_POST quando ocorrer o submit.

Quando você acessa a página, $_POST ESTÁ VAZIO, ocorrendo um warning e ocorre uma certa lentidão.

$campo = $_POST['campo'];
<input type="text" name="campo" id="campo" value="<?php echo $campo; ?>" />

Veja algumas formas de evitar esse problema:

<?
// forma 1
$campo = isset($_POST['campo']) ? $_POST['campo'] : '';
 
// forma 2
<del datetime="2017-04-24T13:19:47+00:00">if("$_POST[campo]" >= '1'){
  $campo = "$_POST[campo]";
}else{
  $campo = '';
}</del>
 
// forma 3
if(!empty($_POST['campo'])){
  $campo = $_POST['campo'];
}else{
  $campo = '';
}
?>
<form method="post" name="form">
  <input type="text" name="campo" id="campo" value="<?php echo $campo; ?>" />
  <input type="submit" value="enviar" />
</form>

Você só descobrirá o erro se o PHP estiver configurado para exibir todos os errors e warnings.

Tem muitas outras formas, mas essas já ajudam muita gente.

Abraços e até a próxima.

3 comentários em “PHP: Utilizando $_POST no atributo value

  • 23 de janeiro de 2013 em 7:42
    Permalink

    A segunda forma não é recomendada. Ao se passar um texto sem aspas como posição de um array, o PHP vai procurar uma constante com esse nome.
    E as formas corretas de se verifica se uma variável está setada é com isset e empty, como nas 1º e 3º formas.

    Resposta
  • 7 de março de 2013 em 12:01
    Permalink

    Legal, já tinha percebido alguma nessa lentidão comentada, mas sinceramente nunca me preocupei em resolve-la.
    Dica interessante, valeu por compartilhar.

    Resposta

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *