Ir ao conteúdo

Posts recomendados

Postado

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.

Postado

Bom dia sr @Paulo Javan .

 

Não me arrisco muito com PDO, por mais que seja a mesma coisa com camisa de gola, prefiro o querido mysql

 

Quanto ao teu código, sugiro o sr utilizar echo para identificar com mais precisão onde está sendo limpo os dados.

 

De imediato, quero citar este trecho, onde você limpa o caracter de um e restabelece substituindo de outro

Em 06/01/2021 às 17:29, Paulo Javan disse:

$remover1='.'; $recebePreco = str_replace($remover1, '', $recebePreco); $remover2=','; $recebePreco = str_replace($remover2, '.', $recebePreco);

 

 

Segundo, na linha entre o php e o include, coloca print_r($_POST); exit;

Em 06/01/2021 às 17:29, Paulo Javan disse:

<?php

include 'conexao.php';

 

 

 

Terceiro. dando certo acima, insira um "?die() mysql error " o interrogação é para ser inserirdo, o die é para você corrigir e fazer apresentar a mensagem de erro do banco de dados.

Em 06/01/2021 às 17:29, Paulo Javan disse:

$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')");

 

 

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!