DesignerMix
13.06.2009 - 20:09
Есть таблица с пользователями:
SQL |
CREATE TABLE `User` ( `id` int(100) NOT NULL auto_increment, `date` date NOT NULL, `status` varchar(20) NOT NULL, `login` varchar(60) default NULL, `pass` text NOT NULL, `session` text NOT NULL, `date_vhod` date default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=12 ; |
В нее при регистрации записывается имя пользователя (регистр учитывается) и в поле status его статус, т.е. админ или юзер (по defoult юзер).
Проблема в том, что когда мне надо отобразить для тех кто является админом элементы доступные только для них регистр влияет на это, т.е. Designermix и DesignerMix - это разные имена.
Проверку имени и статуса я выполняю вот так (имя у меня заносится в сессию при вводе имени в панель входа):
PHP |
<? include ("bd.php"); $admin=mysql_query("SELECT * FROM User WHERE status='admin'"); $admin_a=mysql_fetch_array($admin);
if ($_SESSION[fname]==$admin_a[3]) { echo "<div class=\"textInTable\" id=\"active\">"; echo "<a href=\"../../null/admin/index.php\" id=\"linkNav\">Админка</a></div>";} |
Все это работает но только если регистр при вводе имени совпал с регистром хранящимся в базе. Как исправить этот досадный косяк?
PS: кодировка cp1251_general_ci
Спустя 8 минут, 1 секунда (13.06.2009 - 19:17) FatCat написал(а):
Где проблема, наоборот.
Вот если бы Designermix (простой пользователь) и DesignerMix (админ) получали доступ к админке - тогда было бы проблемой...
Спустя 5 минут, 33 секунды (13.06.2009 - 19:22) freed-master написал(а):
Цитата |
В нее при регистрации записывается имя пользователя (регистр учитывается) |
Может изначально не учитывать его?
Спустя 12 секунд (13.06.2009 - 19:23) DesignerMix написал(а):
Цитата |
Где проблема, наоборот. Вот если бы Designermix (простой пользователь) и DesignerMix (админ) получали доступ к админке - тогда было бы проблемой... |
Создание второго пользователя с именем DesignerMix с любым регистром пресекается так:
PHP |
$query = "SELECT * FROM `User` WHERE `login` = '".$_POST['name']."'"; $result = mysql_query($query); if(!$result) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($result) > 0) exit("Такое имя уже занято"); |
Поэтому не может быть второго DesignerMix с любым регистром, но вот админам было-бы удобнее вводить имя без разницы с тем регистром с которым они регались или нет (ИМХО).
К стати я не пробовал на других сайтах входить с разными регистрами в имени, надо попробовать
Спустя 2 минуты, 52 секунды (13.06.2009 - 19:26) DesignerMix написал(а):
Цитата (freed-master @ 13.06.2009 - 16:22) |
Цитата | В нее при регистрации записывается имя пользователя (регистр учитывается) |
Может изначально не учитывать его? |
Это не повлияет на ту проверку которую я описал в первом посте. Например юзер зарегается введя имя с регистром, я учту его без регистра, а при попытке входа будет таже проблема.
Спустя 19 минут, 37 секунд (13.06.2009 - 19:45) FatCat написал(а):
Цитата (DesignerMix @ 13.06.2009 - 20:09) |
if ($_SESSION[fname]==$admin_a[3]) |
PHP |
if (strtolower($_SESSION[fname])==strtolower($admin_a[3])) |
Спустя 46 минут, 40 секунд (13.06.2009 - 20:32) DesignerMix написал(а):
FatCat
Я наверное сделаю еще эту функцию при регистрации, что-бы не было лишних проверок. Спасибо
Спустя 2 минуты, 42 секунды (13.06.2009 - 20:35) FatCat написал(а):
ИМХО, если где-то имя отображается, пользователям может быть приятным наличие заглавных букв.
Я бы не хотел, чтобы мое FatCat кто-то принудительно превратил в fatcat...
Спустя 1 минута, 28 секунд (13.06.2009 - 20:36) DesignerMix написал(а):
Точно!