Maison >développement back-end >tutoriel php >Étapes d'apprentissage PHP : Comment utiliser le système de gestion du contrôle des autorisations

Étapes d'apprentissage PHP : Comment utiliser le système de gestion du contrôle des autorisations

WBOY
WBOYoriginal
2023-08-26 18:30:111023parcourir

Étapes dapprentissage PHP : Comment utiliser le système de gestion du contrôle des autorisations

Étapes d'apprentissage PHP : Comment utiliser le système de gestion du contrôle des autorisations

Introduction :
Dans le développement de logiciels modernes, le contrôle des autorisations est une partie très importante. Qu'il s'agisse d'un système de gestion de site Web ou d'un système de gestion backend, le contrôle des autorisations est une fonction essentielle. Cet article explique comment utiliser le langage de programmation PHP pour implémenter un système de gestion de base du contrôle des autorisations.

Étape 1 : Créer une table de base de données
Tout d'abord, nous devons créer une base de données pour stocker les informations sur les utilisateurs et les autorisations. Nous pouvons utiliser MySQL ou d'autres bases de données relationnelles pour créer des tables.

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `permissions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `permission` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
);

Le tableau ci-dessus sera utilisé pour stocker les informations utilisateur et les informations d'autorisation. La table 'users' est utilisée pour stocker les noms d'utilisateur et les mots de passe, et la table 'permissions' est utilisée pour stocker la correspondance entre les utilisateurs et les autorisations, où 'user_id' est la clé étrangère de la table 'user'.

Étape 2 : Créer du code PHP
Nous utiliserons PHP pour écrire du code afin d'implémenter le système de gestion du contrôle des autorisations. Tout d’abord, nous devons nous connecter à la base de données.

<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
  die("连接失败: " . $conn->connect_error);
}

// 程序继续执行...
?>

Dans le code ci-dessus, vous devez remplacer « votre nom d'utilisateur » et « votre mot de passe » par votre propre nom d'utilisateur et mot de passe de base de données. « your_database » doit être remplacé par votre propre nom de base de données.

Étape 3 : Connexion et vérification de l'utilisateur
Ensuite, nous devons implémenter les fonctions de connexion et de vérification de l'utilisateur. Tout d’abord, créez un formulaire de connexion.

<form action="login.php" method="POST">
  <input type="text" name="username" placeholder="用户名">
  <input type="password" name="password" placeholder="密码">
  <input type="submit" value="登录">
</form>

Ensuite, créez un nouveau fichier appelé 'login.php' pour gérer la soumission du formulaire.

<?php
session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $username = $_POST["username"];
  $password = $_POST["password"];

  $sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
  $result = $conn->query($sql);

  if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $_SESSION["user_id"] = $row["id"];
    header("Location: dashboard.php");
  } else {
    echo "用户名或密码错误";
  }
}

$conn->close();
?>

Dans le code ci-dessus, nous utilisons la variable $_SESSION pour stocker l'identifiant de l'utilisateur pour la vérification des autorisations dans d'autres pages. Si la connexion réussit, nous redirigerons l'utilisateur vers une nouvelle page appelée « dashboard.php ». $_SESSION变量来存储用户的id,以便在其他页面中进行权限验证。如果登录成功,我们会将用户重定向到一个名为'dashboard.php'的新页面。

步骤四:权限验证
在每个需要进行权限控制的页面,我们需要先验证用户是否具有相应的权限。以下是一个示例页面的代码:

<?php
session_start();

if(!isset($_SESSION["user_id"])){
  header("Location: login.php");
  exit;
}

$user_id = $_SESSION["user_id"];

$sql = "SELECT * FROM permissions WHERE user_id = $user_id AND permission = 'admin'";
$result = $conn->query($sql);

if ($result->num_rows == 0) {
  echo "权限不足";
  exit;
}

// 程序继续执行...
?>

在以上的代码中,我们首先验证$_SESSION["user_id"]

Étape 4 : Vérification des autorisations

Sur chaque page nécessitant un contrôle des autorisations, nous devons d'abord vérifier si l'utilisateur dispose des autorisations correspondantes. Voici le code d'un exemple de page :
rrreee

Dans le code ci-dessus, nous vérifions d'abord si $_SESSION["user_id"] existe, et s'il n'existe pas, redirigeons l'utilisateur vers le page de connexion. Nous interrogeons ensuite la base de données en fonction de l'identifiant de l'utilisateur et vérifions si l'utilisateur dispose de l'autorisation nommée « admin ». S'il n'y a aucune autorisation, le programme affichera « Autorisations insuffisantes » et arrêtera l'exécution.

Conclusion :

Grâce aux étapes ci-dessus, nous avons mis en œuvre avec succès un système de gestion de contrôle des autorisations de base. Vous pouvez continuer à étendre ce système et ajouter plus d'autorisations et de fonctions.

🎜Bien sûr, ce n'est qu'un exemple d'entrée de gamme. Dans les projets réels, vous aurez peut-être besoin de plus de fonctions et d’une logique de contrôle des autorisations plus complexe. Sur la base d’une étude approfondie de PHP et des bases de données, vous pouvez encore améliorer vos capacités de contrôle des autorisations. 🎜🎜J'espère que cet article vous aidera à apprendre PHP et à mettre en œuvre un système de gestion du contrôle des autorisations ! 🎜

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