Maison développement back-end tutoriel php Comment utiliser PHP pour implémenter des fonctions de contrôle d'autorisation

Comment utiliser PHP pour implémenter des fonctions de contrôle d'autorisation

Jun 23, 2023 am 10:16 AM
访问控制列表 (acl) 用户权限管理 php权限控制

Le contrôle des autorisations est une exigence courante de développement Web, qui permet aux applications Web de fournir différents droits d'accès à différents utilisateurs. En PHP, le contrôle des autorisations peut être effectué de différentes manières. Cet article se concentrera sur l'utilisation de la session et de la base de données pour réaliser le contrôle des autorisations.

1. Utilisez Session pour contrôler les autorisations

Session est une technologie de gestion d'état couramment utilisée dans le développement Web. En enregistrant les informations utilisateur dans Session, nous pouvons partager ces informations entre plusieurs pages de l'application. Afin de mettre en œuvre le contrôle des autorisations, nous pouvons enregistrer les informations de l'utilisateur dans la session une fois que l'utilisateur s'est connecté et vérifier si la session existe dans la page qui nécessite un contrôle des autorisations pour déterminer si l'utilisateur a l'autorisation d'accéder à la page.

Ce qui suit est un exemple simple d'utilisation de Session pour implémenter le contrôle des autorisations :

  1. Page de connexion (login.php)
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  // 验证登录
  $username = $_POST['username'];
  $password = $_POST['password'];
  if ($username == 'admin' && $password == '1234') {
    // 登录成功,保存用户信息到Session
    $_SESSION['user'] = array(
      'username' => $username,
      'role' => 'admin' // 权限角色
    );
    header('Location: index.php');
    exit;
  } else {
    // 登录失败
    $error = '用户名或密码错误';
  }
}
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>登录</title>
</head>
<body>
  <h1>登录</h1>
  <form method="post">
    <label>用户名:</label><input type="text" name="username"><br>
    <label>密码:</label><input type="password" name="password"><br>
    <input type="submit" value="登录"><br>
    <?php if (isset($error)) { echo $error; } ?>
  </form>
</body>
</html>
Copier après la connexion
  1. Page qui nécessite un contrôle d'autorisation (index.php)
<?php
session_start();
// 检查Session是否存在,判断用户是否登录
if (!isset($_SESSION['user'])) {
  header('Location: login.php');
  exit;
}
// 检查用户角色,判断用户是否有权限访问该页面
if ($_SESSION['user']['role'] != 'admin') {
  header('Location: unauthorized.php');
  exit;
}
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>首页</title>
</head>
<body>
  <h1>欢迎您,<?php echo $_SESSION['user']['username']; ?></h1>
  <p>这是管理员页面,只有管理员才能访问。</p>
  <a href="logout.php">退出登录</a>
</body>
</html>
Copier après la connexion
Copier après la connexion
  1. Quitter la page de connexion ( logout. php)
<?php
session_start();
// 销毁Session,用户退出登录
session_destroy();
header('Location: login.php');
exit;
?>
Copier après la connexion
Copier après la connexion

2. Utiliser la base de données pour implémenter le contrôle des autorisations

Dans l'exemple d'utilisation de Session pour implémenter le contrôle des autorisations, les informations utilisateur sont enregistrées dans la session. Si l'application Web dispose de plusieurs serveurs en même temps, le partage. des informations de session peuvent causer des problèmes. À l'heure actuelle, nous pouvons enregistrer les informations utilisateur dans la base de données pour obtenir un contrôle des autorisations dans un environnement distribué.

Ce qui suit est un exemple simple d'utilisation d'une base de données MySQL pour implémenter le contrôle des autorisations :

  1. Création d'une table utilisateur
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `role` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Copier après la connexion
  1. Traitement de la connexion utilisateur (login.php)
<?php
session_start();
$user = null;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  // 验证登录
  $username = $_POST['username'];
  $password = $_POST['password'];
  // 查询用户信息
  $con = mysqli_connect('localhost', 'root', '', 'test');
  $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
  $result = mysqli_query($con, $sql);
  $user = mysqli_fetch_assoc($result);
  mysqli_close($con);
  // 验证用户信息,保存用户信息到Session
  if ($user != null) {
    $_SESSION['user'] = $user;
    header('Location: index.php');
    exit;
  } else {
    // 登录失败
    $error = '用户名或密码错误';
  }
}
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>登录</title>
</head>
<body>
  <h1>登录</h1>
  <form method="post">
    <label>用户名:</label><input type="text" name="username"><br>
    <label>密码:</label><input type="password" name="password"><br>
    <input type="submit" value="登录"><br>
    <?php if (isset($error)) { echo $error; } ?>
  </form>
</body>
</html>
Copier après la connexion
  1. Pages qui nécessitent un contrôle des autorisations (index .php)
<?php
session_start();
// 检查Session是否存在,判断用户是否登录
if (!isset($_SESSION['user'])) {
  header('Location: login.php');
  exit;
}
// 检查用户角色,判断用户是否有权限访问该页面
if ($_SESSION['user']['role'] != 'admin') {
  header('Location: unauthorized.php');
  exit;
}
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>首页</title>
</head>
<body>
  <h1>欢迎您,<?php echo $_SESSION['user']['username']; ?></h1>
  <p>这是管理员页面,只有管理员才能访问。</p>
  <a href="logout.php">退出登录</a>
</body>
</html>
Copier après la connexion
Copier après la connexion
  1. Quitter la page de connexion (logout.php)
<?php
session_start();
// 销毁Session,用户退出登录
session_destroy();
header('Location: login.php');
exit;
?>
Copier après la connexion
Copier après la connexion

Résumé :

Cet article présente comment implémenter le contrôle des autorisations à l'aide de la session et de la base de données. Le contrôle des autorisations implémenté à l'aide de Session est simple et adapté aux petites applications Web ; le contrôle des autorisations implémenté à l'aide d'une base de données est plus flexible et plus adapté aux grandes applications Web. Quelle que soit la méthode utilisée, l’essentiel est de comprendre les principes et les méthodes de mise en œuvre du contrôle des autorisations pour garantir la sécurité et la stabilité des applications Web.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Analyse comparative de la technologie des bases de données Oracle et DB2 Analyse comparative de la technologie des bases de données Oracle et DB2 Mar 11, 2024 am 09:54 AM

Oracle et DB2 sont deux systèmes de gestion de bases de données relationnelles (SGBDR) bien connus et largement utilisés dans les applications d'entreprise. Dans cet article, nous comparerons les deux technologies de bases de données d'Oracle et DB2 et les analyserons en détail, y compris l'analyse de leurs caractéristiques, performances, fonctions et exemples d'utilisation. 1. Présentation de la technologie de base de données Oracle Oracle est un système de gestion de base de données relationnelle développé par Oracle Corporation aux États-Unis. Il est largement utilisé dans les applications au niveau de l'entreprise et présente des performances et une stabilité élevées.

Problèmes de vérification de connexion et de gestion des droits des utilisateurs rencontrés dans le développement de Vue Problèmes de vérification de connexion et de gestion des droits des utilisateurs rencontrés dans le développement de Vue Oct 09, 2023 am 10:12 AM

Les problèmes de vérification de connexion et de gestion des droits d'utilisateur rencontrés dans le développement de Vue nécessitent des exemples de code spécifiques. Dans le processus de développement de Vue, la vérification de connexion et la gestion des droits d'utilisateur sont une question très importante. Lorsqu'un utilisateur se connecte au système, il doit être authentifié et les pages et fonctions auxquelles l'utilisateur peut accéder sont déterminées en fonction de différents niveaux d'autorisation. Ce qui suit sera combiné avec des exemples de code spécifiques pour présenter comment implémenter la vérification de connexion et la gestion des droits d'utilisateur dans Vue. Vérification de la connexion La vérification de la connexion est un élément important pour garantir la sécurité du système. Dans le développement front-end, nous avons généralement

Qu'est-ce que Discuz ? Introduction aux fonctions et caractéristiques Qu'est-ce que Discuz ? Introduction aux fonctions et caractéristiques Mar 03, 2024 am 10:18 AM

Tout d’abord, expliquons ce qu’est Discuz. Discuz (anciennement connu sous le nom de Discuz !) est un logiciel de forum open source développé par des développeurs chinois et convient à la création de communautés ou de forums en ligne. Il offre des fonctionnalités riches et des options de personnalisation flexibles, permettant aux administrateurs de sites Web de créer facilement une puissante plateforme communautaire. La popularité de Discuz est principalement due à sa facilité d'utilisation, sa stabilité et ses puissantes fonctions sociales, qui conviennent aux sites Web de différentes tailles et besoins. Examinons ensuite de plus près les fonctions et caractéristiques de Discuz.

Comment utiliser Laravel pour implémenter des fonctions de gestion des droits des utilisateurs Comment utiliser Laravel pour implémenter des fonctions de gestion des droits des utilisateurs Nov 02, 2023 pm 02:09 PM

Comment utiliser Laravel pour implémenter des fonctions de gestion des droits des utilisateurs Avec le développement des applications Web, la gestion des droits des utilisateurs est devenue de plus en plus importante dans de nombreux projets. Laravel, en tant que framework PHP populaire, fournit de nombreux outils et fonctions puissants pour gérer la gestion des droits des utilisateurs. Cet article expliquera comment utiliser Laravel pour implémenter des fonctions de gestion des droits des utilisateurs et fournira des exemples de code spécifiques. Conception de la base de données Tout d'abord, nous devons concevoir un modèle de base de données pour stocker la relation entre les utilisateurs, les rôles et les autorisations. Pour rendre les choses plus faciles, nous ferons

Paramètres de sécurité pour la liste de contrôle d'accès (ACL) Nginx Paramètres de sécurité pour la liste de contrôle d'accès (ACL) Nginx Jun 10, 2023 pm 09:55 PM

Dans l'environnement Internet actuel, la sécurité est devenue un élément important de tout système. Nginx est actuellement l'un des serveurs Web les plus populaires et sa liste de contrôle d'accès (ACL) est un outil important pour protéger la sécurité des sites Web. Une ACL Nginx bien définie peut vous aider à protéger votre serveur et votre site Web contre les attaques. Cet article explique comment configurer des listes de contrôle d'accès Nginx pour garantir la sécurité de votre site Web. Qu'est-ce que la liste de contrôle d'accès (ACL) Nginx ? ACL(AccessCon

Comment utiliser PHP pour développer une fonction simple de gestion des droits des utilisateurs Comment utiliser PHP pour développer une fonction simple de gestion des droits des utilisateurs Sep 25, 2023 pm 12:30 PM

Comment utiliser PHP pour développer une fonction simple de gestion des droits des utilisateurs Introduction : Avec le développement d'Internet, les fonctions de gestion des droits des utilisateurs deviennent de plus en plus importantes. PHP, en tant que langage de script côté serveur populaire, est largement utilisé pour développer des sites Web dynamiques. L'utilisation de PHP pour développer une fonction simple de gestion des droits des utilisateurs peut aider les administrateurs de sites Web à contrôler de manière flexible les droits d'accès des utilisateurs et à protéger la sécurité du site Web. Cet article explique comment utiliser PHP pour implémenter une telle fonctionnalité et fournit des exemples de code spécifiques. 1. Conception de la base de données Tout d'abord, nous avons besoin

Comment utiliser PHP pour implémenter le contrôle des autorisations de répertoire et le cryptage des fichiers Comment utiliser PHP pour implémenter le contrôle des autorisations de répertoire et le cryptage des fichiers Jun 25, 2023 pm 02:25 PM

Avec le développement continu des applications Web, le contrôle des autorisations d'annuaire et le cryptage des fichiers deviennent de plus en plus importants afin de protéger la sécurité des données des utilisateurs et des applications. En tant que puissant langage de script côté serveur, PHP peut nous aider à mettre en œuvre le contrôle des autorisations de répertoire et le cryptage des fichiers, rendant ainsi nos applications plus sécurisées et fiables. 1. Contrôle des autorisations de répertoire Dans les applications Web, nous devons souvent fournir aux utilisateurs un espace de stockage de fichiers privé pour leur permettre de télécharger et de télécharger leurs propres fichiers. Afin d'assurer la sécurité des fichiers, nous devons

Comment utiliser les décms Comment utiliser les décms Apr 16, 2024 pm 12:15 PM

Dedecms est un système CMS chinois open source qui assure la gestion de contenu, un système de modèles et une protection de sécurité. L'utilisation spécifique comprend les étapes suivantes : 1. Installez Dedecms. 2. Configurez la base de données. 3. Connectez-vous à l'interface de gestion. 4. Créez du contenu. 5. Configurez le modèle. 6. Gérer les utilisateurs. 7. Entretenir le système.

See all articles