[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как избавится от влияния регистра на имя?
DesignerMix
Есть таблица с пользователями:
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 с любым регистром, но вот админам было-бы удобнее вводить имя без разницы с тем регистром с которым они регались или нет (ИМХО).

К стати я не пробовал на других сайтах входить с разными регистрами в имени, надо попробовать rolleyes.gif

Спустя 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 написал(а):
Точно! smile.gif
Быстрый ответ:

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