Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com o Notice: Undefined index


B Morgan Moonscar

Pergunta

Olá boa tarde/dia/noite.

Estou com um codigo que esta funcional, de mural de recados ele me mostra o que esta sendo postado, e esta indo para o BD bonitinho ( coloquei ele na mesma pagina apenas para facilitar e depois vou desmembrar), porém, nas linhas iniciais da parte php do codigo abaixo, $nome,$email,$mensagem e $btenvia.   

O codigo na pagina me retorna um erro de index indefinida, olhei varios foruns, videos, entendi que é algo relacionado a asset mas eu não estou conseguindo mesmo incluir isso no meu codigo, estou engatinhando ainda e queria ajuda não somente para resolver o problema mas também entender o que de fato errei, porque mesmo que eu entenda o erro não vou saber escrever o codigo, mesmo que eu tenha o codigo não vou entender o erro então estou solicitando estas duas ajudas, como escrever o que falta e entender o que foi feito para eu poder aplicar no futuro.

Desde já obrigado

 

<?php
//conexão funcionando neste campo
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>mural</title>
</head>
<body>

<p>Mural Recados
<p>



</p>
<p>Insira sua mensagem:</p>
<form name="form1" method="POST"  action="teste.php">
  <label>
  Nome*:
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input name="nome" type="text" id="nome">
  </label>
  <br>
  <label>E-mail:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input name="email" type="text" id="email">
  </label>
  <br>
Mensagem:
&nbsp;
<label>
<textarea type="text" name="mensagem" cols="20" id="mensagem"></textarea>
</label>
<br>
<br>
<label>
<input name="btenvia" type="submit" id="btenvia" value="Enviar">
</label>
<br>
<br>
*Aten&ccedil;&atilde;o: preenchimento obrigat&oacute;rio
</form>
<p>&nbsp; </p>
</body>
</html>



<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];
$envia = $_POST['btenvia'];

if(!empty($nome) && isset($envia)){
$insert=$db->prepare("insert into tbmural(nome,email, mensagem) values('$nome', '$email','$mensagem')");
$insert->execute();
header("Location: teste.php");
}
$stmt = $db->prepare("select * from tbmural order by id desc");
$stmt->execute();
while($reg = $stmt->fetch(PDO::FETCH_OBJ))
{
echo $reg->id. " - ";
echo $reg->nome. " - ";
echo $reg->email. " - ";
echo $reg->mensagem. " - ";
echo date('d/m/Y', strtotime($reg->dia)). "<br />";
}
?>
Editado por B Morgan Moonscar
linha a mais
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 1

Olá!
O sr. não postou a mensagem de erro que apareceu, mas presumo que seja porque ao abrir o script nada ainda foi postado.
Então coloque o trecho de script selecionado dentro de:
 

if(isset($_POST['nome'])){
// aqui
}
19 horas atrás, B Morgan Moonscar disse:
$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];
$envia = $_POST['btenvia'];

if(!empty($nome) && isset($envia)){
$insert=$db->prepare("insert into tbmural(nome,email, mensagem) values('$nome', '$email','$mensagem')");
$insert->execute();
header("Location: teste.php");
}
$stmt = $db->prepare("select * from tbmural order by id desc");
$stmt->execute();
while($reg = $stmt->fetch(PDO::FETCH_OBJ))
{
echo $reg->id. " - ";
echo $reg->nome. " - ";
echo $reg->email. " - ";
echo $reg->mensagem. " - ";
echo date('d/m/Y', strtotime($reg->dia)). "<br />";
}

Assim o trecho php só será executado, depois que pelo menos 'nome' for postado

Link para o comentário
Compartilhar em outros sites

  • 0
5 horas atrás, wash disse:

Olá!
O sr. não postou a mensagem de erro que apareceu, mas presumo que seja porque ao abrir o script nada ainda foi postado.
Então coloque o trecho de script selecionado dentro de:
 

if(isset($_POST['nome'])){
// aqui
}

Assim o trecho php só será executado, depois que pelo menos 'nome' for postado

oi tudo bem? eu acho que ficou meio escondida, mas eu escrevi que o erro eram de index indefinidas nas linhas do php e nomeei como $nome $email $mensagem $envia.

5 horas atrás, wash disse:

Olá!
O sr. não postou a mensagem de erro que apareceu, mas presumo que seja porque ao abrir o script nada ainda foi postado.
Então coloque o trecho de script selecionado dentro de:
 

if(isset($_POST['nome'])){
// aqui
}

Assim o trecho php só será executado, depois que pelo menos 'nome' for postado

De qualquer forma vou testar aqui obrigado pelo seu tempo.

 

5 horas atrás, wash disse:

Olá!
O sr. não postou a mensagem de erro que apareceu, mas presumo que seja porque ao abrir o script nada ainda foi postado.
Então coloque o trecho de script selecionado dentro de:
 

if(isset($_POST['nome'])){
// aqui
}

Assim o trecho php só será executado, depois que pelo menos 'nome' for postado

Infelizmente não funcionou, a pagina ficou em branco, até o momento eu consegui """""resolver""""" adicionando @'s antes de cada variável assim :

@$nome = $_POST['nome'];
@$email = $_POST['email'];
@$mensagem = $_POST['mensagem'];
@$envia = $_POST['btenvia'];

Assim o erro de index indefinida não aparece, embora exista, pois passei um echo $_SERVER['REQUEST_METHOD'];  para verificar o que esta me trazendo e ao invés de POST ele esta passando GET e isso pode estar gerando esse index indefinido nessas variáveis. 

(repare que mesmo tendo a index indefinida os valores estão sendo salvos no db e retornando  que seria essa linha " teste teste teste "

(so tampei as partes que mostram o nome e o host do server)

error.png

Editado por B Morgan Moonscar
faltou uma info
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...