Olá, estou apendendo o php, e me deparei com o seguinte problema:
Em um projeto de loja virtual que estou usando para aprender a linguaguem, quando executo o script de cadastro, na primeira execução após inicialização do servidor local, são feitos 3 cadastros totalmente em branco antes do cadastro com os campos preenchidos.
Detalhe que a partir da segunda tentativa isso não acontece mais.
Gostaria de entender o motivo disso estar acontecendo.
Estou usando o xampp v3.2.4 com p php na versão 7.4.13
Pagina com o formulário do cadastro de produtos:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Loja - Cadastro produtos</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="scripts/jquery.mask.js"></script>
<script>
$(document).ready(function(){
$('#preco').mask('000.000.000.000.000,00', {reverse: true});
});
</script>
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-sm-4 col-sm-offset-4">
<h2>
Cadastro de produtos
</h2>
<form method="post" action="cadastroProduto.php" name="incluiProd" enctype="multipart/form-data">
<div class="form-group">
<label for="produto">Produto</label>
<input name="produto" type="text" class="form-control" required id="produto">
</div>
<div class="form-group">
<label for="marca">Marca</label>
<select class="form-control" name="marca" id="marca">
<option value="MARCA 01">Marca 01</option>
<option value="MARCA 02">Marca 02</option>
<option value="MARCA 03">Marca 03</option>
</select>
</div>
<div class="form-group">
<label for="marca">Cidade</label>
<select class="form-control" name="cidade" id="cidade">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
</select>
</div>
<div class="form-group">
<label for="codigo">Código</label>
<input name="codigo" type="text" class="form-control" required id="codigo">
</div>
<div class="form-group">
<label for="Quantidade">Quantidade inicial</label>
<input name="quantidadeInicial" type="number" class="form-control" required id="quantidadeInicial">
</div>
<div class="form-group">
<label for="preco">Preço</label>
<input type="text" class="form-control" required name="preco" id="preco">
</div>
<div class="form-group">
<label for="foto">Foto do produto</label>
<input type="file" accept="image/*" class="form-control" required name="foto" id="foto">
</div>
<button type="submit" class="btn btn-lg btn-default">
<span class="glyphicon glyphicon-pencil"> Cadastrar </span>
</button>
</form>
</div>
</div>
</div>
<?php include 'rodape.html' ?>
</body>
</html>
Este é o codigo de conexão:
<?php
try{
$conexao = new PDO('mysql:host=localhost;dbname=id9036453_loja;charset-utf8','root','', array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES UTF8'));
$conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
echo 'Erro na conexão: '.$e->getMessage().'<br>';
echo 'Código do erro: '.$e->getCode();
}
?>
Este é o codigo que faz o cadastro no banco de dados:
<?php
include 'conexao.php';
include 'resize-class.php';
$recebeProduto = $_POST['produto'];
$recebeMarca = $_POST['marca'];
$recebeCidade = $_POST['cidade'];
$recebeCodigo = $_POST['codigo'];
$recebeQuantidadeInicial = $_POST['quantidadeInicial'];
$recebeQuantidadeAtual = $_POST['quantidadeInicial'];
$recebePreco = $_POST['preco'];
$remover1='.';
$recebePreco = str_replace($remover1, '', $recebePreco);
$remover2=',';
$recebePreco = str_replace($remover2, '.', $recebePreco);
$recebeFoto = $_FILES['foto'];
$destino = "image/uploads/";
preg_match("/\.(jpg|jpeg|png){1}$/i",$recebeFoto['name'],$extencao);
$imgNome = md5(uniqid(time())).".".$extencao[1];
try {
$inserir=$conexao->query("INSERT INTO produtos (produto, marca, codigo, quantidade_inicial, quantidade_atual, preco, foto, cidade_origem) VALUES ('$recebeProduto', '$recebeMarca', '$recebeCodigo', '$recebeQuantidadeInicial', '$recebeQuantidadeAtual', '$recebePreco', '$imgNome', '$recebeCidade')");
move_uploaded_file($recebeFoto['tmp_name'], $destino.$imgNome);
$resizeObj = new resize($destino.$imgNome);
$resizeObj -> resizeImage(900, 640, 'crop');
$resizeObj -> saveImage($destino.$imgNome, 100);
header('location:formProdutos.php');
}catch(PDOException $e) {
echo $e->getMessage();
}
?>
Desde já agradeço pela ajuda.