Maison  >  Questions et réponses  >  le corps du texte

Comment afficher le message après la soumission du formulaire sur la même page

<?php
session_start();
include("includes/config.php"); 

if(isset($_POST['submit'])){
    
    if (empty($username)){
        $error1 = "Please enter username.";
        header("location: index.php");

    }
    
    $username=mysqli_real_escape_string($con,$_POST['username']);
    $password=mysqli_real_escape_string($con,$_POST['password']);
    
    $sql="select * from admin_user where username='$username' and password='$password'";
    
    $res=mysqli_query($con,$sql);
    if (mysqli_num_rows($res)>0){
        
       session_start();
       $_SESSION["username"] = $username;
       $_SESSION["id"] = $id;
       $_SESSION['admin']['status']= true ;

      header("location: dashboard.php");
    }else{
        $unsucess = "Invalid username or password.";
header("location: index.php");
    }
        
        
}
?>

                    

<?php if(!empty($error1)) {?>
   <p><?php echo $error1; ?></p>
<?php } ?>
                       
                           <form method ="post">
                              <div class="mb-3">
                                 <label for="username" class="form-label">Username*</label>
                                 <input type="text" name="username" class="form-control" id="username" placeholder="Enter username">
                              </div>
                              <div class="mb-3">
                           
                                 <label class="form-label" for="password-input">Password*</label>
                                 <div class="position-relative auth-pass-inputgroup mb-3">
                                    <input type="password" name="password" class="form-control pe-5" placeholder="Enter password" id="password">
                                    <button class="btn btn-link position-absolute end-0 top-0 text-decoration-none text-muted shadow-none" type="button" id="password-addon"><i class="ri-eye-fill align-middle"></i></button>
                                 </div>
                              </div>
                              <div class="mt-4">
                                 <button class="btn btn-success w-100" name="submit" type="submit">Sign In</button>
                              </div>
                   
                           </form>

Je soumets le formulaire via la méthode de publication sur la même page. Après avoir soumis le formulaire, je vérifie une condition et si le nom d'utilisateur est vide, j'affiche le message $error1 = "Veuillez saisir le nom d'utilisateur" en haut du formulaire. Le problème auquel je suis confronté est que lorsque je supprime header("location: index.php"); le message s'affiche correctement dans la section corps. Mais si vous ajoutez header("location:index.php"); pour actualiser la page, $error1 ne s'affiche pas en raison de l'actualisation de la page. mais il n'y a pas de titre ("Emplacement : index.php") ; le message que le navigateur donne lors de l'actualisation de la page est (Pour afficher cette page, Firefox Developer Edition doit envoyer une information.) Des suggestions sur la façon d'afficher correctement le message et comment pour éviter la duplication après la soumission du formulaire, y compris header("location: index.php"); 在此输入代码

P粉155128211P粉155128211316 Il y a quelques jours409

répondre à tous(1)je répondrai

  • P粉513318114

    P粉5133181142024-01-01 14:35:37

    Ajoutez une erreur dans la session et vérifiez si la valeur du paramètre de session fait écho à l'erreur et désactivez la session d'erreur

    0){
            
           session_start();
           $_SESSION["username"] = $username;
           $_SESSION["id"] = $id;
           $_SESSION['admin']['status']= true ;
    
          header("location: dashboard.php");
        }else{
            $_SESSION['error1'] = "Invalid username or password.";
            header("location: index.php");
        }
            
            
    }
    ?>
    
                        
    
    
       

    répondre
    0
  • Annulerrépondre