Compte à rebours en PHP

Fermé
ClementModz Messages postés 1 Date d'inscription mercredi 22 novembre 2017 Statut Membre Dernière intervention 22 novembre 2017 - 22 nov. 2017 à 13:26
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 22 nov. 2017 à 14:17
Salut à tous, je suis en train de coder mon propre site web et j'aimerais un peu d'aide.

J'ai coder une page de connexion et d'enregistrement en php. Je voudrais que dès que l'utilisateur se connecte le message "Vous allez être rediriger dans ... secondes" s'affiches et que les secondes passe de 5 à 4 puis 3 etc.. Jusqu'a que la page se charge.

Merci.

Si besoin voilà la page de mon code:
<!DOCTYPE html>
<html>
<head>
<title>Login | DoloremServ</title>
<link rel="icon" type="image/png" href="images/logo.png" />
<link rel="stylesheet" type="text/css" href="css/login.css">
</head>
<body>

<!-- br pour voir le texte afficher -->

<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>


<div id="bloc">
<!-- PHP de Login -->
<?php
if (isset($_POST['formlogin'])) {
extract($_POST);

if (!empty($lemail) && !empty($lpassword)) {

include 'include/database.php';
global $db;

$q = $db->prepare("SELECT * FROM users WHERE email = :email");
$q->execute(['email' => $lemail ]);
$result = $q->fetch();

if($result == true){

if(password_verify($lpassword, $result['password']) == true) {

echo "Connexion en cours...";
echo 'Vous allez être redirigé dans 5 secondes';
header("Status: 301 Moved Permanently", false, 301);
header ("Refresh: 5;URL=/index.php");


} else {
echo "Le mot de passe n'est pas correct!";
}

} else{
echo "L'email " . $lemail . " n'existe pas!";
}


} else {
echo "L'email ou le mot de passe n'est pas correct!";
}
}
?>
<!-- Fin de PHP Login -->
<!-- _______________________________________________________________________ -->
<!-- Phase de login -->

<form method="post" class="login">
<h3>Se connecter</h3>
<input type="email" name="lemail" id="lemail" placeholder="E-mail" required>
<br>
<input type="password" name="lpassword" id="lpassword" placeholder="Mot de passe" required>
<br>
<input type="submit" name="formlogin" id="formlogin" value="Se connecter">
</form>

<!-- Fin de Login -->


<!-- PHP de Register -->

<?php



if(isset($_POST['formsend'])){

extract($_POST);

if(!empty($password && !empty($pseudo) && !empty($email) && !empty($cpassword))){


if ($password == $cpassword){
$options = [
'cost' => 12,
];

$hashpass = password_hash($password, PASSWORD_BCRYPT, $options);


include 'include/database.php';
global $db;

$c = $db->prepare("SELECT email FROM users WHERE email = :email ");
$c->execute([
'email' => $email
]);

$result = $c->rowCount();


$p = $db->prepare("SELECT pseudo FROM users WHERE pseudo = :pseudo ");
$p->execute([
'pseudo' => $pseudo
]);

$resultp = $p->rowCount();


if ($result == 0 && $resultp == 0) {
$q = $db->prepare("INSERT INTO users(pseudo,email,password) VALUES(:pseudo,:email,:password)");
$q->execute([
'pseudo' => $pseudo,
'email' => $email,
'password' => $hashpass
]);
echo '<span class="created">Le compte a bien été créer!</span>';
} else {
echo '<span class="nocreatem">Cette adresse mail ou pseudo existe déjà!</span>';
}


}
else {
echo '<span class="nocreatemdp">Les mots de passe ne sont pas les mêmes</span>';
}


}


}

?>

<!-- Fin de PHP Register -->
<!-- _______________________________________________________________________ -->
<!-- Phase de register -->



<form method="post" class="register">
<h3> S'enregistrer </h3>
<input type="text" name="pseudo" id="pseudo" placeholder="Pseudo" required>
<br>
<input type="email" name="email" id="email" placeholder="E-mail" required>
<br>
<input type="password" name="password" id="password" placeholder="Mot de passe" required>
<br>
<input type="password" name="cpassword" id="cpassword" placeholder=" Confirmer mot de passe" required>
<br>
<input type="submit" name="formsend" id="formsend" value="S'enregistrer">
</form>
</div>
<!-- Fin de Register -->
<!-- _______________________________________________________________________ -->

<!-- Include Navigation -->

<?php include 'include/nav.html'; ?>

<!-- Fin de Navigation -->

</body>
</html>

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
Modifié le 22 nov. 2017 à 14:17
Salut,

Pour modifier le nombre de secondes affiché dans la page html, il faut utiliser javascript. Du coup, on peut également réaliser la redirection en js.

Un exemple simple :
<div>Vous allez être redirigé dans <span id="secondes">5</span></div>


  var secondes = 5;

  var interval = setInterval(function() {
    secondes--;
    document.getElementById('secondes').innerHTML = secondes;
    if (secondes <= 0) {
      clearInterval(interval);
      document.location.href = '/index.php';
    }
  }, 1000);


Bonne journée,
0