sistema/painel/paginas/simulador/salvar.php
Endpoint que salva metadados da simulação e trata upload da foto original.
Endpoint que salva metadados da simulação e trata upload da foto original.
Dependências observadas:
Conexão PDO / configurações globaisUpload de arquivosBanco de dados
Endpoint AJAX de persistência
Simulador
170
| Linha | Código | Explicação técnica |
|---|---|---|
| 1 | <?php | Abre um bloco PHP. A partir daqui o arquivo passa a executar lógica no servidor. |
| 2 | require_once("../../../conexao.php"); | Importa `../../../conexao.php` para disponibilizar conexão, sessão, funções utilitárias ou validações necessárias ao restante do fluxo. |
| 3 | $tabela = 'simulacoes_protese'; | Centraliza o nome da tabela `simulacoes_protese` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo. |
| 4 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 5 | $id = @$_POST['id']; | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 6 | $cliente = @$_POST['cliente']; | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 7 | $id_protese = @$_POST['id_protese']; | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 8 | $observacoes = @$_POST['observacoes']; | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 9 | $data_simulacao = @$_POST['data_simulacao']; | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 10 | $foto_original_atual = @$_POST['foto_original_atual']; | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 11 | $imagem_simulada_atual = @$_POST['imagem_simulada_atual']; | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 12 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 13 | if($cliente == ""){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 14 | echo 'Selecione um Cliente'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 15 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 16 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 17 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 18 | if($id_protese == ""){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 19 | echo 'Selecione uma Prótese'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 20 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 21 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 22 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 23 | if($data_simulacao == ""){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 24 | echo 'Informe a Data da Simulação'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 25 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 26 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 27 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 28 | $nome_img_original = $foto_original_atual; | Define a variável `$nome_img_original`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 29 | $nome_img_simulada = $imagem_simulada_atual; | Define a variável `$nome_img_simulada`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 30 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 31 | $pasta_upload = __DIR__ . '/../../images/simulacoes/'; | Define a variável `$pasta_upload`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 32 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 33 | if(!is_dir($pasta_upload)){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 34 | echo 'Pasta de imagens da simulação não encontrada'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 35 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 36 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 37 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 38 | if(!is_writable($pasta_upload)){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 39 | echo 'Pasta de imagens da simulação sem permissão de escrita'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 40 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 41 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 42 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 43 | if(@$_FILES['foto_original']['name'] != ''){ | Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação. |
| 44 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 45 | if($_FILES['foto_original']['error'] != 0){ | Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação. |
| 46 | echo 'Erro ao enviar a Foto Original'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 47 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 48 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 49 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 50 | if(!is_uploaded_file($_FILES['foto_original']['tmp_name'])){ | Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação. |
| 51 | echo 'Arquivo da Foto Original inválido'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 52 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 53 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 54 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 55 | $foto_original = $_FILES['foto_original']['name']; | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 56 | $extensao = strtolower(pathinfo($foto_original, PATHINFO_EXTENSION)); | Define a variável `$extensao`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 57 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 58 | if($extensao != 'png' && $extensao != 'jpg' && $extensao != 'jpeg' && $extensao != 'webp'){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 59 | echo 'Formato da Foto Original não permitido'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 60 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 61 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 62 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 63 | $nome_img_original = md5(uniqid()) . "." . $extensao; | Define a variável `$nome_img_original`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 64 | $caminho = $pasta_upload . $nome_img_original; | Define a variável `$caminho`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 65 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 66 | $upload_original = move_uploaded_file($_FILES['foto_original']['tmp_name'], $caminho); | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 67 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 68 | if($upload_original == false){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 69 | echo 'Erro ao salvar a Foto Original'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 70 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 71 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 72 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 73 | if(!file_exists($caminho)){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 74 | echo 'Arquivo da Foto Original não foi gravado'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 75 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 76 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 77 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 78 | if($foto_original_atual != ""){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 79 | $caminho_antigo = $pasta_upload . $foto_original_atual; | Define a variável `$caminho_antigo`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 80 | if(file_exists($caminho_antigo)){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 81 | @unlink($caminho_antigo); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 82 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 83 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 84 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 85 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 86 | if(@$_FILES['imagem_simulada']['name'] != ''){ | Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação. |
| 87 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 88 | if($_FILES['imagem_simulada']['error'] != 0){ | Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação. |
| 89 | echo 'Erro ao enviar a Imagem Simulada'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 90 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 91 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 92 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 93 | if(!is_uploaded_file($_FILES['imagem_simulada']['tmp_name'])){ | Trabalha com dados vindos da requisição HTTP, sessão ou upload. Esse é um ponto sensível de validação. |
| 94 | echo 'Arquivo da Imagem Simulada inválido'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 95 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 96 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 97 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 98 | $imagem_simulada = $_FILES['imagem_simulada']['name']; | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 99 | $extensao2 = strtolower(pathinfo($imagem_simulada, PATHINFO_EXTENSION)); | Define a variável `$extensao2`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 100 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 101 | if($extensao2 != 'png' && $extensao2 != 'jpg' && $extensao2 != 'jpeg' && $extensao2 != 'webp'){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 102 | echo 'Formato da Imagem Simulada não permitido'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 103 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 104 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 105 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 106 | $nome_img_simulada = md5(uniqid()) . "." . $extensao2; | Define a variável `$nome_img_simulada`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 107 | $caminho2 = $pasta_upload . $nome_img_simulada; | Define a variável `$caminho2`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 108 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 109 | $upload_simulada = move_uploaded_file($_FILES['imagem_simulada']['tmp_name'], $caminho2); | Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina. |
| 110 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 111 | if($upload_simulada == false){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 112 | echo 'Erro ao salvar a Imagem Simulada'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 113 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 114 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 115 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 116 | if(!file_exists($caminho2)){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 117 | echo 'Arquivo da Imagem Simulada não foi gravado'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 118 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 119 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 120 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 121 | if($imagem_simulada_atual != ""){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 122 | $caminho_antigo2 = $pasta_upload . $imagem_simulada_atual; | Define a variável `$caminho_antigo2`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta. |
| 123 | if(file_exists($caminho_antigo2)){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 124 | @unlink($caminho_antigo2); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 125 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 126 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 127 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 128 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 129 | $query = $pdo->prepare("SELECT * FROM $tabela WHERE cliente = :cliente AND id_protese = :id_protese AND data_simulacao = :data_simulacao"); | Centraliza o nome da tabela `tabela` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo. |
| 130 | $query->bindValue(":cliente", $cliente); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 131 | $query->bindValue(":id_protese", $id_protese); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 132 | $query->bindValue(":data_simulacao", $data_simulacao); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 133 | $query->execute(); | Executa a query preparada no banco de dados. |
| 134 | $res = $query->fetchAll(PDO::FETCH_ASSOC); | Lê o resultado retornado pelo banco e o converte para uma estrutura PHP que o restante do arquivo consegue consumir. |
| 135 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 136 | if(@count($res) > 0 and $id != $res[0]['id']){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 137 | echo 'Registro já Cadastrado, escolha outro!!'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 138 | exit(); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 139 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 140 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 141 | if($id == ""){ | Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos. |
| 142 | $query = $pdo->prepare("INSERT INTO $tabela SET | Centraliza o nome da tabela `tabela` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo. |
| 143 | cliente = :cliente, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 144 | id_protese = :id_protese, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 145 | foto_original = :foto_original, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 146 | imagem_simulada = :imagem_simulada, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 147 | observacoes = :observacoes, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 148 | data_simulacao = :data_simulacao"); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 149 | }else{ | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 150 | $query = $pdo->prepare("UPDATE $tabela SET | Centraliza o nome da tabela `tabela` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo. |
| 151 | cliente = :cliente, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 152 | id_protese = :id_protese, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 153 | foto_original = :foto_original, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 154 | imagem_simulada = :imagem_simulada, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 155 | observacoes = :observacoes, | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 156 | data_simulacao = :data_simulacao | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 157 | WHERE id = :id"); | Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida. |
| 158 | $query->bindValue(":id", $id); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 159 | } | Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle. |
| 160 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 161 | $query->bindValue(":cliente", $cliente); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 162 | $query->bindValue(":id_protese", $id_protese); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 163 | $query->bindValue(":foto_original", $nome_img_original); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 164 | $query->bindValue(":imagem_simulada", $nome_img_simulada); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 165 | $query->bindValue(":observacoes", $observacoes); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 166 | $query->bindValue(":data_simulacao", $data_simulacao); | Associa um valor PHP a um parâmetro nomeado da query preparada. |
| 167 | $query->execute(); | Executa a query preparada no banco de dados. |
| 168 | Linha em branco usada para separar blocos e melhorar a leitura. | |
| 169 | echo 'Salvo com Sucesso'; | Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela. |
| 170 | ?> | Fecha o bloco PHP atual para voltar à saída HTML. |