Olá,
Estou com um problema, sempre fica dando essa mensagem Undefined index e não sei como resolver, já pesquisei muita coisa e não conseguir entender e nem faze funcionar.
form-tarefa.php
<?php include("cabecalho.php"); ?>
<form class="criar-tarefa" enctype="multipart/form-data" action="adiciona-tarefa.php" method="POST">
<h1>Cadastro de tarefa</h1>
<table class="table table-striped table-bordered">
<tr>
<td>Nome</td>
<td><input class="form-control" type="text" name="nome"/></td>
</tr>
<tr>
<td>Descriçao</td>
<td><textarea class="form-control" name="descricao"/></textarea></td>
</tr>
<tr>
<td>Codigo</td>
<td><input class="form-control" type="number" name="codigo"/></td>
</tr>
</table>
<input class="btn btn-primary btn-lg" type="submit" value="Cadastrar" id="cadastrar" name="cadastrar"><br><br>
</form>
<?php include("rodape.php"); ?>
adiciona-tarefa.php
<?php include("cabecalho.php");
include("conecta.php");
include("banco-tarefa.php");
$nome = $_POST['nome'];
$descricao = $_POST['descricao'];
$codigo = $_POST['codigo'];
if(insereTarefa($conexao,$nome,$descricao,$codigo)){
echo"<script language='javascript' type='text/javascript'>alert('Documento inserido com sucesso!');window.location.href='home.php';</script>";
die();
} else {
echo"<script language='javascript' type='text/javascript'>alert('Não foi possível inserir o documento');window.location.href='';</script>";
die();
}
?>
<?php include("rodape.php"); ?>
Se voce debugar, em que linha dá o erro?
Desculpe, não coloquei os erros.
Ele aparece nessas linhas abaixo:
Notice: Undefined index: nome in C:\wamp64\www\tarefa\adiciona-tarefa.php on line 9
Notice: Undefined index: descricao in C:\wamp64\www\tarefa\adiciona-tarefa.php on line 10
Notice: Undefined index: codigo in C:\wamp64\www\tarefa\adiciona-tarefa.php on line 11
Problema nessa parte do código:
$nome = $_POST[‘nome’];
$descricao = $_POST[‘descricao’];
$codigo = $_POST[‘codigo’];
Seu html não precisa de barra no fim do input (exceto arquivos xhtml o que não é seu caso)…
<input .../>
Para…
<input...>
Seu textarea também, afinal ele já possui o fechamento
<textarea/></textarea>
Para
<textarea></textarea>
Apenas por precaução, coloque isso no começo do código em adiciona-tarefa.php
echo $_SERVER['REQUEST_METHOD'];
Se isso trouxer GET, troque o POST do method no form de maiúsculo para minúsculo (nunca tive problemas com isso porque sempre declaro minúsculo, mas vai saber)…
Isso trouxe GET.
e agora? troco tudo que está post para get? não posso usar post?
Como disse antes mude o POST maiusculo para minusculo e veja o que acontece…
Aproveito para indicar boas práticas, não use $_POST diretamente, prefira filtrar primeiro…
$nome = filter_input(INPUT_POST, 'nome');
$descricao = ...
OBS: Quando se usa formulários o comum para envio é POST mesmo, GET é usado em links e na URL do navegador, logo, se você possui muitos campos no formulário, GET acaba sendo inviável o uso…
@rodevops cara muito obrigado.
Só para ver se eu entendi, estava acontecendo o erro porque eu tinha colocado o metodo maiusculo?
Outra coisa, estou querendo anexar um documento qualquer no formulário para salvar no banco ( salvar em uma pasta e só o caminho ficar salvo no banco).
você conseguiria me ajudar ou dar um luz?
Provavelmente, como disse antes eu sempre declaro em caixa baixa (termo técnico para minúsculo ) e nunca tive problemas, mas como eu sou fução, uma vez declarei em caixa alta e deu zica …
Quanto ao arquivo, primeiro no form você precisa ter um input do tipo file…
<input type="file" name="anexo">
E no php usar o array $_FILES, pesquise a respeito…
Depois para salvar o arquivo no servidor pode usar a função move_uploaded_file, no site oficial há exemplos de código, bons estudos!
Segue uma noção de uso…
$anexo = $_FILES['anexo']; // name do input...
echo $anexo['error']; // 0 tudo ok, != 0 contém erro
echo $anexo['size']; // tamanho em bytes
echo $anexo['name']; // nome do arquivo
echo $anexo['tmp_name']; // nome temporário no servidor
Lembrando que sempre que usar arquivos em formulários, o enctype=“multipart/form-data” como você fez é necessário!