From 586f5c45185ebc3d3896b23c7cfb9b5e00f39124 Mon Sep 17 00:00:00 2001 From: nicolly015 Date: Wed, 11 Sep 2024 14:53:01 -0300 Subject: [PATCH 01/19] corrigindo issue [#359] --- html/atendido/familiar_listar.php | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/html/atendido/familiar_listar.php b/html/atendido/familiar_listar.php index dee22337..cc2c1760 100644 --- a/html/atendido/familiar_listar.php +++ b/html/atendido/familiar_listar.php @@ -14,16 +14,24 @@ $pdo = Conexao::connect(); $id_funcionario = $_POST["id_funcionario"]; -$dependente = $pdo->query("SELECT +$stmt = $pdo->prepare("SELECT p.nome AS nome, p.cpf AS cpf, par.descricao AS parentesco FROM funcionario_dependentes fdep LEFT JOIN funcionario f ON f.id_funcionario = fdep.id_funcionario LEFT JOIN pessoa p ON p.id_pessoa = fdep.id_pessoa LEFT JOIN funcionario_dependente_parentesco par ON par.id_parentesco = fdep.id_parentesco -WHERE fdep.id_funcionario = $id_funcionario;"); -$dependente = $dependente->fetchAll(PDO::FETCH_ASSOC); -$dependente = json_encode($dependente); +WHERE fdep.id_funcionario = :id_funcionario"); -echo $dependente; +$stmt->bindParam(':id_funcionario', $id_funcionario, PDO::PARAM_INT); -die(); \ No newline at end of file +$stmt->execute(); + +$dependentes = $stmt->fetchAll(PDO::FETCH_ASSOC); + +foreach ($dependentes as &$dependente) { + $dependente['cpf'] = substr($dependente['cpf'], 0, 3) . '.***.***-' . substr($dependente['cpf'], -2); +} + +echo json_encode($dependentes); + +exit(); \ No newline at end of file From 673988a27a0475477ca2992092c5920320001b11 Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 11 Sep 2024 15:13:49 -0300 Subject: [PATCH 02/19] Corrigindo issue [#247] --- html/saude/alergia_upload.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/saude/alergia_upload.php b/html/saude/alergia_upload.php index e933aff3..f0db2fc7 100644 --- a/html/saude/alergia_upload.php +++ b/html/saude/alergia_upload.php @@ -6,7 +6,8 @@ error_reporting(E_ALL); session_start(); -extract($_REQUEST); +$id_CID_alergia = $_POST["id_CID_alergia"]; +$id_fichamedica = $_POST["id_fichamedica"]; if (!isset($_SESSION["usuario"])){ header("Location: ../../index.php"); } From d52e209a13e4d5a2c4603ebd38bc0a228d8d4814 Mon Sep 17 00:00:00 2001 From: nicolly015 Date: Wed, 11 Sep 2024 16:06:36 -0300 Subject: [PATCH 03/19] corrigindo issue [#372] --- html/atendido/docfamiliar_upload.php | 42 +++++++++++++++++----------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/html/atendido/docfamiliar_upload.php b/html/atendido/docfamiliar_upload.php index caaf6f9e..3c3f66ec 100644 --- a/html/atendido/docfamiliar_upload.php +++ b/html/atendido/docfamiliar_upload.php @@ -15,25 +15,33 @@ // A tabela funcioanrio_docs requer id_dependente, id_docdependente, extensao_arquivo, nome_arquivo e arquivo $arquivo = $_FILES["arquivo"]; $nome_arquivo = $arquivo["name"]; - $extensao_arquivo = explode(".", $arquivo["name"])[1]; + $extensao_arquivo = strtolower(pathinfo($nome_arquivo, PATHINFO_EXTENSION)); $arquivo_b64 = base64_encode(file_get_contents($arquivo['tmp_name'])); - try { - $pdo = Conexao::connect(); - $prep = $pdo->prepare("INSERT INTO funcionario_dependentes_docs (id_dependente, id_docdependentes, extensao_arquivo, nome_arquivo, arquivo) - VALUES ( :idf , :idd , :ext , :n , COMPRESS(:a) )"); - - $prep->bindValue(":idf", $id_dependente); - $prep->bindValue(":idd", $id_docdependente); - $prep->bindValue(":ext", $extensao_arquivo); - $prep->bindValue(":n", $nome_arquivo); - $prep->bindValue(":a", $arquivo_b64); - - $prep->execute(); - - header("Location: ../profile_dependente.php?id_dependente=$id_dependente"); - } catch (PDOException $e) { - echo("Houve um erro ao realizar o upload do documento:

$e"); + // Tipos de arquivos permitidos + $tipos_permitidos = ['pdf', 'jpg', 'jpeg', 'png', 'doc', 'docx']; + + // Verifica se a extensão do arquivo é permitida + if (in_array($extensao_arquivo, $tipos_permitidos)) { + try { + $pdo = Conexao::connect(); + $prep = $pdo->prepare("INSERT INTO funcionario_dependentes_docs (id_dependente, id_docdependentes, extensao_arquivo, nome_arquivo, arquivo) + VALUES ( :idf , :idd , :ext , :n , COMPRESS(:a) )"); + + $prep->bindValue(":idf", $id_dependente); + $prep->bindValue(":idd", $id_docdependente); + $prep->bindValue(":ext", $extensao_arquivo); + $prep->bindValue(":n", $nome_arquivo); + $prep->bindValue(":a", $arquivo_b64); + + $prep->execute(); + + header("Location: ../profile_dependente.php?id_dependente=$id_dependente"); + } catch (PDOException $e) { + echo("Houve um erro ao realizar o upload do documento:

$e"); + } + } else { + echo "Tipo de arquivo não permitido. Apenas arquivos PDF, JPG, JPEG, PNG, DOC e DOCX são aceitos."; } }else { header("Location: ../informacao_funcionario.php"); From 9d01c31282411863b453bf0288c46b599e83d011 Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 11 Sep 2024 16:56:51 -0300 Subject: [PATCH 04/19] Issue [#450] --- dao/pet/exibir_especie.php | 46 +++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/dao/pet/exibir_especie.php b/dao/pet/exibir_especie.php index 8938f213..77c02b35 100644 --- a/dao/pet/exibir_especie.php +++ b/dao/pet/exibir_especie.php @@ -1,13 +1,33 @@ -query($sql); - $resultado = array(); - while ($row = $stmt->fetch()) { - $resultado[] = array('id_especie'=>$row['id_pet_especie'],'especie'=>$row['descricao']); - } - echo json_encode($resultado); - -?> \ No newline at end of file +query($sql); + + // Array para armazenar os resultados + $resultado = array(); + + // Fetch os resultados e sanitizar os dados + while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { + $id_especie = htmlspecialchars($row['id_pet_especie'], ENT_QUOTES, 'UTF-8'); + $especie = htmlspecialchars($row['descricao'], ENT_QUOTES, 'UTF-8'); + + $resultado[] = array('id_especie' => $id_especie, 'especie' => $especie); + } + + // Retornar os resultados em formato JSON + header('Content-Type: application/json'); + echo json_encode($resultado); + +} catch (PDOException $e) { + // Tratamento de erros de conexão + echo json_encode(array('error' => 'Erro ao conectar ao banco de dados: ' . $e->getMessage())); +} +?> From f7e9c932d57b422824342c711c9687ba114dd0f0 Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 12 Sep 2024 14:28:46 -0300 Subject: [PATCH 05/19] Issue [#266] --- dao/pet/AdocaoPet.php | 1 - html/pet/cadastrar_medicamento.php | 82 +++++++++++++++++++++--------- 2 files changed, 59 insertions(+), 24 deletions(-) diff --git a/dao/pet/AdocaoPet.php b/dao/pet/AdocaoPet.php index cd3ff1ac..9e842fb6 100644 --- a/dao/pet/AdocaoPet.php +++ b/dao/pet/AdocaoPet.php @@ -89,7 +89,6 @@ public function inserirAdocao($id_pet, $rg, $data_adocao){ public function nomeAdotante($rg){ $pdo = Conexao::connect(); - $pd = $pdo->prepare("SELECT nome, sobrenome FROM pessoa WHERE registro_geral = :rg"); $pd->bindValue(":rg", $rg); $pd->execute(); diff --git a/html/pet/cadastrar_medicamento.php b/html/pet/cadastrar_medicamento.php index d6666660..c2c9e824 100644 --- a/html/pet/cadastrar_medicamento.php +++ b/html/pet/cadastrar_medicamento.php @@ -24,33 +24,69 @@ require_once "../../dao/Conexao.php"; $pdo = Conexao::connect(); +// Database connection $conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); + +// Check connection +if (!$conexao) { + die("Connection failed: " . mysqli_connect_error()); +} + +// Start the session +session_start(); + +// Get user ID from session $id_pessoa = $_SESSION['id_pessoa']; -$resultado = mysqli_query($conexao, "SELECT * FROM funcionario WHERE id_pessoa=$id_pessoa"); -if(!is_null($resultado)){ - $id_cargo = mysqli_fetch_array($resultado); - if(!is_null($id_cargo)){ - $id_cargo = $id_cargo['id_cargo']; - } - $resultado = mysqli_query($conexao, "SELECT * FROM permissao p JOIN acao a ON(p.id_acao=a.id_acao) JOIN recurso r ON(p.id_recurso=r.id_recurso) WHERE id_cargo=$id_cargo AND a.descricao = 'LER, GRAVAR E EXECUTAR' AND r.descricao='Módulo Saúde'"); - if(!is_bool($resultado) and mysqli_num_rows($resultado)){ - $permissao = mysqli_fetch_array($resultado); - if($permissao['id_acao'] < 7){ - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=$msg"); - } - $permissao = $permissao['id_acao']; - }else{ + +// Prepare and execute the first query to get id_cargo +$stmt = $conexao->prepare("SELECT id_cargo FROM funcionario WHERE id_pessoa = ?"); +$stmt->bind_param("i", $id_pessoa); +$stmt->execute(); +$resultado = $stmt->get_result(); + +// Check if we have a valid result +if ($resultado && $row = $resultado->fetch_assoc()) { + $id_cargo = $row['id_cargo']; + + // Prepare and execute the second query to check permissions + $stmt = $conexao->prepare( + "SELECT p.id_acao FROM permissao p + JOIN acao a ON p.id_acao = a.id_acao + JOIN recurso r ON p.id_recurso = r.id_recurso + WHERE p.id_cargo = ? + AND a.descricao = 'LER, GRAVAR E EXECUTAR' + AND r.descricao = 'Módulo Saúde'" + ); + $stmt->bind_param("i", $id_cargo); + $stmt->execute(); + $resultado = $stmt->get_result(); + + if ($resultado && $row = $resultado->fetch_assoc()) { + // Check the permission level + if ($row['id_acao'] < 7) { + $msg = "Erro de Permissão."; + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; + } + $permissao = $row['id_acao']; + } else { $permissao = 1; - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=$msg"); - } -}else{ + $msg = "Erro de Permissão."; + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; + } +} else { $permissao = 1; -$msg = "Você não tem as permissões necessárias para essa página."; -header("Location: ../home.php?msg_c=$msg"); -} - + $msg = "Erro de Permissão."; + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; +} + +// Close statements and connection +$stmt->close(); +mysqli_close($conexao); + + $nome = $pdo->query("SELECT p.id_pet, p.nome FROM pet p")->fetchAll(PDO::FETCH_ASSOC); From 8e65ab43cf4a5f512e46f18fe1fc252d69b200b4 Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 12 Sep 2024 14:41:01 -0300 Subject: [PATCH 06/19] Issue [#265] --- html/pet/cadastro_ficha_medica_pet.php | 81 +++++++++++++++++++------- 1 file changed, 60 insertions(+), 21 deletions(-) diff --git a/html/pet/cadastro_ficha_medica_pet.php b/html/pet/cadastro_ficha_medica_pet.php index f82d9985..2be7fcb2 100644 --- a/html/pet/cadastro_ficha_medica_pet.php +++ b/html/pet/cadastro_ficha_medica_pet.php @@ -24,32 +24,71 @@ require_once "../../dao/Conexao.php"; $pdo = Conexao::connect(); + +// Database connection $conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); + +// Check connection +if (!$conexao) { + die("Connection failed: " . mysqli_connect_error()); +} + +// Start the session +session_start(); + +// Get user ID from session $id_pessoa = $_SESSION['id_pessoa']; -$resultado = mysqli_query($conexao, "SELECT * FROM funcionario WHERE id_pessoa=$id_pessoa"); -if(!is_null($resultado)){ - $id_cargo = mysqli_fetch_array($resultado); - if(!is_null($id_cargo)){ - $id_cargo = $id_cargo['id_cargo']; - } - $resultado = mysqli_query($conexao, "SELECT * FROM permissao p JOIN acao a ON(p.id_acao=a.id_acao) JOIN recurso r ON(p.id_recurso=r.id_recurso) WHERE id_cargo=$id_cargo AND a.descricao = 'LER, GRAVAR E EXECUTAR' AND r.descricao='Módulo Saúde'"); - if(!is_bool($resultado) and mysqli_num_rows($resultado)){ - $permissao = mysqli_fetch_array($resultado); - if($permissao['id_acao'] < 7){ - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=$msg"); - } - $permissao = $permissao['id_acao']; - }else{ + +// Prepare and execute the first query to get id_cargo +$stmt = $conexao->prepare("SELECT id_cargo FROM funcionario WHERE id_pessoa = ?"); +$stmt->bind_param("i", $id_pessoa); +$stmt->execute(); +$resultado = $stmt->get_result(); + +// Check if we have a valid result +if ($resultado && $row = $resultado->fetch_assoc()) { + $id_cargo = $row['id_cargo']; + + // Prepare and execute the second query to check permissions + $stmt = $conexao->prepare( + "SELECT p.id_acao FROM permissao p + JOIN acao a ON p.id_acao = a.id_acao + JOIN recurso r ON p.id_recurso = r.id_recurso + WHERE p.id_cargo = ? + AND a.descricao = 'LER, GRAVAR E EXECUTAR' + AND r.descricao = 'Módulo Saúde'" + ); + $stmt->bind_param("i", $id_cargo); + $stmt->execute(); + $resultado = $stmt->get_result(); + + if ($resultado && $row = $resultado->fetch_assoc()) { + // Check the permission level + if ($row['id_acao'] < 7) { + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; + } + $permissao = $row['id_acao']; + } else { + // No valid permission found $permissao = 1; $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=$msg"); - } -}else{ + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; + } +} else { + // No valid cargo found $permissao = 1; -$msg = "Você não tem as permissões necessárias para essa página."; -header("Location: ../home.php?msg_c=$msg"); -} + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; +} + +// Close statement and connection +$stmt->close(); +mysqli_close($conexao); + From b90b6c4684087a0e922f7934ff7a657cb0df9dda Mon Sep 17 00:00:00 2001 From: nicolly015 Date: Thu, 12 Sep 2024 14:51:53 -0300 Subject: [PATCH 07/19] Corrigindo issue [#369] --- html/atendido/documento_upload.php | 67 ++++++++++++++++-------------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/html/atendido/documento_upload.php b/html/atendido/documento_upload.php index e4273a07..16241fbd 100644 --- a/html/atendido/documento_upload.php +++ b/html/atendido/documento_upload.php @@ -17,39 +17,44 @@ // $idatendido, $id_docfuncional e $arquivo var_dump($_POST); extract($_POST); - - // A tabela atendido_ocorrencia_docs requer idatendido_ocorrencia_doc atentido_ocorrencia_idatentido_ocorrencias data arquivo_nome arquivo_extensao arquivo + $arquivo = $_FILES["arquivo"]; + if ($arquivo['error'] !== UPLOAD_ERR_OK) { + die("Houve um erro no upload do arquivo. Código de erro: " . $arquivo['error']); + } $arquivo_nome = $arquivo["name"]; - $extensao_nome = explode(".", $arquivo["name"])[1]; - $arquivo_b64 = base64_encode(file_get_contents($arquivo['tmp_name'])); - - try { - $pdo = Conexao::connect(); - $prep = $pdo->prepare("INSERT INTO atendido_documentacao( atendido_idatendido, atendido_docs_atendidos_idatendido_docs_atendidos, data, arquivo_nome, arquivo_extensao, arquivo) - VALUES ( :atendido_idatendido , :atendido_docs_atendidos_idatendido_docs_atendidos , :data, :arquivo_nome , :arquivo_extensao, :arquivo )"); - - //$prep->bindValue(":ida", $idatendido); - //$prep->bindValue(":idd", $atentido_ocorrencia_idatentido_ocorrencias); - $prep->bindValue(":atendido_idatendido", $idatendido); - $prep->bindValue(":atendido_docs_atendidos_idatendido_docs_atendidos", $id_docfuncional); - $prep->bindValue(":arquivo_nome", $arquivo_nome); - $prep->bindValue(":arquivo_extensao", $extensao_nome); - $prep->bindValue(":arquivo", gzcompress($arquivo_b64)); - - $dataDocumento = date('Y/m/d'); - $prep->bindValue(":data", $dataDocumento); - - $prep->execute(); - - header("Location: Profile_Atendido.php?idatendido=$idatendido"); - } catch (PDOException $e) { - echo("Houve um erro ao realizar o upload do documento:

$e"); + $extensao_nome = strtolower(pathinfo($arquivo["name"], PATHINFO_EXTENSION)); + $arquivo_b64 = base64_encode(file_get_contents($arquivo['tmp_name'])); + + $tipos_permitidos = ['pdf', 'jpg', 'jpeg', 'png', 'doc', 'docx']; + + if (in_array($extensao_nome, $tipos_permitidos)) { + try { + $pdo = Conexao::connect(); + $prep = $pdo->prepare("INSERT INTO atendido_documentacao( atendido_idatendido, atendido_docs_atendidos_idatendido_docs_atendidos, data, arquivo_nome, arquivo_extensao, arquivo) + VALUES ( :atendido_idatendido , :atendido_docs_atendidos_idatendido_docs_atendidos , :data, :arquivo_nome , :arquivo_extensao, :arquivo )"); + + //$prep->bindValue(":ida", $idatendido); + //$prep->bindValue(":idd", $atentido_ocorrencia_idatentido_ocorrencias); + $prep->bindValue(":atendido_idatendido", $idatendido); + $prep->bindValue(":atendido_docs_atendidos_idatendido_docs_atendidos", $id_docfuncional); + $prep->bindValue(":arquivo_nome", $arquivo_nome); + $prep->bindValue(":arquivo_extensao", $extensao_nome); + $prep->bindValue(":arquivo", gzcompress($arquivo_b64)); + + $dataDocumento = date('Y/m/d'); + $prep->bindValue(":data", $dataDocumento); + + $prep->execute(); + + header("Location: Profile_Atendido.php?idatendido=$idatendido"); + } catch (PDOException $e) { + error_log("Erro de PDO: " . $e->getMessage()); + echo("Houve um erro ao realizar o upload do documento:

$e"); + } + } else { + echo "Tipo de arquivo não permitido. Apenas arquivos PDF, JPG, JPEG, PNG, DOC e DOCX são aceitos."; } - - }else { header("Location: Informacao_Atendido.php"); -} - - +} \ No newline at end of file From b569efb831c81594ecb49c1b2c84c310cb5db8db Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 12 Sep 2024 14:54:37 -0300 Subject: [PATCH 08/19] Issue [#264] --- html/pet/cadastro_pet.php | 75 +++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 23 deletions(-) diff --git a/html/pet/cadastro_pet.php b/html/pet/cadastro_pet.php index 173c0b90..172d64c0 100644 --- a/html/pet/cadastro_pet.php +++ b/html/pet/cadastro_pet.php @@ -16,36 +16,65 @@ } require_once($config_path); } + +// Database connection $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); -$situacao = $mysqli->query("SELECT * FROM situacao"); -$cargo = $mysqli->query("SELECT * FROM cargo"); -$conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); + +// Check connection +if ($mysqli->connect_error) { + die("Connection failed: " . $mysqli->connect_error); +} + +// Start the session +session_start(); + +// Get user ID from session $id_pessoa = $_SESSION['id_pessoa']; -$resultado = mysqli_query($conexao, "SELECT * FROM funcionario WHERE id_pessoa=$id_pessoa"); -if (!is_null($resultado)) { - $id_cargo = mysqli_fetch_array($resultado); - if (!is_null($id_cargo)) { - $id_cargo = $id_cargo['id_cargo']; - } - $resultado = mysqli_query($conexao, "SELECT * FROM permissao WHERE id_cargo=$id_cargo and id_recurso=11"); - if (!is_bool($resultado) and mysqli_num_rows($resultado)) { - $permissao = mysqli_fetch_array($resultado); - if ($permissao['id_acao'] < 3) { - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=$msg"); + +// Prepare and execute the first query to get id_cargo +$stmt = $mysqli->prepare("SELECT id_cargo FROM funcionario WHERE id_pessoa = ?"); +$stmt->bind_param("i", $id_pessoa); +$stmt->execute(); +$resultado = $stmt->get_result(); + +// Check if we have a valid result +if ($resultado && $row = $resultado->fetch_assoc()) { + $id_cargo = $row['id_cargo']; + + // Prepare and execute the second query to check permissions + $stmt = $mysqli->prepare("SELECT id_acao FROM permissao WHERE id_cargo = ? AND id_recurso = 11"); + $stmt->bind_param("i", $id_cargo); + $stmt->execute(); + $resultado = $stmt->get_result(); + + if ($resultado && $row = $resultado->fetch_assoc()) { + // Check the permission level + if ($row['id_acao'] < 3) { + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; + } + $permissao = $row['id_acao']; + } else { + // No valid permission found + $permissao = 1; + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; } - $permissao = $permissao['id_acao']; - } else { +} else { + // No valid cargo found $permissao = 1; $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=$msg"); - } -} else { - $permissao = 1; - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=$msg"); + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; } +// Close statement and connection +$stmt->close(); +$mysqli->close(); + + require_once ROOT . "/controle/FuncionarioControle.php"; $listaCPF = new FuncionarioControle; $listaCPF->listarCpf(); From 14e025e8e19e3b08841160d59dc1fd726adf99e8 Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 12 Sep 2024 15:01:08 -0300 Subject: [PATCH 09/19] Issue [#263] --- html/pet/erro.php | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/html/pet/erro.php b/html/pet/erro.php index adad721f..ad70a4d5 100644 --- a/html/pet/erro.php +++ b/html/pet/erro.php @@ -7,11 +7,45 @@ Document - \ No newline at end of file From 4e7a82db4d102368a629449557126f9ac81cf66d Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 12 Sep 2024 15:08:21 -0300 Subject: [PATCH 10/19] Issue [#262] --- html/pet/foto.php | 53 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/html/pet/foto.php b/html/pet/foto.php index bf20e371..4fd19496 100644 --- a/html/pet/foto.php +++ b/html/pet/foto.php @@ -11,15 +11,50 @@ } require_once $dao; } -$post = json_decode(file_get_contents("php://input")); -$arr = []; -foreach($post as $valor){ - $id = $valor; + +// Recebe o JSON e decodifica +$post = json_decode(file_get_contents("php://input"), true); + +if (json_last_error() !== JSON_ERROR_NONE) { + // Se houver um erro na decodificação JSON + http_response_code(400); + echo json_encode(["error" => "Dados JSON inválidos"]); + exit; } -$pdo = new PDO('mysql:host='.DB_HOST.'; dbname='.DB_NAME.'; charset=utf8',DB_USER,DB_PASSWORD); -$resultado = $pdo->query("SELECT p.id_pet_foto AS id_foto, pf.arquivo_foto_pet AS 'imagem' FROM pet p, -pet_foto pf WHERE p.id_pet_foto=pf.id_pet_foto and p.id_pet=$id"); -$petImagem = $resultado->fetch(); +// Valida e sanitiza o ID recebido +if (!isset($post['id']) || !is_numeric($post['id']) || intval($post['id']) <= 0) { + // Se o ID não estiver presente ou não for um número positivo + http_response_code(400); + echo json_encode(["error" => "ID inválido"]); + exit; +} + +$id = intval($post['id']); // Sanitiza o ID convertendo para inteiro + +// Conecta ao banco de dados usando PDO +try { + $pdo = new PDO('mysql:host='.DB_HOST.'; dbname='.DB_NAME.'; charset=utf8', DB_USER, DB_PASSWORD); + $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); -echo json_encode($petImagem); \ No newline at end of file + // Prepara a consulta com um parâmetro + $stmt = $pdo->prepare(" + SELECT p.id_pet_foto AS id_foto, pf.arquivo_foto_pet AS imagem + FROM pet p + JOIN pet_foto pf ON p.id_pet_foto = pf.id_pet_foto + WHERE p.id_pet = :id + "); + $stmt->bindParam(':id', $id, PDO::PARAM_INT); + $stmt->execute(); + + // Busca o resultado + $petImagem = $stmt->fetch(PDO::FETCH_ASSOC); + + // Retorna o resultado como JSON + echo json_encode($petImagem); + +} catch (PDOException $e) { + // Se houver um erro na consulta ou na conexão + http_response_code(500); + echo json_encode(["error" => "Erro no banco de dados: " . $e->getMessage()]); +} From c439564003b82374f02bfe8bb38440075d33ed30 Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 12 Sep 2024 15:16:48 -0300 Subject: [PATCH 11/19] Issue [#261] --- html/pet/historico_pet.php | 84 ++++++++++++++++++++++++++++---------- 1 file changed, 62 insertions(+), 22 deletions(-) diff --git a/html/pet/historico_pet.php b/html/pet/historico_pet.php index 504435eb..42dacbb0 100644 --- a/html/pet/historico_pet.php +++ b/html/pet/historico_pet.php @@ -19,32 +19,72 @@ } require_once($config_path); } - $conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); + + // Conecta ao banco de dados + $conexao = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); + + // Verifica se a conexão foi bem-sucedida + if ($conexao->connect_error) { + die("Falha na conexão: " . $conexao->connect_error); + } + + // Inicia a sessão + session_start(); + + // Obtém o ID da pessoa da sessão $id_pessoa = $_SESSION['id_pessoa']; - $resultado = mysqli_query($conexao, "SELECT * FROM funcionario WHERE id_pessoa=$id_pessoa"); - if(!is_null($resultado)){ - $id_cargo = mysqli_fetch_array($resultado); - if(!is_null($id_cargo)){ - $id_cargo = $id_cargo['id_cargo']; - } - $resultado = mysqli_query($conexao, "SELECT * FROM permissao p JOIN acao a ON(p.id_acao=a.id_acao) JOIN recurso r ON(p.id_recurso=r.id_recurso) WHERE id_cargo=$id_cargo AND a.descricao = 'LER, GRAVAR E EXECUTAR' AND r.descricao='Módulo Saúde'"); - if(!is_bool($resultado) and mysqli_num_rows($resultado)){ - $permissao = mysqli_fetch_array($resultado); - if($permissao['id_acao'] < 5){ - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=$msg"); + + // Prepara e executa a consulta para obter o id_cargo + $stmt = $conexao->prepare("SELECT id_cargo FROM funcionario WHERE id_pessoa = ?"); + $stmt->bind_param("i", $id_pessoa); + $stmt->execute(); + $resultado = $stmt->get_result(); + + // Verifica se o resultado é válido + if ($resultado && $row = $resultado->fetch_assoc()) { + $id_cargo = $row['id_cargo']; + + // Prepara e executa a consulta para verificar permissões + $stmt = $conexao->prepare(" + SELECT p.id_acao + FROM permissao p + JOIN acao a ON p.id_acao = a.id_acao + JOIN recurso r ON p.id_recurso = r.id_recurso + WHERE p.id_cargo = ? + AND a.descricao = 'LER, GRAVAR E EXECUTAR' + AND r.descricao = 'Módulo Saúde' + "); + $stmt->bind_param("i", $id_cargo); + $stmt->execute(); + $resultado = $stmt->get_result(); + + if ($resultado && $row = $resultado->fetch_assoc()) { + // Verifica o nível de permissão + if ($row['id_acao'] < 5) { + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; } - $permissao = $permissao['id_acao']; - }else{ - $permissao = 1; - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=$msg"); - } - }else{ + $permissao = $row['id_acao']; + } else { + // Permissão não encontrada + $permissao = 1; + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; + } + } else { + // ID da pessoa não encontrado $permissao = 1; $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../../home.php?msg_c=$msg"); - } + header("Location: ../home.php?msg_c=" . urlencode($msg)); + exit; + } + + // Fecha a declaração e a conexão + $stmt->close(); + $conexao->close(); + // Adiciona a Função display_campo($nome_campo, $tipo_campo) require_once "../personalizacao_display.php"; From b7a940f74a32469348d6610369aa15e55a13dd07 Mon Sep 17 00:00:00 2001 From: nicolly015 Date: Thu, 12 Sep 2024 15:17:55 -0300 Subject: [PATCH 12/19] Corrigindo issue [#368] --- html/atendido/documento.php | 62 ++++++++++++++++++++++++++++++------- 1 file changed, 51 insertions(+), 11 deletions(-) diff --git a/html/atendido/documento.php b/html/atendido/documento.php index 55afd505..400175e2 100644 --- a/html/atendido/documento.php +++ b/html/atendido/documento.php @@ -11,23 +11,47 @@ class DocumentoAtendido { // Constructor + // function __construct($id) + // { + // $id = (int) $id; + // $this->setid_fundocs($id); + // try { + // $pdo = Conexao::connect(); + // $query = $pdo->query("SELECT arquivo_extensao, arquivo_nome, arquivo FROM atendido_documentacao WHERE idatendido_documentacao = $id ;"); + // $query = $query->fetch(PDO::FETCH_ASSOC); + // $this->setDocumento(base64_decode(gzuncompress($query["arquivo"]))); + // $this->setExtensao($query["arquivo_extensao"]); + // $this->setNome($query["arquivo_nome"]); + // } catch (PDOException $e) { + // $this->setException("Houve um erro ao consultar o documento no banco de dados: $e"); + // } + // } + function __construct($id) { $id = (int) $id; $this->setid_fundocs($id); try { $pdo = Conexao::connect(); - $query = $pdo->query("SELECT arquivo_extensao, arquivo_nome, arquivo FROM atendido_documentacao WHERE idatendido_documentacao = $id ;"); - $query = $query->fetch(PDO::FETCH_ASSOC); - $this->setDocumento(base64_decode(gzuncompress($query["arquivo"]))); - $this->setExtensao($query["arquivo_extensao"]); - $this->setNome($query["arquivo_nome"]); + $prep = $pdo->prepare("SELECT arquivo_extensao, arquivo_nome, arquivo FROM atendido_documentacao WHERE idatendido_documentacao = :id;"); + $prep->bindValue(':id', $id, PDO::PARAM_INT); + $prep->execute(); + $query = $prep->fetch(PDO::FETCH_ASSOC); + + if ($query) { + $this->setDocumento(base64_decode(gzuncompress($query["arquivo"]))); + $this->setExtensao($query["arquivo_extensao"]); + $this->setNome($query["arquivo_nome"]); + } else { + $this->setException("Documento não encontrado."); + } } catch (PDOException $e) { - $this->setException("Houve um erro ao consultar o documento no banco de dados: $e"); + $this->setException("Houve um erro ao consultar o documento no banco de dados: " . $e->getMessage()); } } + // Getters & Setters public function getid_fundocs() @@ -93,14 +117,30 @@ public function setNome($nome) // Metodos + // function delete(){ + // try { + // $pdo = Conexao::connect(); + // $query = $pdo->query("DELETE FROM atendido_documentacao WHERE idatendido_documentacao = ".$this->getid_fundocs()." ;"); + // $query = $query->fetch(PDO::FETCH_ASSOC); + // } catch (PDOException $e) { + // $this->setException("Houve um erro ao remover o documento do banco de dados: $e"); + // } + // } + function delete(){ try { $pdo = Conexao::connect(); - $query = $pdo->query("DELETE FROM atendido_documentacao WHERE idatendido_documentacao = ".$this->getid_fundocs()." ;"); - $query = $query->fetch(PDO::FETCH_ASSOC); + $prep = $pdo->prepare("DELETE FROM atendido_documentacao WHERE idatendido_documentacao = :id;"); + $prep->bindValue(':id', $this->getid_fundocs(), PDO::PARAM_INT); + $prep->execute(); + + if ($prep->rowCount() > 0) { + // Deletado com sucesso + } else { + $this->setException("Documento não encontrado para exclusão."); + } } catch (PDOException $e) { - $this->setException("Houve um erro ao remover o documento do banco de dados: $e"); + $this->setException("Houve um erro ao remover o documento do banco de dados: " . $e->getMessage()); } - } - + } } From fe4376da1260096fd63d197571c9552cb789fd8f Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 12 Sep 2024 16:19:56 -0300 Subject: [PATCH 13/19] Issue [#257] --- html/pet/profile_pet.php | 58 ++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/html/pet/profile_pet.php b/html/pet/profile_pet.php index 6333fa54..e40c7988 100644 --- a/html/pet/profile_pet.php +++ b/html/pet/profile_pet.php @@ -1006,32 +1006,38 @@ function excluirArquivo(dado){ } } - function addTipoExame() - { - url = '../../dao/pet/adicionar_tipo_exame.php'; - var tipo_exame = window.prompt("Cadastre um novo tipo de exame:"); - if (!tipo_exame) - { - return - } - tipo_exame = tipo_exame.trim(); - if (tipo_exame == '') - { - return - } - data = 'tipo_exame=' + tipo_exame; - $.ajax( - { - type: "POST", - url: url, - data: data, - success: function(response) - { - gerarTipoExamePet(response); - }, - dataType: 'text' - }) - } + async function addTipoExame() { + const url = '../../dao/pet/adicionar_tipo_exame.php'; + let tipoExame = window.prompt("Cadastre um novo tipo de exame:"); + + if (!tipoExame) { + return; + } + + tipoExame = tipoExame.trim(); + if (tipoExame === '') { + return; + } + + const data = new URLSearchParams({ tipo_exame: tipoExame }); + + try { + const response = await fetch(url, { + method: 'POST', + body: data, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + }); + + if (!response.ok) { + throw new Error('Network response was not ok'); + } + + const responseText = await response.text(); + gerarTipoExamePet(responseText); + } catch (error) { + console.error('Error adding tipo exame:', error); + } +} function gerarTipoExamePet(response) { From 190a1c556c8263753b2098f1922708f729c71d99 Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 12 Sep 2024 17:26:43 -0300 Subject: [PATCH 14/19] Corrigindo issue [#235] --- html/saude/exibir_alergia.php | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/html/saude/exibir_alergia.php b/html/saude/exibir_alergia.php index ecc4f2e5..e7d7331c 100644 --- a/html/saude/exibir_alergia.php +++ b/html/saude/exibir_alergia.php @@ -2,11 +2,17 @@ require_once'../../dao/Conexao.php'; $pdo = Conexao::connect(); - $sql = "select * from saude_tabelacid WHERE CID LIKE 'T78.4.%'"; - $stmt = $pdo->query($sql); - $resultado = array(); - while ($row = $stmt->fetch()) { - $resultado[] = array('id_CID'=>$row['id_CID'],'CID'=>$row['CID'],'descricao'=>$row['descricao']); - } - echo json_encode($resultado); + try{ + $sql = "select * from saude_tabelacid WHERE CID LIKE 'T78.4.%'"; + $stmt = $pdo->query($sql); + $resultado = array(); + while ($row = $stmt->fetch()) { + $resultado[] = array('id_CID'=>$row['id_CID'],'CID'=>$row['CID'],'descricao'=>$row['descricao']); + } + echo json_encode($resultado); + }catch (PDOException $e) { + echo("Houve um erro ao realizar a exibição da alergia:

$e"); + } + + ?> \ No newline at end of file From 1bd7155e639ac91ff0ac00d02b017c18b777d62c Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 13 Sep 2024 11:26:43 -0300 Subject: [PATCH 15/19] issues matpat --- html/cadastro_destino.php | 50 +++++++++++++++++++++++++-------------- html/cadastro_entrada.php | 4 ++-- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/html/cadastro_destino.php b/html/cadastro_destino.php index be420a53..b10388fa 100755 --- a/html/cadastro_destino.php +++ b/html/cadastro_destino.php @@ -99,22 +99,23 @@ function validarCPF(strCPF) { } function FormataCnpj(campo, teclapres) { - var tecla = teclapres.keyCode; - var vr = new String(campo.value); - vr = vr.replace(".", ""); - vr = vr.replace("/", ""); - vr = vr.replace("-", ""); - tam = vr.length + 1; - if (tecla != 14) { - if (tam == 3) - campo.value = vr.substr(0, 2) + '.'; - if (tam == 6) - campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 5) + '.'; - if (tam == 10) - campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(6, 3) + '/'; - if (tam == 15) - campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(6, 3) + '/' + vr.substr(9, 4) + '-' + vr.substr(13, 2); - } +var tecla = teclapres.keyCode; +var vr = campo.value.replace(/\D/g, ''); // Remove todos os caracteres não numéricos +var tam = vr.length; + +if (tecla != 8) { // Ignora o backspace + if (tam <= 2) { + campo.value = vr; // Ex: 12 + } else if (tam <= 5) { + campo.value = vr.substr(0, 2) + '.' + vr.substr(2); // Ex: 12.345 + } else if (tam <= 8) { + campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(5); // Ex: 12.345.678 + } else if (tam <= 12) { + campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(5, 3) + '/' + vr.substr(8); // Ex: 12.345.678/9012 + } else { + campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(5, 3) + '/' + vr.substr(8, 4) + '-' + vr.substr(12, 2); // Ex: 12.345.678/9012-34 + } +} } function validarCNPJ(cnpj) { @@ -177,6 +178,19 @@ function exibirCNPJ(cnpj) { document.getElementById("enviar").disabled = false; } } + function permitirSomenteCNPJ(e) { + var tecla = e.key; + + // Permite números (0-9), "/", "-", ".", e teclas de controle como Backspace, Delete, Tab, etc. + var regex = /^[0-9\/\.\-]$/; + + // Se a tecla não for permitida, cancela o evento + if (!regex.test(tecla) && !['Backspace', 'Tab', 'ArrowLeft', 'ArrowRight', 'Delete'].includes(tecla)) { + e.preventDefault(); + + } +} +