Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie die Login-Sprung-zur-HTML-Seitenfunktion in PHP
Die Implementierung des Anmeldesprungs zur HTML-Seite in PHP erfordert den Einsatz einiger grundlegender Programmierkenntnisse. Hier sind die spezifischen Schritte zur Implementierung des Prozesses:
Zuerst müssen Sie eine Anmeldeseite erstellen, um die Anmeldeinformationen des Benutzers zu erfassen. Diese Seite wird verwendet, um Benutzeranmeldeinformationen zu überprüfen und angemeldete Benutzer auf andere geschützte Seiten zu verweisen.
In PHP können Sie eine Überprüfungslogik erstellen, um zu überprüfen, ob die vom Benutzer eingegebenen Anmeldeinformationen gültig sind. Diese Funktionalität kann mithilfe einer MySQL-Datenbank und einer PHP-Sitzung erreicht werden. Die spezifischen Schritte sind wie folgt:
Hier ist ein Codebeispiel der Validierungslogik:
<?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(); } ?>
In PHP können Sie Sitzungsvariablen verwenden, um zu überprüfen, ob der Benutzer angemeldet ist. Wenn der Benutzer angemeldet ist, kann eine geschützte HTML-Seite angezeigt werden. Andernfalls ist eine Weiterleitung zur Anmeldeseite erforderlich.
Auf der Anmeldeseite können Sie PHP-Code für die Formularübermittlung und -validierung verwenden. Die konkreten Schritte lauten wie folgt:
Das Folgende ist ein Beispielcode mit einem Anmeldeformular und PHP-Code:
<?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>
Das Obige sind die grundlegenden Schritte und Codebeispiele zur Implementierung der Benutzeranmeldung, um über PHP zur HTML-Seite zu springen.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Login-Sprung-zur-HTML-Seitenfunktion in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!