2015-03-29 2 views
0

У меня возникла проблема с PHP, поскольку я пытаюсь написать программу, которая перенаправляет пользователя на предыдущую страницу (membersOnly.php). Вот код, который в настоящее время не работает для меня.Как предоставить доступ определенным пользователям с помощью PHP

$sess = $_SESSION['sess_username']; 

if ($sess == "admin") { 
    return; 
} else { 
    header("Location: membersOnly.php"); 
} 

Моя попытка разрешить пользователю «admin» на странице admin.php. Этот код запускается первым. [ «Sess_username»] переменный $ _SESSION назначаются в login.php со следующим кодом:

session_start(); 
$_SESSION['sess_username'] = $_POST['user']; 
header("Location: membersOnly.php"); 

Теперь я знаю, что я правильно настроить имя пользователя сеанса, потому что в любых страницах я выбираю, я могу использовать эхо $ _SESSION [ 'sess_username']; и он отображает имя пользователя. Но я не уверен, что я делаю неправильно, когда пытаюсь отправить пользователя обратно членам membersOnly.php, если их имя пользователя не является администратором. В настоящее время, когда я пытаюсь перейти на эту страницу, он запрещает доступ любому пользователю, включая администратора.

[EDIT: SOLVED] Я забыл добавить session_start(); в верхней части страницы.

+0

ОК, похоже, что вы вызываете 'return;', что, скорее всего, просто возвращает пустую страницу. Попробуйте изменить его на 'die ('IM AN ADMIN');' и 'die ('IM NOT ADMIN');' для начала и посмотреть, какие результаты вы получите. –

+0

нет, это не так, но спасибо за указатель @Danbopes – user3670816

+0

Что значит «это не он»? Что вы получаете? Показывает ли он «IM AN AD» или «IM NOT ADMIN»? –

ответ

1

Danbopes прав, вы «возвращаете» пустую страницу. Вы можете просто сделать это. Теперь обратите внимание, что этот код не будет работать, если имя пользователя «admin» не будет сохранено в сеансе.

$sess = $_SESSION['sess_username']; 

if($sess !== 'admin'){ 
    header("Location: membersOnly.php"); 
    exit(); 
} 

//ADMIN CONTENT 
+0

его просто отправляет какой-либо пользователь обратно членам membersOnly.php – user3670816

+0

Хорошо, попробуйте повторить сеанс «sess_username» поверх этого кода. Говорит ли он администратору в нижнем регистре, как в коде. –

+0

Хорошо, я только что нашел ответ. Я забыл поставить session_start(); в верхней части кода. Большое спасибо, я понял это, когда я попытался повторить его, и он ничего не ответил. Спасибо maam – user3670816

Смежные вопросы