Maison  >  Questions et réponses  >  le corps du texte

Comment ajouter un niveau d'accès utilisateur dans la fonction de connexion PHP

<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粉680000555P粉680000555382 Il y a quelques jours396

répondre à tous(1)je répondrai

  • P粉041856955

    P粉0418569552023-09-06 00:31:46

    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.

    répondre
    0
  • Annulerrépondre