I have two tables :
Users :
- id_user : int;
- lastname : varchar(255):
- firstname : varchar(255);
- login : varchar(255);
- password : varchar(255);
- roles_id : int (foreign key);
Roles :
- id_roles : int;
- name : varchar(255);
And i have some data :
Users :
1, lastname1, firstname1, login1, password1, 1
2, lastname2, firstname2, login2, password2, 3
3, lastname3, firstname3, login3, password3, 2
Roles :
1, admin
2, moderator
3, user
and I have a menu :
session_start();
<li><a><i class="fa fa-cog"></i> configuration<span class="fa fa-chevron-down"></span></a>
<ul class="nav child_menu" style="display: none">
<?php if($_SESSION['Auth']['roles_id'] == 1){
?>
<li><a href="#">add user</a></li>
<li><a href="#">List Users</a></li>
<?php
}elseif($_SESSION['Auth']['roles_id'] == 2){
?>
<li><a href="#">add Product</a></li>
<li><a href="#">List Product</a></li>
<?php }
elseif($_SESSION['Auth']['roles_id'] == 3){
?>
<li><a href="#">add input</a></li>
<li><a href="#">List inputs</a></li>
<?php } ?>
</ul>
</li>
I would like instead of roles_id in the condition, I can put the name of role.For example:
<?php if($_SESSION['Auth']['name'] == 'admin'){
?>
And
<?php if($_SESSION['Auth']['name'] == 'moderator'){
?>
and
<?php if($_SESSION['Auth']['name'] == 'user'){
?>
And query save value name :
extract($_POST);
$password = sha1($password);
$sql = "SELECT u.*, r.* FROM users as u INNER JOIN roles AS r ON r.id = u.roles_id WHERE login = '$login' AND password = '$password'";
$req = $db->query($sql)
if($req ->rowCount()> 0){
$data = $req->fetch(PDO::FETCH_ASSOC)) ;
$_SESSION['Auth']= array(
'login' => $login,
'password' => $password,
'roles_id' => $data['roles_id'],
'lastname ' => $data['lastname'],
'firstname' => $data['firstname'],
'name' => $data['name'],
);
}
but when i do session name :
$_SESSION['Auth']['name']
he gave me a warning: Undefined index name.
- how to use name the role in session.