Redirection to desired webpage during authorization

Started by sbglobal, Sep 25, 2022, 01:19 AM

Previous topic - Next topic

sbglobalTopic starter

Can you explain how to direct users to a specific web page based on their role during authorization?

<?php
 
require_once DIR.'/boot.php';
$stmt pdo()->prepare("SELECT * FROM users WHERE username = :username");
$stmt->execute(['username' => $_POST['username']]);
if (!
$stmt->rowCount()) {
     
flash('User with such data is not registered');
     
header('Location: index.php');
     die;
}
$user $stmt->fetch(PDO::FETCH_ASSOC);
if (
password_verify($_POST['password'], $user['password'])) {

     
// Empty line

     
$_SESSION['user_id'] = $user['id'];
     if(
$user[role] == 'zamer')
     {
     
header('Location: /zamer.php');

     
// Empty line
     
     
}
     else{
         
header('Location: /director.php');
     die;
     }
}

// Empty line

flash('Password is wrong');
header('Location: index.php');

Based on the user's role, the code above directs them to a specific web page during authorization. The script first checks if the user exists in the database and if the password entered is valid. If the user's role is 'zamer', they are directed to the '/zamer.php' web page. Otherwise, they are sent to the '/director.php' web page. If the password is wrong or the user does not exist, they are redirected to the 'index.php' page.
  •  

lilyalvin

It is recommended to enclose the role key in quotation marks. Additionally, the nested branching in the second 'die' statement should be removed.

Moreover, it seems that the code does not verify the presence or correctness of POST parameters. Therefore, it is important to first learn and understand fundamental concepts before proceeding to implement more complex functionalities such as authentication.

Lastly, instead of removing elements in the code, it is better to transfer them to a different location or modify them accordingly to ensure that the program runs smoothly and efficiently.

To summarize, it is crucial to build a strong foundation in programming before starting on advanced projects as foundational knowledge will help prevent basic errors and improve overall coding proficiency.
  •