I'm getting data from a form (HTML) to register in my database, the data is coming in the following way in the Firefox Console. link . In my view the problem apparently is in the variable $ _FILE that can not get the file with this fakepatch, what would be the correct way to do it? I am not very experienced in web development My .js file looks like this:
$("#cadastrar").click(function(e){
e.preventDefault();
e.stopImmediatePropagation();
var inputs=$("#form .control-group :input");
var valuesFields={};
inputs.each(function (){
valuesFields[this.name]=$(this).val();
});
var dataFields="titulo="+valuesFields["titulo"];
$.each(valuesFields,function(field,key){
if(field!="titulo" && key!=""){
dataFields+="&"+field+"="+key;
}
});
console.log(dataFields);
//return;
$.ajax({
url: "../php/cadastro.empresa.php",
type: "POST",
data: dataFields,
dataType: "json"
}).done(function(resposta) {
if(resposta.success){
window.alert("Empresa inserida com sucesso!");
var inputs=$("#form .control-group :input");
inputs.each(function (){
$(this).val("");
});
location.reload();
}else if(resposta.falha){
window.alert("Empresa jรก cadastrada!");
}
else{
window.alert("Erro, tente novamente!");
}
}).fail(function(jqXHR, textStatus ) {
window.alert("Erro interno, tente novamente!");
console.log(textStatus);
}).always(function() {
});
});
and my php file looks like this:
header('Content-type: application/json; charset=utf-8');
include "bddata.php";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$titulo=$_POST["titulo"];
$sql2 = "SELECT titulo FROM empresa WHERE titulo = '$titulo'";
$stmt2=$conn->query($sql2);
$destaque = "N";
if($stmt2->num_rows > 0){
$result = ['falha' => true];
}else{
// Recupera os dados dos campos
$foto = $_FILES["arquivo"];
// Se a foto estiver sido selecionada
if (!empty($foto["name"])) {
// Largura máxima em pixels
$largura = 3000;
// Altura máxima em pixels
$altura = 3000;
// Tamanho máximo do arquivo em bytes
$tamanho = 5000;
$error = array();
// Verifica se o arquivo é uma imagem
if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){
//$error[1] = "Isso não é uma imagem.";
die("Isso não é uma imagem");
}
// Pega as dimensões da imagem
$dimensoes = getimagesize($foto["tmp_name"]);
// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
//$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
die("A largura da imagem não deve ultrapassar");
}
// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
//$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
die("Altura da imagem não deve ultrapassar ");
}
// Verifica se o tamanho da imagem é maior que o tamanho permitido
if($foto["size"] > $tamanho) {
//$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
die("A imagem deve ter no máximo ");
}
// Se não houver nenhum erro
if (count($error) == 0) {
// Pega extensão da imagem
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);
// Gera um nome único para a imagem
$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
// Caminho de onde ficará a imagem
$caminho_imagem = "imagens_upload/" . $nome_imagem;
// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto["tmp_name"], $caminho_imagem);
// Insere os dados no banco
$sql= "INSERT INTO empresa(titulo, endereco, numero, complemento, frase, nome_proprietario, telCel, telFix, descricao, caracteristica, mapa_id_mapa, destaque, link_facebook, link_twitter, link_googlemore, imagem) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$stmt=$conn->prepare($sql);
$stmt->bind_param("ssssssssssisssss",$_POST["titulo"],$_POST["endereco"],$_POST["numero"],$_POST["complemento"],
$_POST["frase"],$_POST["proprietario"], $_POST["telefone"],$_POST["telefonefixo"],
$_POST["descricao"],$_POST["caracteristica"],intval($_POST["mapa"]),$destaque,$_POST["facebook"],$_POST["twitter"],$_POST["google"],$caminho_imagem);
$success = $stmt->execute();
$stmt->close();
$result = ['success' => $success];
// Se os dados forem inseridos com sucesso
}
}
}
print json_encode($result);
$conn->close();