From c9bcb6073173b35531481612c925f0da7a1bb7d0 Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 23 Oct 2024 15:15:07 -0300 Subject: [PATCH 01/10] Corrigindo Issue [#238] --- html/saude/exame_excluir.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/html/saude/exame_excluir.php b/html/saude/exame_excluir.php index 630cb3d4..b4f7d429 100644 --- a/html/saude/exame_excluir.php +++ b/html/saude/exame_excluir.php @@ -17,16 +17,22 @@ require_once "exame.php"; extract($_GET); +$id_fichamedica = isset($_GET['id_fichamedica']) ? $_GET['id_fichamedica'] : null; $arquivo = new ExameSaude($id_doc); if (!$arquivo->getException()){ $arquivo->delete(); - $sql = "SELECT se.id_exame, se.arquivo_nome, ada.descricao, se.`data` FROM saude_exames se JOIN saude_exame_tipos ada ON se.id_exame_tipos = ada.id_exame_tipo WHERE id_fichamedica =" . $_GET['id_fichamedica'] . ";"; + $sql = "SELECT se.id_exame, se.arquivo_nome, ada.descricao, se.`data` FROM saude_exames se JOIN saude_exame_tipos ada ON se.id_exame_tipos = ada.id_exame_tipo WHERE id_fichamedica = ?;"; + $pdo = Conexao::connect(); - $docfuncional = $pdo->query($sql); - $docfuncional = $docfuncional->fetchAll(PDO::FETCH_ASSOC); + $stmt = $pdo->prepare($sql); + $stmt->bindParam(1, $id_fichamedica, PDO::PARAM_INT); // Bind do parâmetro + $stmt->execute(); + + $docfuncional = $stmt->fetchAll(PDO::FETCH_ASSOC); $docfuncional = json_encode($docfuncional); + echo $docfuncional; }else{ From 4eb95ec2956e3448bf2a12f20ff2cb4251d6212f Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 23 Oct 2024 17:02:58 -0300 Subject: [PATCH 02/10] Corrigindo Issue [#239] --- html/saude/exame_download.php | 65 +++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 15 deletions(-) diff --git a/html/saude/exame_download.php b/html/saude/exame_download.php index 32a59710..675020c3 100644 --- a/html/saude/exame_download.php +++ b/html/saude/exame_download.php @@ -13,31 +13,66 @@ require_once "exame.php"; $conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); -$id_pessoa = $_SESSION['id_pessoa']; -$resultado = mysqli_query($conexao, "SELECT * FROM funcionario WHERE id_pessoa=$id_pessoa"); +$id_pessoa = isset($_SESSION['id_pessoa']) ? $_SESSION['id_pessoa'] : null; +try { + $stmt = $conexao->prepare("SELECT * FROM funcionario WHERE id_pessoa=?"); + + if (!$stmt) { + throw new Exception("Erro na preparação da consulta: " . $conexao->error); + } + $stmt->bind_param("i", $id_pessoa); + $stmt->execute(); + + $resultado = $stmt->get_result(); + + // Aqui você pode processar os resultados como necessário + + $stmt->close(); + } catch (PDOException $e) { + echo "Ocorreu um erro: " . $e->getMessage(); + } + 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=5"); - 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']; + + try { + $stmt = $conexao->prepare("SELECT * FROM permissao WHERE id_cargo = ? and id_recurso=5"); + + if (!$stmt) { + throw new Exception("Erro na preparação da consulta: " . $conexao->error); + } + $stmt->bind_param("i", $id_cargo); + $stmt->execute(); + + $resultado = $stmt->get_result(); + + // Aqui você pode processar os resultados como necessário + + $stmt->close(); + } catch (PDOException $e) { + echo "Ocorreu um erro: " . $e->getMessage(); + } + + if(!is_bool($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{ + $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"); } -}else{ - $permissao = 1; -$msg = "Você não tem as permissões necessárias para essa página."; -header("Location: ../home.php?msg_c=$msg"); -} From 75b944d0a89d8c0a07c5762db193a6a6715acbb2 Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 24 Oct 2024 14:56:16 -0300 Subject: [PATCH 03/10] Corrigindo Issue [#237] --- html/saude/exame_upload.php | 78 +++++++++++++++++++++++++++---------- 1 file changed, 58 insertions(+), 20 deletions(-) diff --git a/html/saude/exame_upload.php b/html/saude/exame_upload.php index 9545cd8b..17554569 100644 --- a/html/saude/exame_upload.php +++ b/html/saude/exame_upload.php @@ -1,49 +1,87 @@ -
 prepare("INSERT INTO saude_exames(id_fichamedica, id_exame_tipos, data, arquivo_nome, arquivo_extensao,arquivo) VALUES ( :id_fichamedica, :id_exame_tipos, :data, :arquivo_nome , :arquivo_extensao, :arquivo )");
+        $prep = $pdo->prepare("INSERT INTO saude_exames(id_fichamedica, id_exame_tipos, data, arquivo_nome, arquivo_extensao, arquivo) VALUES (:id_fichamedica, :id_exame_tipos, :data, :arquivo_nome, :arquivo_extensao, :arquivo)");
+
+        // Sanitização dos dados
+        $id_fichamedica = htmlspecialchars($id_fichamedica);
+        $id_docfuncional = htmlspecialchars($id_docfuncional);
+        $dataExame = date('Y/m/d');
 
         $prep->bindValue(":id_fichamedica", $id_fichamedica);
         $prep->bindValue(":id_exame_tipos", $id_docfuncional);
         $prep->bindValue(":arquivo_nome", $arquivo_nome);
         $prep->bindValue(":arquivo_extensao", $extensao_nome);
         $prep->bindValue(":arquivo", gzcompress($arquivo_b64));
-
-        $dataExame = date('Y/m/d');
         $prep->bindValue(":data", $dataExame);
 
         $prep->execute();
-        
+
         header("Location: profile_paciente.php?id_fichamedica=$id_fichamedica");
+        exit();
     } catch (PDOException $e) {
-        echo("Houve um erro ao realizar o upload do exame:

$e"); + echo "Houve um erro ao realizar o upload do exame:

" . htmlspecialchars($e->getMessage()); } - - -}else { +} else { header("Location: profile_paciente.php"); + exit(); } - - From 0e5882d0f8bacd212dbc8df5945430b31d169088 Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 24 Oct 2024 16:42:46 -0300 Subject: [PATCH 04/10] Corrigindo Issue [#242] --- html/saude/enfermidade_excluir.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/html/saude/enfermidade_excluir.php b/html/saude/enfermidade_excluir.php index c4fd9dfb..69b9c478 100644 --- a/html/saude/enfermidade_excluir.php +++ b/html/saude/enfermidade_excluir.php @@ -17,17 +17,26 @@ require_once "enfermidade.php"; extract($_GET); +$id_fichamedica = isset($_GET['id_fichamedica']) ? $_GET['id_fichamedica'] : null; $en = new EnfermidadeSaude($id_doc); if (!$en->getException()){ $en->delete(); - $sql = "SELECT se.id_CID, se.data_diagnostico, se.status, stc.descricao FROM saude_enfermidades se JOIN saude_tabelacid stc ON se.id_CID = stc.id_CID WHERE status = 1 AND id_fichamedica =" . $_GET['id_fichamedica'] . ";"; - $pdo = Conexao::connect(); - $enfermidades = $pdo->query($sql); - $enfermidades = $enfermidades->fetchAll(PDO::FETCH_ASSOC); - $enfermidades = json_encode($enfermidades); - echo $enfermidades; + try{ + $sql = "SELECT se.id_CID, se.data_diagnostico, se.status, stc.descricao FROM saude_enfermidades se JOIN saude_tabelacid stc ON se.id_CID = stc.id_CID WHERE status = 1 AND id_fichamedica = ? ;"; + + $pdo = Conexao::connect(); + $stmt = $pdo->prepare($sql); + $stmt->bindParam(1, $id_fichamedica, PDO::PARAM_INT); // Bind do parâmetro + $stmt->execute(); + + $enfermidades = $stmt->fetchAll(PDO::FETCH_ASSOC); + $enfermidades = json_encode($enfermidades); + echo $enfermidades; + }catch(PDOException $e){ + echo "Houve um erro ao realizar a exclusão da enfermidade:

" . htmlspecialchars($e->getMessage()); + } }else{ echo $en->getException(); } From fdc0ee2f82be220c78aef3d5bb4dbcce9d26092d Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 25 Oct 2024 15:31:07 -0300 Subject: [PATCH 05/10] Corrigindo Issue [#241] --- html/saude/enfermidade_upload.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/saude/enfermidade_upload.php b/html/saude/enfermidade_upload.php index 5437b6cf..977c5c49 100644 --- a/html/saude/enfermidade_upload.php +++ b/html/saude/enfermidade_upload.php @@ -27,7 +27,8 @@ header("Location: profile_paciente.php?id_fichamedica=$id_fichamedica"); } catch (PDOException $e) { - echo("Houve um erro ao realizar o cadastro da enfermidade:

$e"); + // Exibe mensagem de erro de forma segura + echo "Houve um erro ao realizar o cadastro da enfermidade:

" . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8'); } From 74800379ae1fa120c8789ed06d34c186711d7083 Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 25 Oct 2024 17:39:18 -0300 Subject: [PATCH 06/10] Corrigindo Issues [#240] --- html/saude/enfermidade.php | 44 +++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/html/saude/enfermidade.php b/html/saude/enfermidade.php index b2d574aa..5955e413 100644 --- a/html/saude/enfermidade.php +++ b/html/saude/enfermidade.php @@ -4,7 +4,8 @@ class EnfermidadeSaude { private $id_CID; - private $extensao; + private $data_diagnostico; + private $status; private $exception = false; function __construct($id) @@ -13,9 +14,20 @@ function __construct($id) $this->setid_CID($id); try { $pdo = Conexao::connect(); - $query = $pdo->query("SELECT id_CID, data_diagnostico, status FROM saude_enfermidades WHERE id_CID = $id;"); + $query = $pdo->prepare("SELECT id_CID, data_diagnostico, status FROM saude_enfermidades WHERE id_CID = :id_CID;"); + $query->bindValue(':id_CID', $id); + $query->execute(); + + // Verifica se algum resultado foi retornado + if ($query->rowCount() > 0) { + $result = $query->fetch(PDO::FETCH_ASSOC); + $this->data_diagnostico = $result['data_diagnostico']; + $this->status = $result['status']; + } else { + $this->setException("Nenhum dado encontrado para o ID: $id"); + } } 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: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8')); } } @@ -30,16 +42,14 @@ public function setid_CID($id_CID) return $this; } - public function getExtensao() + public function getDataDiagnostico() { - return $this->extensao; + return $this->data_diagnostico; } - public function setExtensao($extensao) + public function getStatus() { - $this->extensao = $extensao; - - return $this; + return $this->status; } public function getException() @@ -50,20 +60,20 @@ public function getException() public function setException($exception) { $this->exception = $exception; - return $this; } - // Metodos - // o excluir enfermidade é basicamente tornar o status da tabela inativo, por isso um update // - function delete(){ + // Métodos + function delete() { try { + $sql = "UPDATE saude_enfermidades SET status = 0 WHERE id_CID = :id_CID;"; $pdo = Conexao::connect(); - $query = $pdo->query("UPDATE saude_enfermidades SET status = 0 WHERE id_CID = ".$this->getid_CID()." ;"); - $query = $query->fetch(PDO::FETCH_ASSOC); + + $stmt = $pdo->prepare($sql); + $stmt->bindValue(':id_CID', $this->getid_CID()); + $stmt->execute(); } 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: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8')); } } - } From c0577a06b4170026ded84ea13e0cc0e68cc6bc09 Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 25 Oct 2024 17:52:44 -0300 Subject: [PATCH 07/10] Corrigindo Issues [#240] --- html/saude/enfermidade.php | 46 +++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/html/saude/enfermidade.php b/html/saude/enfermidade.php index 5955e413..19215d08 100644 --- a/html/saude/enfermidade.php +++ b/html/saude/enfermidade.php @@ -4,8 +4,7 @@ class EnfermidadeSaude { private $id_CID; - private $data_diagnostico; - private $status; + private $extensao; private $exception = false; function __construct($id) @@ -14,20 +13,9 @@ function __construct($id) $this->setid_CID($id); try { $pdo = Conexao::connect(); - $query = $pdo->prepare("SELECT id_CID, data_diagnostico, status FROM saude_enfermidades WHERE id_CID = :id_CID;"); - $query->bindValue(':id_CID', $id); - $query->execute(); - - // Verifica se algum resultado foi retornado - if ($query->rowCount() > 0) { - $result = $query->fetch(PDO::FETCH_ASSOC); - $this->data_diagnostico = $result['data_diagnostico']; - $this->status = $result['status']; - } else { - $this->setException("Nenhum dado encontrado para o ID: $id"); - } + $query = $pdo->query("SELECT id_CID, data_diagnostico, status FROM saude_enfermidades WHERE id_CID = $id;"); } catch (PDOException $e) { - $this->setException("Houve um erro ao consultar o documento no banco de dados: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8')); + $this->setException("Houve um erro ao consultar o documento no banco de dados: $e"); } } @@ -42,14 +30,16 @@ public function setid_CID($id_CID) return $this; } - public function getDataDiagnostico() + public function getExtensao() { - return $this->data_diagnostico; + return $this->extensao; } - public function getStatus() + public function setExtensao($extensao) { - return $this->status; + $this->extensao = $extensao; + + return $this; } public function getException() @@ -60,20 +50,24 @@ public function getException() public function setException($exception) { $this->exception = $exception; + return $this; } - // Métodos - function delete() { + // Metodos + // o excluir enfermidade é basicamente tornar o status da tabela inativo, por isso um update // + function delete(){ try { - $sql = "UPDATE saude_enfermidades SET status = 0 WHERE id_CID = :id_CID;"; + $sql = "UPDATE saude_enfermidades SET status = 0 WHERE id_CID = ".$this->getid_CID()." ;"; $pdo = Conexao::connect(); - $stmt = $pdo->prepare($sql); - $stmt->bindValue(':id_CID', $this->getid_CID()); - $stmt->execute(); + $stmt = $pdo->prepare($sql); + $stmt->execute(); + + $query = $stmt->fetch(PDO::FETCH_ASSOC); } catch (PDOException $e) { - $this->setException("Houve um erro ao remover o documento do banco de dados: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8')); + $this->setException("Houve um erro ao remover o documento do banco de dados: $e"); } } + } From e5d39c83fa43cb73b1205ac1d00935eb3d1b53a2 Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 25 Oct 2024 18:13:45 -0300 Subject: [PATCH 08/10] Corrigindo Issues [#240] --- html/saude/enfermidade.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/html/saude/enfermidade.php b/html/saude/enfermidade.php index 19215d08..a07eda22 100644 --- a/html/saude/enfermidade.php +++ b/html/saude/enfermidade.php @@ -62,11 +62,12 @@ function delete(){ $pdo = Conexao::connect(); $stmt = $pdo->prepare($sql); - $stmt->execute(); + $stmt->bindValue(':id_CID', $this->getid_CID()); + $stmt->execute(); $query = $stmt->fetch(PDO::FETCH_ASSOC); } 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: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8')); } } From 77d664ef1024fb819a67f4b82ffbd56cc6e5e851 Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 25 Oct 2024 18:16:10 -0300 Subject: [PATCH 09/10] Corrigindo Issue [#240] --- html/saude/enfermidade.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/html/saude/enfermidade.php b/html/saude/enfermidade.php index a07eda22..96f25d6b 100644 --- a/html/saude/enfermidade.php +++ b/html/saude/enfermidade.php @@ -13,6 +13,18 @@ function __construct($id) $this->setid_CID($id); try { $pdo = Conexao::connect(); + $query = $pdo->prepare("SELECT id_CID, data_diagnostico, status FROM saude_enfermidades WHERE id_CID = :id_CID;"); + $query->bindValue(':id_CID', $id); + $query->execute(); + + // Verifica se algum resultado foi retornado + if ($query->rowCount() > 0) { + $result = $query->fetch(PDO::FETCH_ASSOC); + $this->data_diagnostico = $result['data_diagnostico']; + $this->status = $result['status']; + } else { + $this->setException("Nenhum dado encontrado para o ID: $id"); + } $query = $pdo->query("SELECT id_CID, data_diagnostico, status FROM saude_enfermidades WHERE id_CID = $id;"); } catch (PDOException $e) { $this->setException("Houve um erro ao consultar o documento no banco de dados: $e"); From 9d2e31ee2f786e46571c07141c20fc9e72f0f35e Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 25 Oct 2024 18:17:55 -0300 Subject: [PATCH 10/10] Corrigindo Issue [#240] --- html/saude/enfermidade.php | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/html/saude/enfermidade.php b/html/saude/enfermidade.php index 96f25d6b..a9855278 100644 --- a/html/saude/enfermidade.php +++ b/html/saude/enfermidade.php @@ -13,18 +13,6 @@ function __construct($id) $this->setid_CID($id); try { $pdo = Conexao::connect(); - $query = $pdo->prepare("SELECT id_CID, data_diagnostico, status FROM saude_enfermidades WHERE id_CID = :id_CID;"); - $query->bindValue(':id_CID', $id); - $query->execute(); - - // Verifica se algum resultado foi retornado - if ($query->rowCount() > 0) { - $result = $query->fetch(PDO::FETCH_ASSOC); - $this->data_diagnostico = $result['data_diagnostico']; - $this->status = $result['status']; - } else { - $this->setException("Nenhum dado encontrado para o ID: $id"); - } $query = $pdo->query("SELECT id_CID, data_diagnostico, status FROM saude_enfermidades WHERE id_CID = $id;"); } catch (PDOException $e) { $this->setException("Houve um erro ao consultar o documento no banco de dados: $e"); @@ -74,12 +62,11 @@ function delete(){ $pdo = Conexao::connect(); $stmt = $pdo->prepare($sql); - $stmt->bindValue(':id_CID', $this->getid_CID()); $stmt->execute(); $query = $stmt->fetch(PDO::FETCH_ASSOC); } catch (PDOException $e) { - $this->setException("Houve um erro ao remover o documento do banco de dados: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8')); + $this->setException("Houve um erro ao remover o documento do banco de dados: $e"); } }