//Base de comunicação do front end com o back end -abertura- // Função para obter a URL base do servidor async function getApiUrl() { try { //solicitação do arquivo config_url.php const response = await fetch('../../../Sites/Site_ItGuys/php/config_url.php'); //Aplicação de um if caso a resposta do php seja oposta ao ok if (!response.ok) { throw new Error('Network response was not ok'); } const data = await response.json(); return data.apiUrl; // Retorna a URL base } catch (error) { console.error('Error fetching API URL:', error); throw error; } } // fechamento //conexões com fatores do front end, e a determinação de uma pequena ação para quando os dois inputs estiverem vazios -abertura- //Acapitação das ids do formulário document.getElementById("formLogin").addEventListener("submit", async function (event) { event.preventDefault(); // Previne o comportamento padrão do formulário // Obtém os elementos do DOM correspondentes ao nome de usuário, senha e mensagem de erro const usernameElement = document.getElementById("username");//dominio const passwordElement = document.getElementById("password"); //senha const errorMessageElement = document.getElementById("errorMessage"); //painel que apresntação de erro padrão const erro5003 = document.getElementById("erro_503"); //pop up de erro 500 const erro5004 = document.getElementById("erro_504"); //pop de desvio de scripts. // Limpa qualquer mensagem de erro anterior e bordas de campo errorMessageElement.innerHTML = ''; erro5003.innerHTML = ''; erro5004.innerHTML = ''; usernameElement.style.borderColor = ''; passwordElement.style.borderColor = ''; // Verifica se os elementos do nome de usuário e senha existem if (!usernameElement || !passwordElement) { console.error('Username or password element not found'); return; } // Obtém os valores inseridos pelo usuário nos campos de nome de usuário e senha const username = usernameElement.value.trim();//usuário const password = passwordElement.value.trim();//senha // Verifica se os campos estão preenchidos if (!username || !password) { errorMessageElement.innerHTML = `
Preencha ambos os campos
`;//mensagem de erro padrão usernameElement.style.borderColor = 'red';//corpo do input usuario em vermelho. passwordElement.style.borderColor = 'red';//corpo do input senha em vermelho. errorMessageElement.style.height = '10vh';//Altura do bloco de apresentação errorMessageElement.style.opacity = '1';//Opacidade do bloco de apresentação errorMessageElement.style.transition = '1s ease';//transição setTimeout(() => {//Aplicação de tempo para retirar os efeitos errorMessageElement.style.height = '0vh'; // Reduz o tamanho do bloco para Oculta a mensagem usernameElement.style.borderColor = '#1478cf'; //volta a cor do inptu, de usuário ao seu padrão passwordElement.style.borderColor = '#1478cf'; //volta a cor do inptu, de senha ao seu padrão errorMessageElement.style.opacity = '0'; // define a opacidade do painel de erro a zero errorMessageElement.style.transition = '1s ease'; // define uma tansição suave para tudo isso. }, 5000); //definie um time de 5 segundos, contados em milesegundos 5.000 return; } //Fechamento //Camada de segurança -abertura- // Função para escapar caracteres HTML, resumidamente ele pega o paramentro definido e subistitui todas as letras já definidas nela pelos termos descritos em "" para assim quebrar com quaisquer entrada de script dentro dos inputs. function escapeHTML(str) { return str .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'") .replace(/V/g, "'") .replace(/C/g, "'") .replace(/a/g, "'") .replace(/i/g, "'") .replace(/o/g, "'") .replace(/u/g, "'") .replace(/b/g, "'") .replace(/c/g, "'") .replace(/l/g, "'") .replace(/d/g, "'") .replace(/e/g, "'") .replace(/t/g, "'") .replace(/1/g, "'") .replace(/2/g, "'") .replace(/3/g, "'") .replace(/4/g, "'") .replace(/5/g, "'") .replace(/6/g, "'") .replace(/7/g, "'") .replace(/8/g, "'") .replace(/9/g, "'"); } // Aqui ele armazena em constantes os termos relacionandos a funções sqls, e funções de scripts para serem redirecionadas. const containsScript = /