This commit introduces a new function, `fxSuperadmRedirectToLoginIfNeeded`, to streamline the login redirection process for superadmin users. It enhances session management by checking for user authentication and allowing legacy account access under specific conditions. Additionally, the login flow is updated to ensure users are redirected appropriately after login, improving the overall security and user experience in the superadmin interface. These changes aim to enhance maintainability and clarity in session handling across various superadmin pages.
114 lines
4.8 KiB
PHP
114 lines
4.8 KiB
PHP
<?php
|
|
session_start();
|
|
|
|
if (!empty($_SESSION['usa_id'])) {
|
|
header('Location: ' . fxSuperadmConsumeRedirectAfterLogin('index.php'));
|
|
exit;
|
|
}
|
|
|
|
require_once('php/inc_functions.php');
|
|
require_once('php/inc_fx_messages.php');
|
|
global $db, $blnDev, $vDomaine;
|
|
|
|
if (isset($_POST['usa_login'])) {
|
|
$sqlLogin = "SELECT * FROM inscriptions_comptes WHERE com_login = '" . $db->fxEscape($_POST['usa_login']) . "' AND com_actif = 1 AND com_superadm = 1";
|
|
$recLogin = $db->fxGetRow($sqlLogin);
|
|
|
|
if ($recLogin != null) {
|
|
if (strcasecmp($_POST['usa_password'], $recLogin['com_password']) == 0) {
|
|
$blnSuccess = true;
|
|
$strHashPassword = ', com_password = ' . password_hash($_POST['usa_password'], PASSWORD_DEFAULT) . "'"; // faire un hash
|
|
} else {
|
|
$blnSuccess = password_verify($_POST['usa_password'], $recLogin['com_password']);
|
|
$strHashPassword = '';
|
|
}
|
|
if ($blnSuccess) {
|
|
/* $sqlUpdate = "UPDATE usagers SET usa_lastvisit = '" . fxGetDateTime() . "' WHERE usa_id = " . intval($recLogin['usa_id']);
|
|
$qryUpdate = $db->fxQuery($sqlUpdate); */
|
|
|
|
$_SESSION['usa_id'] = $recLogin['com_id'];
|
|
$_SESSION['usa_info'] = $recLogin;
|
|
$_SESSION['logged'] = time();
|
|
|
|
header('Location: ' . fxSuperadmConsumeRedirectAfterLogin('index.php'));
|
|
exit;
|
|
} else {
|
|
$_SESSION['msg'] = 1;
|
|
|
|
header('Location: login.php');
|
|
exit;
|
|
}
|
|
} else {
|
|
$_SESSION['msg'] = 1;
|
|
|
|
header('Location: login.php');
|
|
exit;
|
|
}
|
|
}
|
|
|
|
$strPage = 'login.php';
|
|
$strLangue = 'fr';
|
|
|
|
require_once('inc_header.php');
|
|
?>
|
|
<div class="container-fluid" id="main">
|
|
<div class="row">
|
|
<div class="col-12 col-md-8 col-lg-5 col-xl-3 mx-auto my-5">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3 class="text-center">Connexion</h3>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="form-message">
|
|
<?php
|
|
if (!empty($_GET['expired'])) {
|
|
echo '<div class="alert alert-warning">Session expirée — veuillez vous reconnecter.</div>';
|
|
}
|
|
if (isset($_SESSION['msg']) && $_SESSION['msg'] !== 0)
|
|
echo fxMessage($_SESSION['msg'], $strLangue);
|
|
?>
|
|
</div>
|
|
<form action="<?php echo $vDomaine; ?>/superadm/login.php" id="frm_login" name="frm_login" method="post">
|
|
<div class="form-group">
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text rounded-0">
|
|
<i class="fa fa-user"></i>
|
|
</span>
|
|
</div>
|
|
<input class="form-control rounded-0" type="text" id="usa_login" name="usa_login" placeholder="Nom d'usager" value="<?php if (isset($_POST['usa_login'])) { echo fxUnescape($_POST['usa_login']); } ?>" required autofocus>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text rounded-0">
|
|
<i class="fa fa-lock"></i>
|
|
</span>
|
|
</div>
|
|
<input class="form-control rounded-0" type="password" id="usa_password" name="usa_password" placeholder="Mot de passe" required>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<button type="submit" id="btn_login" name="btn_login" class="btn btn-lg btn-block btn-primary rounded-0"><i class="fa fa-unlock-alt"></i> connexion</button>
|
|
<div class="text-center mb-2">
|
|
<small><a href="<?php echo $vDomaine; ?>/compte/motdepasse" target="_blank">Mot de passe perdu ?</a></small>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
$("#frm_login").validate({
|
|
messages: {
|
|
usa_login: "Veuillez entrer un nom d'usager",
|
|
usa_password: "Veuillez entrer un mot de passe"
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
<?php include('inc_footer.php');
|