Hosting & Domaining Forum

Hosting Discussion => Hosting Software and Control Panels => Hosting Software & CPs Related Offers & Requests => Topic started by: sbglobal on Sep 25, 2022, 01:19 AM

Title: Redirection to desired webpage during authorization
Post by: sbglobal on Sep 25, 2022, 01:19 AM
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.
Title: Re: Redirection to desired page during authorization
Post by: lilyalvin on Sep 25, 2022, 02:11 AM
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.