ФорумПрограммированиеPHP для идиотов → Пишу авторизацию, пару вопросов

Пишу авторизацию, пару вопросов

  • killich

    Сообщения: 270 Репутация: N Группа: Адекваты

    Spritz 20 марта 2008 г. 11:16

    I.
    Пишу авторизацию.
    Хочу услышать ваше мнение о ее устройстве.
    Система такая.

    На один email можно зарегить несколько пользователей.
    1. Пользователь вводит email
    По этому email выводится список всех логинов зарегистрированных для него.
    Отображается пара -> Логин (фиксированный) + Пароль (поле для ввода)
    Если уже зарегистрировано несколько пользователей то соответственно несколько пар.
    2. Выбираем нужное поле, вводим пароль. -> Вход выполнен

    Это то, что представляет собой __каталог пользователей__ для данного email.
    Но собсно это то, что уже у меня работает.
    А вото то что самому писать лень:

    Нужны следующие функции:

    function valid_email($email=''){
    return true;
    }

    function valid_login($login=''){
    return true;
    }

    Мыло должно быть мылом, а логин проверяется на отсутствие пробелов, спец знаков и русских букв.

    Тривиальная регулярка. Просто искать в лом. Подскажите готовый рецепт лучший на ваш взгляд.

    II. След. вопрос.

    Как при выборке из Мускула (учитывать/не учитывать) регистр букв. У меня по умолчанию не учитывает.
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • killich

    Сообщения: 270 Репутация: N Группа: Адекваты

    Spritz 20 марта 2008 г. 11:24, спустя 8 минут 4 секунды

    Кроме того. Работает так.
    При авторизации в куки пользователя кидается случайное 20 значное число, которое и является ключем доступа в дальнейшем.
    По этому ключу в БД находится id пользователя и получается массив его прав.
    Вывод в куках не храниться ни пароль, ни id, ни login пользователя.
    Он все получает каждый раз из базы.
    Ключ удаляется из базы через некоторое время и пользователю необходимо вновь авторизироваться.
    Время действия ключа устанавливает админ.

    Думаю это достойный вариант. Буду рад услышать ваши соображения о том, как сделали бы вы.
    Кроме того, был бы рад, если бы после того, как я фсе доделаю попытался все это сломать - в учебных целях естественно. Выложу в доступ (в виде работающего проекта… хотя если потребуется и исходник дам, но это проверенным бойцам).
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 20 марта 2008 г. 11:58, спустя 33 минуты 55 секунд

    Нужны следующие функции:

    function check_email ($email)
    {
    if ((strlen ($email) > 64) || (strlen ($email) < 8))
    return false;
    else
    {
    if (preg_match ("/(\S+)@([a-z0-9]+)(\.)([a-z]{2,4})/is", $email))
    return $email;
    else
    return false;
    }
    }

    function check_username ($username)
    {
    if ((strlen ($username) > 32) || (strlen ($username) < 4))
    return false;
    else
    {
    if (preg_match ("/\S{4,32}/is", $username))
    return $username;
    else
    return false;
    }
    }

    Как при выборке из Мускула (учитывать/не учитывать) регистр букв. У меня по умолчанию не учитывает.

    Кодировка какая?

    А вото то что самому писать лень

    А вот с такими запросами - в раздел "Предлагаю работу". Это на будущее.

    Думаю это достойный вариант.

    Нормально. Только лучше не число а строку (естесвенно, случайно сгенерированную).
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 20 марта 2008 г. 23:17, спустя 11 часов 19 минут 38 секунд

    Смысл то обязательного имейла в том, что на него можно зарегистрировать только одного.
    Ввести чужой email и смотреть под какими логинами зарегистрирован хозяин тоже не здорово.
  • killich

    Сообщения: 270 Репутация: N Группа: Адекваты

    Spritz 21 марта 2008 г. 1:50, спустя 2 часа 33 минуты 5 секунд

    Мужики спасибо. Вечерком испробую функции.
    Да. Вы правы - не число а строку из 20 символов.

    С мылом и списком пользователей - … возможно не самый лучший вариант… хотя … чем это может быть плохо я обосновать грамотно не могу.
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • killich

    Сообщения: 270 Репутация: N Группа: Адекваты

    Spritz 21 марта 2008 г. 1:55, спустя 5 минут 2 секунды

    мммм… да … каалог пользователей по мылу не самый лучший вариант. Может тогда тогда каталог пользователей по некоторому слову (отделу фирмы, подразделению). Он вроде и не светится нигде, а ввел - и на тебе список пользователей - выбрал нужного -> ввел пароль и все. Да так пожалуй будет лучше.
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • killich

    Сообщения: 270 Репутация: N Группа: Адекваты

    Spritz 21 марта 2008 г. 1:57, спустя 1 минуту 54 секунды


    Как при выборке из Мускула (учитывать/не учитывать) регистр букв. У меня по умолчанию не учитывает. Кодировка какая?

    general_cp_1251 вроде так она правильно пишется.
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 21 марта 2008 г. 3:09, спустя 1 час 11 минут 27 секунд



    Как при выборке из Мускула (учитывать/не учитывать) регистр букв. У меня по умолчанию не учитывает. Кодировка какая?

    general_cp_1251 вроде так она правильно пишется.



    cp1251_general_ci надо, чтобы независимый был
    все умрут, а я изумруд
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 21 марта 2008 г. 7:13, спустя 4 часа 3 минуты 56 секунд

    поставь у того поля сравнение cp1251_general_cs тогда регистр будет учитываться
  • killich

    Сообщения: 270 Репутация: N Группа: Адекваты

    Spritz 21 марта 2008 г. 23:50, спустя 16 часов 37 минут 6 секунд

    1. Можно чуть подробнее? Что по чем. И вообще, сравнение - что оно из себя представляет. Кроме того, а что если требуется по выбору пользователя вкл/выкл учет регистра
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 марта 2008 г. 3:18, спустя 3 часа 28 минут 13 секунд

    cp1251 (Windows Cyrillic)

    cp1251_bin Кириллический (многоязычный), Двоичный
    cp1251_bulgarian_ci Болгарский, нечувствительный к регистру
    cp1251_general_ci Кириллический (многоязычный), нечувствительный к регистру
    cp1251_general_ci_old Кириллический (многоязычный), нечувствительный к регистру
    cp1251_general_cs Кириллический (многоязычный), чувствительный к регистру
    cp1251_ukrainian_ci Украинский, нечувствительный к регистру

    Это есть, между прочем, даже в пхпмайадмине.

    требуется по выбору пользователя вкл/выкл учет регистра

    По дефолту ставится сравнение, в которой регистр учитывается, а если нужно не учитывать, то что-то вроде
    SELECT `id`, `text` FROM `table` WHERE (locate(lower("'.$query.'"),lower(`text`))>0)
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 22 марта 2008 г. 10:12, спустя 6 часов 53 минуты 38 секунд


    1. Можно чуть подробнее? Что по чем. И вообще, сравнение - что оно из себя представляет. Кроме того, а что если требуется по выбору пользователя вкл/выкл учет регистра
    1. srav.JPG (126)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!