Comment ajouter un niveau d'accès utilisateur dans la fonction de connexion PHP
P粉680000555
P粉680000555 2023-09-05 20:51:43
0
1
480
<p>J'ai développé un script de connexion/enregistrement PHP qui, lorsqu'un utilisateur se connecte, démarre une session et crée un cookie, puis redirige l'utilisateur vers Dashboard.php en utilisant : </p> <pre class="brush:php;toolbar:false;">//obtenir des données dans des variables $emailAddress = mysqli_real_escape_string($conn,$_POST['emailAddress']); $mot de passe = mysqli_real_escape_string($conn,$_POST['mot de passe']); $remember = isset($_POST['rememberMe']); if(!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) { $error = 'Veuillez entrer une adresse e-mail valide.'; } elseif(email_exists($emailAddress,$conn)) { // si l'adresse e-mail existe $result = mysqli_query($conn,"SELECT password FROM users WHERE email = '$emailAddress'"); $retrievePassword = mysqli_fetch_assoc($result); if(!password_verify($password,$retrievePassword['password'])) // si le mot de passe ne correspond pas { $error = 'Le mot de passe est incorrect.'; } else { // si le mot de passe est correct, connectez l'utilisateur $_SESSION['email'] = $emailAddress; if($remember == 'on') { // si "garder l'utilisateur connecté" était coché setcookie("email",$emailAddress,time()+7200); // garde l'utilisateur connecté pendant 2 heures } header("emplacement : tableau de bord.php"); } } else { // si l'e-mail n'existe pas $error = 'Adresse e-mail non enregistrée.'; }</pré> <p>En haut de toutes mes pages restreintes (par exemple, tableau de bord.php), j'ai : </p> <pre class="brush:php;toolbar:false;">if(logged_in()) { // si l'utilisateur est connecté, afficher la page</pre> La fonction <p>logged_in() est : </p> <pre class="brush:php;toolbar:false;">fonction log_in(){ if(isset($_SESSION['email']) || isset($_COOKIE['email'])) { renvoie vrai ; } autre { renvoie faux ; } }</pré> <p>Dans la base de données, j'ai une colonne intitulée <code>usrUserTypeNo</code> qui contient "1" pour l'administrateur et "3" pour les utilisateurs réguliers. Comment puis-je intégrer ce type d'utilisateur dans la session afin de pouvoir déterminer quel contenu est présenté à l'utilisateur en fonction de son rôle ? </p>
P粉680000555
P粉680000555

répondre à tous(1)
P粉041856955

Pas exactement.

Si vous souhaitez effectuer l'une des trois actions différentes (non connecté, utilisateur normal, utilisateur administrateur), vous devez alors tester ces états et écrire une logique pour chaque état.

Vous pouvez stocker le niveau d'accès dans la session au lieu de le demander à la base de données à chaque fois.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal