Maison >développement back-end >Problème PHP >Comment implémenter la fonction de connexion à la page HTML en php
La mise en œuvre du saut de connexion vers la page HTML en PHP nécessite des compétences de base en programmation. Voici les étapes spécifiques pour mettre en œuvre le processus :
Tout d'abord, vous devez créer une page de connexion pour collecter les informations de connexion de l'utilisateur. Cette page sera utilisée pour vérifier les informations d'identification de l'utilisateur et renvoyer les utilisateurs connectés vers d'autres pages protégées.
En PHP, vous pouvez créer une logique de vérification pour vérifier que les informations d'identification saisies par l'utilisateur sont valides. Cette fonctionnalité peut être réalisée à l'aide d'une base de données MySQL et d'une session PHP. Les étapes spécifiques sont les suivantes :
Voici un exemple de code de logique de validation :
<?php // Start the session session_start(); // Check if the user is already logged in if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){ header("location: welcome.php"); exit; } // Include config file require_once "config.php"; // Define variables and initialize with empty values $username = $password = ""; $username_err = $password_err = ""; // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){ // Check if username is empty if(empty(trim($_POST["username"]))){ $username_err = "Please enter username."; } else{ $username = trim($_POST["username"]); } // Check if password is empty if(empty(trim($_POST["password"]))){ $password_err = "Please enter your password."; } else{ $password = trim($_POST["password"]); } // Validate credentials if(empty($username_err) && empty($password_err)){ // Prepare a select statement $sql = "SELECT id, username, password FROM users WHERE username = ?"; if($stmt = $mysqli->prepare($sql)){ // Bind variables to the prepared statement as parameters $stmt->bind_param("s", $param_username); // Set parameters $param_username = $username; // Attempt to execute the prepared statement if($stmt->execute()){ // Store result $stmt->store_result(); // Check if username exists, if yes then verify password if($stmt->num_rows == 1){ // Bind result variables $stmt->bind_result($id, $username, $hashed_password); if($stmt->fetch()){ if(password_verify($password, $hashed_password)){ // Password is correct, so start a new session session_start(); // Store data in session variables $_SESSION["loggedin"] = true; $_SESSION["id"] = $id; $_SESSION["username"] = $username; // Redirect user to welcome page header("location: welcome.php"); } else{ // Display an error message if password is not valid $password_err = "The password you entered was not valid."; } } } else{ // Display an error message if username doesn't exist $username_err = "No account found with that username."; } } else{ echo "Oops! Something went wrong. Please try again later."; } } // Close statement $stmt->close(); } // Close connection $mysqli->close(); } ?>
En PHP, vous pouvez utiliser des variables de session pour vérifier que l'utilisateur est connecté. Si l'utilisateur est connecté, une page HTML protégée peut être affichée. Sinon, une redirection vers la page de connexion est requise.
Dans la page de connexion, vous pouvez utiliser le code PHP pour gérer la soumission et la validation du formulaire. Les étapes spécifiques sont les suivantes :
Ce qui suit est un exemple de code avec un formulaire de connexion et du code PHP :
<?php // Initialize the session session_start(); // Check if the user is already logged in, if yes then redirect him to welcome page if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){ header("location: welcome.html"); exit; } // Include config file require_once "config.php"; // Define variables and initialize with empty values $username = $password = ""; $username_err = $password_err = ""; // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){ // Check if username is empty if(empty(trim($_POST["username"]))){ $username_err = "Please enter username."; } else{ $username = trim($_POST["username"]); } // Check if password is empty if(empty(trim($_POST["password"]))){ $password_err = "Please enter your password."; } else{ $password = trim($_POST["password"]); } // Validate credentials if(empty($username_err) && empty($password_err)){ // Prepare a select statement $sql = "SELECT id, username, password FROM users WHERE username = ?"; if($stmt = $mysqli->prepare($sql)){ // Bind variables to the prepared statement as parameters $stmt->bind_param("s", $param_username); // Set parameters $param_username = $username; // Attempt to execute the prepared statement if($stmt->execute()){ // Store result $stmt->store_result(); // Check if username exists, if yes then verify password if($stmt->num_rows == 1){ // Bind result variables $stmt->bind_result($id, $username, $hashed_password); if($stmt->fetch()){ if(password_verify($password, $hashed_password)){ // Password is correct, so start a new session session_start(); // Store data in session variables $_SESSION["loggedin"] = true; $_SESSION["id"] = $id; $_SESSION["username"] = $username; // Redirect user to welcome page header("location: welcome.html"); } else{ // Display an error message if password is not valid $password_err = "The password you entered was not valid."; } } } else{ // Display an error message if username doesn't exist $username_err = "No account found with that username."; } } else{ echo "Oops! Something went wrong. Please try again later."; } } // Close statement $stmt->close(); } // Close connection $mysqli->close(); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login</title> <style> body{ font: 14px sans-serif; } .wrapper{ width: 350px; padding: 20px; } </style> </head> <body> <div class="wrapper"> <h2>Login</h2> <p>Please fill in your credentials to login.</p> <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> <div <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>"> <label>Username</label> <input type="text" name="username" class="form-control" value="<?php echo $username; ?>"> <span <?php echo (!empty($username_err)) ? 'help-block' : ''; ?>"><?php echo $username_err; ?></span> </div> <div <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>"> <label>Password</label> <input type="password" name="password" class="form-control"> <span <?php echo (!empty($password_err)) ? 'help-block' : ''; ?>"><?php echo $password_err; ?></span> </div> <div class="form-group"> <input type="submit" class="btn btn-primary" value="Login"> </div> <p>Don't have an account? <a href="register.html">Sign up now</a>.</p> </form> </div> </body> </html>
Ce qui précède sont les étapes de base et des exemples de code pour implémenter la connexion de l'utilisateur afin d'accéder à la page HTML via PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!