diff --git a/classes/Atendido_ocorrenciaDoc.php b/classes/Atendido_ocorrenciaDoc.php index 70ba66b9..df3b1497 100644 --- a/classes/Atendido_ocorrenciaDoc.php +++ b/classes/Atendido_ocorrenciaDoc.php @@ -30,17 +30,25 @@ public function getExtensao() public function getNome() { - return $this->nome; + return htmlspecialchars($this->nome, ENT_QUOTES, 'UTF-8'); } public function setIdatendido_ocorrencia_doc($idatendido_ocorrencia_doc) { - $this->idatendido_ocorrencia_doc = $idatendido_ocorrencia_doc; + if (is_int($idatendido_ocorrencia_doc)) { + $this->idatendido_ocorrencia_doc = $idatendido_ocorrencia_doc; + } else { + throw new InvalidArgumentException("ID inválido"); + } } public function setAtentido_ocorrencia_idatentido_ocorrencias($atentido_ocorrencia_idatentido_ocorrencias) { - $this->atentido_ocorrencia_idatentido_ocorrencias = $atentido_ocorrencia_idatentido_ocorrencias; + if (is_int($atentido_ocorrencia_idatentido_ocorrencias)) { + $this->atentido_ocorrencia_idatentido_ocorrencias = $atentido_ocorrencia_idatentido_ocorrencias; + } else { + throw new InvalidArgumentException("ID da ocorrência inválido"); + } } public function setAnexo($anexo) @@ -50,12 +58,17 @@ public function setAnexo($anexo) public function setExtensao($extensao) { - $this->extensao = $extensao; + $extensoesPermitidas = ['jpg', 'jpeg', 'png', 'pdf']; + if (in_array(strtolower($extensao), $extensoesPermitidas)) { + $this->extensao = $extensao; + } else { + throw new InvalidArgumentException("Extensão de arquivo inválida"); + } } public function setNome($nome) { - $this->nome = $nome; + $this->nome = filter_var($nome, FILTER_SANITIZE_STRING); } } -?> \ No newline at end of file +?> diff --git a/html/funcionario/dependente_editarEndereco.php b/html/funcionario/dependente_editarEndereco.php index cd9be086..21ef8ea2 100644 --- a/html/funcionario/dependente_editarEndereco.php +++ b/html/funcionario/dependente_editarEndereco.php @@ -27,6 +27,18 @@ $complemento = $_POST['complemento']; $ibge = $_POST['ibge']; + if (!preg_match('/^\d{5}-\d{3}$/', $cep)) { + die("CEP inválido"); + } + + if (!is_numeric($numero)) { + die("Número de residência inválido"); + } + + if (empty($estado) || empty($cidade) || empty($bairro) || empty($rua)) { + die("Preencha todos os campos obrigatórios."); + } + define("ALTERAR_END", "UPDATE pessoa SET cep=:cep, estado=:estado, cidade=:cidade, bairro=:bairro, logradouro=:rua, numero_endereco=:numero, complemento=:complemento, ibge=:ibge where id_pessoa = :id"); diff --git a/html/funcionario/dependente_parentesco_adicionar.php b/html/funcionario/dependente_parentesco_adicionar.php index d5e5e1cb..86cf1427 100644 --- a/html/funcionario/dependente_parentesco_adicionar.php +++ b/html/funcionario/dependente_parentesco_adicionar.php @@ -3,21 +3,43 @@ session_start(); if (!isset($_SESSION["usuario"])) { header("Location: ../../index.php"); + exit(); } -// Verifica Permissão do Usuário + require_once '../permissao/permissao.php'; permissao($_SESSION['id_pessoa'], 11, 7); require_once '../../dao/Conexao.php'; + try { $pdo = Conexao::connect(); $descricao = $_POST["descricao"]; - $stmt = $pdo->prepare("INSERT INTO funcionario_dependente_parentesco (descricao) VALUES ('$descricao')"); + + if (empty($descricao)) { + echo "Descrição não pode estar vazia."; + exit(); + } + + + $stmt = $pdo->prepare("INSERT INTO funcionario_dependente_parentesco (descricao) VALUES (:descricao)"); + $stmt->bindParam(':descricao', $descricao); $stmt->execute(); + + + echo "Dependente adicionado com sucesso."; } catch (PDOException $e) { - $e->getMessage(); + + error_log($e->getMessage()); + echo "Ocorreu um erro ao adicionar o dependente. Tente novamente mais tarde."; } +if (isset($_SESSION['id_pessoa'])) { + permissao($_SESSION['id_pessoa'], 11, 7); +} else { + echo "Permissão inválida."; + exit(); +} + die(); diff --git a/html/funcionario/documento_download.php b/html/funcionario/documento_download.php index e2816e5e..be21f06c 100644 --- a/html/funcionario/documento_download.php +++ b/html/funcionario/documento_download.php @@ -1,12 +1,11 @@ - 'image/png', 'jpeg' => 'image/jpeg', 'pdf' => 'application/pdf', - 'docx' => 'application/docx', - 'doc' => 'application/doc', - 'odp' => 'application/odp', + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'doc' => 'application/msword', + 'odp' => 'application/vnd.oasis.opendocument.presentation', ]); -$arquivo = new DocumentoFuncionario($_GET["id_doc"]); +$id_doc = filter_var($_GET["id_doc"], FILTER_VALIDATE_INT); + +if ($id_doc !== false && $id_doc > 0) { + $arquivo = new DocumentoFuncionario($id_doc); -if (!$arquivo->getException()){ - header("Content-type: ".TYPEOF_EXTENSION[$arquivo->getExtensao()]); - header("Content-Disposition: attachment; filename=".$arquivo->getNome()); - ob_clean(); - flush(); - echo $arquivo->getDocumento(); -}else{ - echo $arquivo->getException(); + if (!$arquivo->getException()) { + header("Content-Type: " . TYPEOF_EXTENSION[$arquivo->getExtensao()]); + header("Content-Disposition: attachment; filename=" . $arquivo->getNome()); + + ob_clean(); + flush(); + + echo $arquivo->getDocumento(); + } else { + echo $arquivo->getException(); + } +} else { + echo "ID de documento inválido."; } die(); +?>