Ir ao conteúdo

Posts recomendados

Postado

Estou tentando criar um sistema de registro de produtos no meu site, mas quando vou dar valor para as variaveis para salvar no banco de dados usando mysqli ele dá o seguinte erro: 

Citação

Warning: Undefined array key "nomedoproduto" in C:\xampp\htdocs\mk14\upload.php on line 12
Warning: Undefined array key "estado" in C:\xampp\htdocs\mk14\upload.php on line 13
Warning: Undefined array key "novoouusado" in C:\xampp\htdocs\mk14\upload.php on line 14

 

Sendo que eu já defini o valor da array nos inputs pelo name="", então não sei o que pode estar acontecendo, se alguém puder ajudar ficarei muito grato

 

Código:

 

<?php

  include("conexaoimage.php");

  $msg = false;

  if(isset($_FILES['arquivo'])){

    $extensao = strtolower(substr($_FILES['arquivo']['name'], -4)); //pega a extensao do arquivo
    $novo_nome = md5(time()) . $extensao; //define o nome do arquivo
    $diretorio = "upload/"; //define o diretorio para onde enviaremos o arquivo
    $nomedoproduto = $_GET['nomedoproduto'];
    $estado = $_GET['estado'];
    $novoouusado = $_GET['novoouusado'];

    move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome); //efetua o upload

    $sql_code = "INSERT INTO images (codigo, arquivo, date, nomedoproduto, estado,novoouusado) 
    VALUES(null, '$novo_nome', NOW(), $nomedoproduto, $estado, $novoouusado)";

    if($mysqli->query($sql_code))
      $msg = "Arquivo enviado com sucesso!";
    else
      $msg = "Falha ao enviar arquivo.";

  }
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Help!</title>
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Special+Elite&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700" rel="stylesheet">
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="css/upload.css">
</head>

<body>

<div id="div1">
<h1>Cadastro de Produtos</h1>
<?php if(isset($msg) && $msg != false) echo "<p> $msg </p>"; ?>
<form action="upload.php" method="POST" enctype="multipart/form-data">
<a href="home.html"><img src="img/semtitulo4.png" alt=""></a>   
<h3>Foto do Produto</h3>  
Arquivo: <input type="file" required name="arquivo">
  <br><br>

  <h3>Nome do Produto</h3>
  <input name="nomedoproduto" type="text" class="input is-large" placeholder="Máximo 50 caracteres" maxlength="50">
  <br><br>
<h3>Escolha o seu estado.</h3>
  <select name="estado">
<option value="AC">Acre (AC)</option>
<option value="AL">Alagoas (AL)</option>
<option value="AP">Amapá (AP)</option>
<option value="AM">Amazonas (AM)</option>
<option value="BA">Bahia (BA)</option>
<option value="CE">Ceará (CE)</option>
<option value="DF">Distrito Federal (DF)</option>
<option value="ES">Espírito Santo (ES)</option>
<option value="GO">Goiás (GO)</option>
<option value="MA">Maranhão (MA)</option>
<option value="MT">Mato Grosso (MT)</option>
<option value="MS">Mato Grosso do Sul (MS)</option>
<option value="MG">Minas Gerais (MG)</option>
<option value="PA">Pará (PA)</option>
<option value="PB">Paraíba (PB)</option>
<option value="PR">Paraná (PR)</option>
<option value="PE">Pernambuco (PE)</option>
<option value="PI">Piauí (PI)</option>
<option value="RJ">Rio de Janeiro (RJ)</option>
<option value="RN">Rio Grande do Norte (RN)</option>
<option value="RN">Rio Grande do Sul (RS)</option>
<option value="RO">Rondônia (RO)</option>
<option value="RR">Roraima (RR)</option>
<option value="SC">Santa Catarina (SC)</option>
<option value="SP">São Paulo (SP)</option>
<option value="SE">Sergipe (SE)</option>
<option value="TO">Tocantins (TO)</option>
</select>
<br><br>

<h3>Novo ou Usado.</h3>
  <select name="novoouusado">
<option value="">Novo</option>
<option value="">Usado</option>
</select>
<br><br>
  <input class="btn" type="submit" value="Salvar">
  <input class="btn" type="reset" value="Limpar" />
</form>
</div>
</body>

 

Postado

@BillieRJ Ola.

Os erros que voce informou são referentes as linhas 12, 13 e 14.

O que são esses erros.

na linha 12 voce esta tentando acessar a chave "nomedoproduto" da variavel global $_GET, porém você não garante que exista essa chave dentro da array.

Quando não existe uma chave e voce tenta acessar ela, esse erro será apresentado.

A variavel $_GET é responsavel por armazenar todos os parametros enviados por query parameters.

Citação

Exemplo:
meusite.com.br/upload.php?nomedoproduto=Cerveja

<?php
echo $_GET['nomedoproduto']; //resultado será "Cerveja"



Provavelmente você não está enviando esses parametros via GET/Query Parameters.

 

Aconselho validar os valores antes de inserir eles no banco.
Outro conselho é não acessar chaves de array dessa forma $_GET['nomedoproduto']. Pois você não tem como garantir que a chave nomedoproduto existe.

Antes de acessar uma chave garanta que ela existe usando array_key_exists, isset, empty entre outras formas.

 

  • Curtir 1
Postado

@BillieRJ  Olá colega.

 

Tem trocar isso:

$nomedoproduto = $_GET['nomedoproduto'];
$estado = $_GET['nomedoproduto'];
$novoouusado = $_GET['novoouusado'];

 

Por isso:

if( isset($_GET['nomedoproduto']) && isset($_GET['novoouusado']) )  { 
     $nomedoproduto = $_GET['nomedoproduto'];
     $estado = $_GET['nomedoproduto'];
     $novoouusado = $_GET['novoouusado'];
}

 

São as linhas 12, 13, e 14 que estão com erro, e veja se revolve.

 

Abraços colega.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...