Maison  >  Article  >  développement back-end  >  Comment utiliser php pour créer une page de saut de page de connexion

Comment utiliser php pour créer une page de saut de page de connexion

PHPz
PHPzoriginal
2023-04-03 14:09:541532parcourir

Dans le domaine du développement de sites Web, le système de connexion des utilisateurs est une exigence très courante. Dans un site Web, les éléments essentiels du système de connexion utilisateur sont la page de connexion, l'authentification de l'utilisateur et les pages de renvoi. Cet article explique comment utiliser PHP pour implémenter une page de connexion de base et afficher l'état de la session de l'utilisateur en accédant à la page.

Dans cet article, nous utiliserons les trois fichiers de base suivants : login.php, Authenticate.php et Dashboard.php.

  1. fichier login.php

La page de connexion est le point d'entrée lorsque les utilisateurs se connectent au système. Nous implémenterons cette page dans le fichier login.php.

<?php
session_start();
if (isset($_SESSION[&#39;user_id&#39;])) {
    header(&#39;Location: dashboard.php&#39;);
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
    <meta charset="utf-8">
</head>
<body>
    <h1>Login</h1>
    <form method="post" action="authenticate.php">
        <label for="user_name">Username:</label>
        <input type="text" name="user_name"><br>
        <label for="password">Password:</label>
        <input type="password" name="password"><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>

Le code ci-dessus montre une simple page HTML. Il comprend un formulaire dans lequel les utilisateurs peuvent saisir leur nom d'utilisateur et leur mot de passe. La soumission du formulaire sera envoyée à la page Authenticate.php, qui se chargera de comparer les données saisies par l'utilisateur avec les données stockées dans la base de données pour confirmer si l'utilisateur a l'autorisation d'accéder à la ressource protégée.

Le code démarre également une nouvelle session à l'aide de la fonction session_start(). Si l'utilisateur est déjà connecté, la fonction session_start() vérifiera si l'ID utilisateur existe dans la session en cours, et si c'est le cas, redirigera directement vers la page Dashboard.php.

  1. fichier authenticate.php Le fichier

authenticate.php sera responsable du processus d'authentification de l'utilisateur. Fondamentalement, il comparera les informations d'identification de l'utilisateur stockées dans la base de données avec les informations d'identification fournies par l'utilisateur sur la page de connexion. S'ils correspondent, il crée une nouvelle session et stocke l'ID utilisateur dans $_SESSION['user_id']. Il sera ensuite redirigé vers la page Dashboard.php.

Dans cet exemple, nous supposons que le nom d'utilisateur et le mot de passe sont déjà stockés dans une table de base de données appelée utilisateurs.

<?php
session_start();
if (isset($_SESSION[&#39;user_id&#39;])) {
    header(&#39;Location: dashboard.php&#39;);
    exit();
}

if (empty($_POST[&#39;user_name&#39;]) || empty($_POST[&#39;password&#39;])) {
    header(&#39;Location: login.php&#39;);
    exit();
}

$user_name = $_POST[&#39;user_name&#39;];
$password = $_POST[&#39;password&#39;];

$db = new PDO(&#39;mysql:host=localhost;dbname=mydatabase;charset=utf8mb4&#39;, &#39;username&#39;, &#39;password&#39;);
$stmt = $db->prepare("SELECT id FROM users WHERE user_name=:user_name AND password=:password");
$stmt->execute(array(':user_name' => $user_name, ':password' => $password));
$user = $stmt->fetch();

if (!$user) {
    header('Location: login.php');
    exit();
}

$_SESSION['user_id'] = $user['id'];
header('Location: dashboard.php');

Le flux d'exécution du code ci-dessus est le suivant :

Tout d'abord, nous vérifions la valeur de $_SESSION['user_id']. Si elle existe, cela signifie que l'utilisateur s'est connecté et essaie de se reconnecter. . Dans ce cas, nous redirigerons vers la page Dashboard.php.

Ensuite, nous vérifions si l'utilisateur a fourni un nom d'utilisateur et un mot de passe dans le formulaire de connexion. Dans le cas contraire, le processus de connexion est considéré comme invalide. Dans ce cas nous redirigerons vers la page login.php.

Ensuite, nous recherchons le nom d'utilisateur et le mot de passe fournis par l'utilisateur dans la base de données. Nous utilisons l'extension PHP PDO pour nous connecter à la base de données MySQL. Pour un nom d'utilisateur et un mot de passe donnés, nous vérifierons si la ligne correspondante existe dans la table des utilisateurs. S'il est présent, l'utilisateur est authentifié.

Enfin, nous créons une nouvelle variable $_SESSION['user_id'], qui stocke l'ID de l'utilisateur, et redirigeons vers la page Dashboard.php.

  1. Fichier dashboard.php Le fichier

dashboard.php affichera l'état de la session de l'utilisateur. Si l'utilisateur a été authentifié, la page Dashboard.php lira la variable $_SESSION['user_id'] et affichera un message de bienvenue.

<?php
session_start();
if (!isset($_SESSION[&#39;user_id&#39;])) {
    header(&#39;Location: login.php&#39;);
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Dashboard</title>
    <meta charset="utf-8">
</head>
<body>
    <h1>Dashboard</h1>
    <p>Welcome!</p>
</body>
</html>

Le flux d'exécution du code ci-dessus est le suivant :

Tout d'abord, nous vérifions la valeur de la variable $_SESSION['user_id'] Si la variable n'existe pas, cela signifie que l'utilisateur n'a pas été authentifié. Dans ce cas nous redirigerons vers la page login.php.

Ensuite, nous affichons un message de bienvenue indiquant que l'utilisateur a été authentifié et peut accéder à la ressource protégée.

Dans cet article, nous avons appris comment implémenter un système de connexion de base en utilisant PHP. Le système utilise la syntaxe de base HTML et PHP, ainsi que les extensions MySQL et PDO. Grâce à cet exemple, vous avez appris à créer un formulaire HTML, à lire et à écrire des données dans une base de données MySQL, à créer une nouvelle session et à inspecter les variables de la session. Ces compétences sont toutes nécessaires pour créer des applications Web plus complexes.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn