Browse Source

Foi separado as funcoes de API, e para processar novas requisicoes HTTP

correcao_departamento_agenda
Matheo Bonucia 10 months ago
parent
commit
471d1898b3
  1. 16
      css/login.css
  2. 90
      login.php
  3. 64
      login/api_banner.php
  4. 41
      login/processar_forms.php

16
css/login.css

@ -122,7 +122,7 @@ button {
.right .right-content input {
border: 0;
width: 100%;
width: 280px;
padding: 10px;
}
@ -162,14 +162,14 @@ button {
color: #2D69F5;
}
.remember {
.esqueci-senha {
display: flex;
justify-content: start;
align-items: center;
width: 100%;
}
.remember>a {
.esqueci-senha>a {
color: #2D69F5;
font-size: small;
font-weight: bold;
@ -271,10 +271,8 @@ button {
.right .right-content>h1 {
font-size: 26px;
}
}
/* ///////////////////////////////////////////////////// */
/* Footer */
/* ///////////////////////////////////////////////////// */
.right .right-content input {
width: calc(inherit - 300%);
}
}

90
login.php

@ -3,9 +3,10 @@
$smarty->assign("habilitaLayout", $habilitaLayout);
include "components/Footer/footer.php";
include "components/Sociais/sociais.php";
include "login/api_banner.php";
?>
<!DOCTYPE html>
<html>
<head>
@ -19,6 +20,45 @@ include "components/Sociais/sociais.php";
<?php include 'css/login.css' ?>
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<script>
//Função para enviar o formulario para o servidor
async function sendForm() {
// atribui as variáveis o valor dos elemento
var user = document.getElementById('loginUser').value;
var password = document.getElementById('loginPass').value;
// Cria um objeto formData para poder enviar os data para o servidor
try {
//Atribui os parametros com o valor
const formData = new URLSearchParams({
'loginUser': user,
'loginPass': password
});
const response = await fetch('login/processar_forms.php', {
method: 'POST',
body: formData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
if (!response.ok) {
throw new Error('Erro ao consultar login!');
}
const data = await response.json();
if (data.status === 'success') {
console.log(data.message);
} else {
console.error(data.message);
}
} catch (error) {
console.error(error.message);
}
}
</script>
</head>
@ -28,36 +68,38 @@ include "components/Sociais/sociais.php";
<div class="container-login">
<div class="login-content">
<div class="left">
<img src="https://cdn.pixabay.com/photo/2023/09/14/15/54/bird-8253245_1280.jpg" alt="teste" />
<img src= <?php echo $imagem;?> alt="" />
</div>
<div class="right">
<div class="right-content">
<h1>Bem Vindo</h1>
<h2>login</h2>
<div class="user">
<i class="fa-solid fa-user"></i>
<input placeholder="Insira seu email ou usuário"/>
<div class="right-content">
<h1>Bem Vindo</h1>
<h2>login</h2>
<form id="formulario-login" onsubmit="event.preventDefault(); sendForm();">
<div class="user">
<i class="fa-solid fa-user"></i>
<input placeholder="Insira seu email ou usuário" type="text" maxlength="50" name="loginUser" id="loginUser" />
</div>
<div class="password">
<i class="fa-solid fa-key"></i>
<input type="password" placeholder="Insira sua senha" maxlength="14" name="loginPass" id="loginPass" />
</div>
</form>
<div class="esqueci-senha">
<a href='#'>Esqueci minha senha</a>
</div>
</div>
<div class="password">
<i class="fa-solid fa-key"></i>
<input type="password" placeholder="Insira sua senha"/>
<div class='bn-login'>
<button class="bn632-hover bn24" name="bnLogin" type="button" onclick="sendForm()">Entrar</button>
</div>
<div class="remember">
<a href='#'>Esqueci minha senha</a>
</div>
</div>
<div class='bn-login'>
<button class="bn632-hover bn24">Entrar</button>
<?php GerarSociais(); ?>
</div>
<?php GerarSociais(); ?>
</div>
</div>
</div>
</div>
<?php
GerarFooter();
ImportaEstilo();
?>
<?php
GerarFooter();
ImportaEstilo();
?>
</body>
</html>

64
login/api_banner.php

@ -0,0 +1,64 @@
<?php
// Inicializar uma requisição http //
$key = 'IvDU6Sl6AosNFQ28APSSotJkUOnn53XahGeC3z93j7XCC5VwlcFLaopX';
$endPoint = 'https://api.pexels.com/v1/';
$type = 'search';
$url = montarUrl($endPoint, $type);
// Monta opções do cURL
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Authorization: ' . $key,
),
);
// Iniciar cURL
$ch = curl_init();
curl_setopt_array($ch, $options);
$resposta = curl_exec($ch);
// Verificar se houve erros na execução do cURL
if (curl_errno($ch)) {
echo 'Erro cURL: ' . curl_error($ch);
} else {
// Decodificar a resposta JSON
$resp = json_decode($resposta, true);
// Verificar se houve erros na decodificação JSON
if (json_last_error() !== JSON_ERROR_NONE) {
echo 'Erro ao decodificar JSON: ' . json_last_error_msg();
} else {
$imagem = getBanner($resp);
}
}
// Fechar a sessão cURL
curl_close($ch);
// Funções utilizadas //
function getBanner($data)
{
$imagem_aleatoria = random_int(0, 15);
$urlImagem = $data['photos'][$imagem_aleatoria]['src']['original'];
if (!$urlImagem) {
throw new Exception('Erro ao adquirir imagem');
}
return $urlImagem;
}
function montarUrl($endPoint, $type)
{
$endPoint .= $type;
$params = array(
'query' => 'phone call',
'orientation' => 'landscape',
'size' => 'small',
);
$url = $endPoint . '?' . http_build_query($params);
return $url;
}
?>

41
login/processar_forms.php

@ -0,0 +1,41 @@
<?php
include "util/funcoesLicenca.php";
$tentativaErro = 5;
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['loginUser']) && isset($_POST['loginPass'])) {
$user = $_POST['loginUser'];
$password = $_POST['loginPass'];
// Exemplo simples de autenticação (não seguro, apenas para fins educacionais)
if ($user === 'admin' && $password === 'OitoDois80_SiP') {
echo json_encode(['status' => 'success', 'message' => 'Login bem-sucedido!']);
// Você pode adicionar mais informações, como um token de autenticação, aqui
} else {
echo json_encode(['status' => 'error', 'message' => 'Credenciais inválidas. Tente novamente.']);
}
} else {
echo json_encode(['status' => 'error', 'message' => 'Campos de formulário ausentes.']);
}
} else {
echo json_encode(['status' => 'error', 'message' => 'Método não permitido.']);
}
function countTentativas($dbcon, $login, $tentativaErro)
{
$login = addslashes($login);
$query = "SELECT COUNT(*) AS tentativas FROM pbx_controle_acesso WHERE acs_login = '$login' AND acs_data_ini::DATE = 'now' AND acs_erro = 1;";
$result = pg_query($dbcon, $query);
$res = pg_fetch_assoc($result);
if ($res['tentativas'] == $tentativaErro) {
return false;
}
return true;
}
?>
Loading…
Cancel
Save