Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Variável não definida ?!

<!DOCTYPE HTML>  
<html>

   <head>
   </head>

   <body>  
      <?php
         $nome  = $idade = "";

         $nome  = $_POST["nome"];  
         $idade = $_POST["idade"];  
      ?>

      <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  
           Nome: <input type="text" name="nome" value="<?php echo $nome;?>">
           Idade: <input type="text" name="idade" value="<?php echo $idade;?>">
          <input type="submit" name="submit" value="Submit">  
      </form>

     <?php
        echo "<h2>Conteúdo:</h2>";
        echo $nome;
        echo "<br>";
        echo $idade;
     ?>
   </body>
</html>
( ! ) Notice: Undefined index: nome in C:\wamp\www\w3\c.php on line 11
Call Stack
#    Time    Memory    Function    Location
1    0.0102    133520    {main}( )    ..\c.php:0

( ! ) Notice: Undefined index: idade in C:\wamp\www\w3\c.php on line 12
Call Stack
#    Time    Memory    Function    Location
1    0.0102    133520    {main}( )    ..\c.php:()

Para o código acima, recebi a mensagem abaixo, agradeceria se me ajudassem.

===> Veja no código acima fornecido: Nome: <input type="text" name="nome" value="<?php echo $nome;?>"> Idade: <input type="text" name="idade" value="<?php echo

portanto não parece ser isto.

3 respostas

Olá!

Verifique se você tem um input com o atributo "name" = "idade" no form que realiza esse $_POST. Resumindo, você está acessando dados do post que não foram passados.

Abraços!

Olá, Antônio tudo bem?

Verifique se no <form> do seu html se encontra o atributo method="post", o seguinte erro está acontecendo por esse motivo

solução!

O que está acontecendo é que ao abrir a página você está tentando ler as variáveis postadas pelo formulário. Por isso ocorre o erro de "undefined index", o $_POST somente existe se o formulário for enviado.

Para evitar o erro, faça o seguinte:

<?php
$nome  = "";
$idade = "";

if (isset($_POST["nome"])){
    $nome  = $_POST["nome"];  
}
if (isset($_POST["idade"])){
    $idade = $_POST["idade"];  
}
?>

Com o isset(), você verifica se o campo existe no $_POST, se existir, atualiza as variáveis que você já criou vazias.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software