Message d'erreur

Fermé
yossra - 17 sept. 2020 à 15:04
 yossra - 17 sept. 2020 à 15:34
Bonjour,
j'avais mis au point un fichier php pour rediriger l'utilisateur vers une page en fonction de la valeur qu'il entre dans le formulaire:

Ce que je voudrais faire et que le code ne fait pas, serait de ne pas renvoyer vers une page d'erreur en cas de mauvaise saisie mais d'afficher un message d'erreur à coté du formulaire. Un peu comme les message d'erreur chez yahoo ou autre lorsqu'on se trompe de mot de passe pour consulter ses mails. Avec la fonction echo on renvoit un texte mais dans une nouvelle page. Je ne sais pas comment mettre la texte d'erreur à coté du formulaire . J'ai cherché sur les forums et les tutos de php mais j'en ressort plus embrouillé qu'autre chose.

Merci d'avance

EDIT: Je sais pas si c'est vrai mais je viens de lire qu'il faut faire un javascript sinon c'est obigatoirement un chagement de page qui a lieu. C'est vrai? Enfin je suis pas plus avancé
 <!DOCTYPE html>
<html>
    <head>
     <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
    box-sizing: border-box;
}
body{
    margin:0;
    height:100vh;
    width:100vw;
    overflow:hidden;
    font-family:'Lato' ,sans-serif;
    font-weight: 700;
    display: flex;
    align-items:center;
    justify-content:center;
    color:#555;
    background:#ecf0f3;

}
.login-div {
    width:430px;
    height:500px;
    padding:60px 35px 35px 35px;
    border-radius:40px;
    background:#ecf0f3;
    box-shadow:13px 13px 20px #cbced1,
                -13px -13px 20px #ffffff;
  }
  .fields {
    width:100%;
    padding:75px 5px 5px 5px;
  }
  .fields input {
    border:none;
    outline:none;
    background:none;
    font-size: 18px;
    color:#555;
    padding:20px 10px 20px 5px;
  }
  .user{
    margin-bottom:30px;
    border-radius:25px;
    box-shadow: inset 8px 8px 8px #cbced1,
                inset -8px -8px 8px #ffffff;
  }
  .fields svg {
    height:22px;
    margin:0 10px -3px 25px;
  }
 button{
    outline:none;
    border:none;
    cursor: pointer;
    width:100%;
    height: 60px;
    border-radius:30px;
    font-size: 20px;
    font-weight: 700;
    font-family:'Lato',sans-serif;
    color:#fff;
    text-align:center;
    background:#24cfaa;
    box-shadow:3px 3px 8px #b1b1b1,
                -3px -3px 8px #ffffff;
    transition:0.5s;
  }
button:hover {
    background:#2fdbb6;
  }
 button:active {
    background:#1da88a;
 }
.label {
  text-align: center;
  font-size: 28px;
  padding-top: 24px;
  letter-spacing: 0.5px;
}
</style>
  </head>
    <body>
        
        <div class="login-div">
            <form action="connect1.php" method="post">
            <div class="fields" >
              <div class="user"><svg class="svg-icon" viewBox="0 0 20 20">
							<path d="M17.388,4.751H2.613c-0.213,0-0.389,0.175-0.389,0.389v9.72c0,0.216,0.175,0.389,0.389,0.389h14.775c0.214,0,0.389-0.173,0.389-0.389v-9.72C17.776,4.926,17.602,4.751,17.388,4.751 M16.448,5.53L10,11.984L3.552,5.53H16.448zM3.002,6.081l3.921,3.925l-3.921,3.925V6.081z M3.56,14.471l3.914-3.916l2.253,2.253c0.153,0.153,0.395,0.153,0.548,0l2.253-2.253l3.913,3.916H3.56z M16.999,13.931l-3.921-3.925l3.921-3.925V13.931z"></path></svg>
		<input type="username" name="username" placeholder="username"/></div>
           </div>
            <button type="submit">submit</button>
</form>


          </div>
    </body>


Configuration: Windows / Edge 85.0.564.51

1 réponse

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié le 17 sept. 2020 à 15:29
Bonjour,

Alors, oui, quand on valide un formulaire il y a nécessairement un rechargement de page.
Si tu veux que la vérification se fasse de façon totalement transparente, ça se fera comme tu l'as vu, en Javascript avec une requête d'arrière-plan vers le serveur (recherche des tutos avec comme mot-clef « requête ajax »)

Par contre, tu peux obtenir un comportement assez proche sans javascript, avec rechargement de la page de connexion plutôt que de la page d'erreur, avec un petit paramètre supplémentaire pour y afficher l'erreur dans le formulaire.

Xavier
0
je veux faire la deuxième solution parce que je suis débutante en javascript tu me donnes la requête en que je dois mettre dans le code et merci d'avance
0