Форум → Программирование → PHP для идиотов → Пишу авторизацию, пару вопросов
Пишу авторизацию, пару вопросов
-
I.
Пишу авторизацию.
Хочу услышать ваше мнение о ее устройстве.
Система такая.
На один email можно зарегить несколько пользователей.
1. Пользователь вводит email
По этому email выводится список всех логинов зарегистрированных для него.
Отображается пара -> Логин (фиксированный) + Пароль (поле для ввода)
Если уже зарегистрировано несколько пользователей то соответственно несколько пар.
2. Выбираем нужное поле, вводим пароль. -> Вход выполнен
Это то, что представляет собой __каталог пользователей__ для данного email.
Но собсно это то, что уже у меня работает.
А вото то что самому писать лень:
Нужны следующие функции:
function valid_email($email=''){
return true;
}
function valid_login($login=''){
return true;
}
Мыло должно быть мылом, а логин проверяется на отсутствие пробелов, спец знаков и русских букв.
Тривиальная регулярка. Просто искать в лом. Подскажите готовый рецепт лучший на ваш взгляд.
II. След. вопрос.
Как при выборке из Мускула (учитывать/не учитывать) регистр букв. У меня по умолчанию не учитывает.Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
20 марта 2008 г. 21:24, спустя 8 минут 4 секунды
Кроме того. Работает так.
При авторизации в куки пользователя кидается случайное 20 значное число, которое и является ключем доступа в дальнейшем.
По этому ключу в БД находится id пользователя и получается массив его прав.
Вывод в куках не храниться ни пароль, ни id, ни login пользователя.
Он все получает каждый раз из базы.
Ключ удаляется из базы через некоторое время и пользователю необходимо вновь авторизироваться.
Время действия ключа устанавливает админ.
Думаю это достойный вариант. Буду рад услышать ваши соображения о том, как сделали бы вы.
Кроме того, был бы рад, если бы после того, как я фсе доделаю попытался все это сломать - в учебных целях естественно. Выложу в доступ (в виде работающего проекта… хотя если потребуется и исходник дам, но это проверенным бойцам).Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
20 марта 2008 г. 21: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;
}
}Как при выборке из Мускула (учитывать/не учитывать) регистр букв. У меня по умолчанию не учитывает.
Кодировка какая?А вото то что самому писать лень
А вот с такими запросами - в раздел "Предлагаю работу". Это на будущее.Думаю это достойный вариант.
Нормально. Только лучше не число а строку (естесвенно, случайно сгенерированную). -
21 марта 2008 г. 9:17, спустя 11 часов 19 минут 38 секунд
Смысл то обязательного имейла в том, что на него можно зарегистрировать только одного.
Ввести чужой email и смотреть под какими логинами зарегистрирован хозяин тоже не здорово. -
21 марта 2008 г. 11:50, спустя 2 часа 33 минуты 5 секунд
Мужики спасибо. Вечерком испробую функции.
Да. Вы правы - не число а строку из 20 символов.
С мылом и списком пользователей - … возможно не самый лучший вариант… хотя … чем это может быть плохо я обосновать грамотно не могу.Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
21 марта 2008 г. 11:55, спустя 5 минут 2 секунды
мммм… да … каалог пользователей по мылу не самый лучший вариант. Может тогда тогда каталог пользователей по некоторому слову (отделу фирмы, подразделению). Он вроде и не светится нигде, а ввел - и на тебе список пользователей - выбрал нужного -> ввел пароль и все. Да так пожалуй будет лучше.Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
21 марта 2008 г. 11:57, спустя 1 минуту 54 секунды
Как при выборке из Мускула (учитывать/не учитывать) регистр букв. У меня по умолчанию не учитывает. Кодировка какая?
general_cp_1251 вроде так она правильно пишется.Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
21 марта 2008 г. 13:09, спустя 1 час 11 минут 27 секунд
Как при выборке из Мускула (учитывать/не учитывать) регистр букв. У меня по умолчанию не учитывает. Кодировка какая?
general_cp_1251 вроде так она правильно пишется.
cp1251_general_ci надо, чтобы независимый былвсе умрут, а я изумруд -
21 марта 2008 г. 17:13, спустя 4 часа 3 минуты 56 секунд
поставь у того поля сравнение cp1251_general_cs тогда регистр будет учитываться -
22 марта 2008 г. 9:50, спустя 16 часов 37 минут 6 секунд
1. Можно чуть подробнее? Что по чем. И вообще, сравнение - что оно из себя представляет. Кроме того, а что если требуется по выбору пользователя вкл/выкл учет регистраРубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
22 марта 2008 г. 13: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)
-
22 марта 2008 г. 20:12, спустя 6 часов 53 минуты 38 секунд
1. Можно чуть подробнее? Что по чем. И вообще, сравнение - что оно из себя представляет. Кроме того, а что если требуется по выбору пользователя вкл/выкл учет регистра
Пожалуйста, авторизуйтесь, чтобы написать комментарий!