Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Моя авторизация. Насколько хорошо?
mysql_connect("localhost","root",") or die ("Ошибка!");
mysql_select_db ("datebase") or die ("Ошибка!");
$query = "SELECT * FROM users WHERE name ='$name'";
$result = mysql_query ($query);
if (mysql_numrows($result) != 1)
{
header ("Location: index.php");
exit;
}
else
{
$res=mysql_fetch_array($result);
$admin = $res['admin'];
if($admin != 'y')
{
header ("Location: index.php");
exit;
}
}
?>
(Добавление) Целесобразно ли в таблице users у каждого юзаря создавать два поля 'admin' & 'moder'. Которые имеют два значения y OR n, что сответственно означает принадлежность юзаря к тем или иным.
Помогите баги выявить в скриптах. (Добавление)
( если они есть )
Dastar
Отправлено: 03 Марта, 2008 - 08:50:51
Частый гость
Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008 Откуда: Израиль
Помог: -6 раз(а)
Если пользователь он админ, он имеет так же права модера, так?
Лучше сделай одно поле, status (или подобное), которое будет ENUM, и будет выбор либо обычный пользователь, либо модератор либо администратор. Так, имхо, целесобразней.
----- Не знаешь - молчи.
D1mOn
Отправлено: 03 Марта, 2008 - 09:00:01
Частый гость
Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008 Откуда: Гагастан
Помог: 0 раз(а)
[+][+][+][+][+]
Я думал, что раз он админ, то он и модер одновременно, а модер он просто модер!
Но спасибо за мысль.
А насчёт безопасности? (Добавление) А что такое ENUM?
Dastar
Отправлено: 03 Марта, 2008 - 09:01:06
Частый гость
Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008 Откуда: Израиль
Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008 Откуда: Гагастан
Помог: 0 раз(а)
[+][+][+][+][+]
И как им пользоваться на мойм примере?
Dastar
Отправлено: 03 Марта, 2008 - 09:04:34
Частый гость
Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008 Откуда: Израиль
Помог: -6 раз(а)
ENUM - тип данных, которое задает, что значение поля может иметь только одно из указанных значений. К примеру:
status ENUM('user', 'moder', 'admin', 'banned')
----- Не знаешь - молчи.
D1mOn
Отправлено: 03 Марта, 2008 - 09:06:06
Частый гость
Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008 Откуда: Гагастан
Помог: 0 раз(а)
[+][+][+][+][+]
А насчёт безопасности, мож че подскажеш? Про сессии например. У меня register_globals = off
А вот еще что: где тогда мне указать время или срок бана для юзаря?
А как можно раграничить сессию админа, модера и юзера?
?
Зачем постоянно перелавать через GET sid польнователя? Это: 1. не безопасно (имхо). 2. не красиво. Кроме того, в каком-нибуть месте забудете поставить нужный адресс, и все, доступ будет потерян.
Лучше храните sid пользователя в базе данных, и просто сравнивать, если sid в сессии равен sid в бд, и если нет - выкидывать юзера.
Срок бана лучше указать в отдельном поле в таблице юзверей.
----- Не знаешь - молчи.
D1mOn
Отправлено: 03 Марта, 2008 - 09:21:27
Частый гость
Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008 Откуда: Гагастан
Помог: 0 раз(а)
[+][+][+][+][+]
0.о спасибо, не догодался бы ) ща все сделаю ) (Добавление)
Я таблицу сессий сделал вот так
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 32 ) NOT NULL ,
`sid` VARCHAR( 32 ) NOT NULL ,
`date` DATETIME NOT NULL DEFAULT '00.00.00 00:00'
) ENGINE = MYISAM ;
Скорее всего, как я понимаю, мне надо будет проверять при каждом заходе время открытия сессии с текущим временем и удалять, те которые допустим были открыты более 30 минут (допустим), и закрывать их?
Dastar
Отправлено: 03 Марта, 2008 - 09:33:20
Частый гость
Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008 Откуда: Израиль
Помог: -6 раз(а)
Да.
----- Не знаешь - молчи.
D1mOn
Отправлено: 03 Марта, 2008 - 09:48:59
Частый гость
Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008 Откуда: Гагастан
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.