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

Erro Notice Resolvido

Bom, estou tendo muitos problemas. mas consegui ligar o XAMP e usei para o Apache a porta 8090 então localhost:8090. Fiz todo o código só que usei essa conexão do localhost. Ao abrir a página me retorna o erro:

Notice: Undefined index: nome in C:\xampp\htdocs\loja\adiciona-produto.php on line 3

Notice: Undefined index: preco in C:\xampp\htdocs\loja\adiciona-produto.php on line 4 Produto , adicionado com sucesso!

Meu código esta assim....

<?php include("cabecalho.php"); ?>
                <?php 
                $nome = $_GET["nome"];
                $preco = $_GET["preco"];
                $conexao = mysqli_connect('localhost:8090', 'root', '', 'loja');

                $query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
                if(mysqli_query($conexao, $query)) { ?>
                        <p class="alert-success"> O produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso! </p>

                <?php } else { ?>
                        <p class="alert-danger"> O produto <?= $nome; ?> não foi adicionado. </p>
                <?php
                }
                 ?>

<?php include("rodape.php"); ?>
4 respostas

Oi Renato, tudo bom?

Seu erro está dizendo que não foi encontrado os indices nome e preço:

  $nome = $_GET["nome"];
  $preco = $_GET["preco"];

Verifica se onde você direciona para adiciona-produto.php você está passando esses valores. Algo como:

adiciona-produto.php?nome=Carro&preco=Preco

Qualquer dificuldade, compartilha com a gente! Bons estudos =)

Olá Renato, tudo bom?

Invés de usar $_GET tente usar o $_POST

Ex:

$nome = $_POST["nome"];
$preco = $_POST["preco"];

Esperto ter lhe ajudado!

Bom estudo!

Complementando as respostas dos colegas

Se você está passando os dados pela URL, a forma de ler os dados é por $_GET

Se os dados estão vindo por formulário, você precisa verificar se o formulário está assim:


<form method="POST">

E se existem campos com os nomes que você quer. Exemplo:

<input type="text" name="nome">
<input type="text" name="preco">

No exemplo acima, a forma de ler é por $_POST

Esse tipo de erro de "Notice" ocorre porque você está tentando ler um índice que não existe, isso pode ocorrer quando você tentar ler um $_GET, $_POST ou $_SESSION

Uma forma de evitar esse erro é usando o isset(). Exemplo:

$nome = "";
if (isset($_GET["nome"])){
    $nome = $_GET["nome"];
}
solução!

Parece ridículo o que vou falar, mas estava alterando um arquivo em uma pasta diferente, ou seja, eu alterava e não mudava nada, localizei o arquivo certo e tudo funcionou perfeitamente. Obrigado.