I’m trying to give access to admin tools only to the admin.
What I tried to do: the session variable id, which is unique for every user. first I checked if there is even a session, if there isn’t I send the user to the index, than I check for the unique if of the admin “20” if the user’s id is different than 20 I send him the the index.
my problem: my if statment doesn’t work, I get sent back to index even when i’m logged-in as the admin.
My code:
<?php if(isset($_SESSION['userId'])){ header('Location:index.php?b'); } if($_SESSION['userId'] != 20){ header('Location:index.php?a'); } ?>
?a
and ?b
are for debugging, I get sent to index.php?a
when I try to access the my page.
when I echo $_SESSION['userId']
I get 20, so maybe something is wrong with the type?(although I checked and it says that !=
shouldn’t be effected by different types)
EDIT: sorry, I didn’t describe what I wanted correctly, if the id of the user is 20 I want him to stay in the page, if it isn’t I want to redirect him to index.
thanks!
Advertisement
Answer
Because you perform one test when that test passes or fails the comparison is over. You should probably perform a comparison like this because you only want to redirect when the ID is not 20:
<?php session_start(); if(isset($_SESSION['userId']) && $_SESSION['userId'] != 20) { header("Location: index.php"); exit(); } ?>