2012-07-01 2 views
0

Для пользователей с полномочиями модератора; Когда пользователь регистрируется в запросе, чтобы проверить, что пользователь является модератором, установите сеанс? Так что на страницах с вариантами замедлителя, напримерПроверка привилегий учетной записи PHP, сеанса или mysql

if($_SESSION['mod']==1) { 
//moderator options 
} 

В качестве альтернативы я могу поставить запрос на everypage и проверить, если пользователь помечен как модератор? Тогда для вариантов замедлителя, например

if($moderatorfound==1) { 
//moderator options 
} 

Ниже я в настоящее время установить имя пользователя в качестве замедлителя в печенье, но, как я учусь о PHP безопасности, это небезопасно;

if($moderator=='1') { 
    setcookie('username[3]',$moderator,time()+(60*60*24*365)); 
    } 

if($_COOKIE['username'][3]==1) { 
    //moderator options 
    } 

Что такое безопасный способ для этого? Пример поможет.

ответ

2

Как только пользователь войдет в систему, сохраните его информацию в переменных сеанса.
Не нужно проверять базу данных на каждой странице.
Печенье не является хорошим решением для хранения конфиденциальной информации (например, привилегий), поскольку пользователь может ее изменить.

+0

, поэтому я бы просто сделал $ _SESSION ['moderator'] = 1; при входе в систему? Это достаточно безопасно? – user892134

+0

это зависит от того, что вы имеете в виду «достаточно», но да - вообще этого достаточно. – EyalAr

0

В файле cookie установите сложный код и сохраните его в базе данных. Если сложный код соответствует имени пользователя, разрешите доступ.