e59-website/html/login/index.php
2024-07-29 22:46:41 +00:00

133 lines
4.3 KiB
PHP

<?php
require("../../include/variables.php");
require("../../include/init.php");
if (isset($_SESSION['userID'])) {
header("Location: /");
die("Vous êtes déjà connecté.");
}
require("../../include/main-functions.php");
require("../../include/inputs.php");
require("../../include/panels.php");
$pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass);
$redirectPage = isset($_GET['p']) ? $_GET['p'] : "";
if (isset($_POST['username']) && isset($_POST['password'])) {
if (empty($_POST['username']) == false && empty($_POST['password']) == false) {
if(preg_match('!\S!u', $_POST['username']) && preg_match('!\S!u', $_POST['password'])) {
$sqlRequest = "SELECT ID, username, display_name, role, accreditation FROM users WHERE (username = :username OR email = :username) AND password = :password";
$request = $pdo->prepare($sqlRequest);
$userName = htmlspecialchars($_POST['username']);
$userPassword = md5($_POST['password']);
$request->bindParam(":username", $userName);
$request->bindParam(":password", $userPassword);
$request->execute();
$result = $request->fetchAll(PDO::FETCH_ASSOC);
if ($result) {
$_SESSION['userID'] = $result[0]['ID'];
$_SESSION['userName'] = $result[0]['username'];
$_SESSION['userDisplayName'] = $result[0]['display_name'];
$_SESSION['userRole'] = $result[0]['role'];
$_SESSION['userAccreditation'] = $result[0]['accreditation'];
header('Location: /' . $redirectPage);
exit("Login success");
} else {
$status = 'Identifiants incorrects';
}
} else {
$status = 'Caractères illégaux';
}
} else {
$status = 'Les champs ne doivent pas être vides';
}
}?>
<!DOCTYPE html>
<html lang="fr">
<head>
<?php fillHead($rootPageURL, "Se connecter - " . $pageName, $darkTheme, $lightTheme); ?>
<style>
#register-text {
font-size: 0.8em;
margin: 2em 0 2em 0;
color: #a0a0a0;
}
#register-text a {
color: var(--text);
}
.form .text-input {
margin: 1em auto 0 auto;
width: 80%;
}
#or {
font-size: 0.6em;
margin: 1em 0;
}
</style>
</head>
<body class="body">
<header>
<div class="panel-content">
<?php fillHeader($rootPageURL, $headerTitle, $headerSubtitle, $social); ?>
</div>
<meta name="description" content="Association E59">
<meta name="author" content="E59">
<meta property="og:locale" content="fr_FR">
<meta property="og:site_name" content="e59.fr">
<meta property="og:type" content="website">
<meta property="og:title" content="Connexion">
<meta property="og:description" content="Association E59">
<meta property="og:url" content="https://e59.fr/login">
<meta property="og:image" content="https://e59.fr/src/img/e59-pp.png">
<meta property="og:image:width" content="500">
<meta property="og:image:height" content="500">
<meta property="og:image:type" content="image/png">
</header>
<nav>
<div class="panel-content">
<?php fillNav($rootPageURL); ?>
</div>
</nav>
<main>
<div class="content">
<form action="#" method="post">
<div class="form">
<div class="form-title">Se Connecter</div>
<div class="status"><?=$status?></div>
<?php
textInput("text", "", "username", "Login / Email", "");
textInput("password", "", "password", "Mot de Passe", "");
?>
<button type="submit">Se connecter</button><div id="or">OU</div>
<a href="google-login.php" class="discret-button">Continuer avec Google</a><br>
<a href="microsoft-login.php" class="discret-button">Continuer avec Microsoft</a>
<div id="register-text">Vous n'avez pas de compte ? <a href="register.php?p=<?=$redirectPage?>">Créez en un</a></div>
</div>
</form>
</div>
</main>
<footer>
<div class="panel-content">
<?php fillFooter($footerText); ?>
</div>
</footer>
</body>
</html>