[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не могу разобраться с session
yourapp
Аутентификация пользователя, заходящего в свой личный кабинет, производится на странице index.php?.., сессию я начинаю на этой же странице, провожу проверку введенных данных, сверяю с бд.. ( вообщем проверка). Далее следует условие если зашел в систему (те данные верные) то выводится доп панель если нет то не выводится.. ( тут опять все понятно) . Но я хочу сделать + еще одну страницу,администрирования. Допустим я называю ее admin.php?..., Пишу аутентификацию и тд .Те делал как для индекса но чуть инеаче. Условие: если аутентификация не прошла то вывожу форму для ввода, если прошла то ..
Так вот решил я проверить все это безобразие. И при аутентификации юзера (не админа) на index, все нормально но когда я перехожу на admin.php он меня авторизовывает и дает доступ к админ.php. Тут я подумал что можно написать условие что только пользователь с определенным именем может заходить в админ панель (но я думаю что это детский сад). Или же тут нужно мутить с session? У вас есть какие-нибудь варианты, как можно сделать аутентификацию для двух страниц ?

_____________
Цитата
Если ни за что не борешься, ничего и не получишь
AllesKlar
Неплохо бы в следующий раз кусок кода выкладывать.

Но раз мы вчера пили чай, и ты мне показывал..
У тебя в сессии сохраняется флаг о том, что пользователь залогинился.
Что проверяет твоя админка? Залогилился ли пользователь.
Но этого не достаточно.
У пользователя еще должны быть и права админа.
Способов много.
Как вариант: если админ, что в сессии хранить метку.
Hе имя, а просто, например
$_SESSION['admin'] = 1;


Второй вариант (для лично меня предпочтительней):
Если пользователь залогинился, то в сессию записываем его id
$_SESSION['user_id'] = 123;

Далее, везде, где тебе нужен пользователь, ты создаешь объект соответсвующего класса.
А далее методами класса уже контролируешь права доступа.
У тебя же может быть несколько админов с разными уровнями доступа.

// admin.php
session_start();
if( ! empty($_SESSION['user_id']))
{
$user = new User($_SESSION['user_id']);
if(! $user->isAdmin())
{
header('location: login.php');
}

}


_____________
[продано копирайтерам]
yourapp
Оооо biggrin.gif
Точно, я забыл совсем про переменную сеанса dry.gif
А про права админа даже не подумал.
Все, я понял. Спасибо огромное =)

_____________
Цитата
Если ни за что не борешься, ничего и не получишь
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.