Покинул форум
Сообщений всего: 490
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Здравствуйте.
Помогите сделать форму авторизации на сайте.
Имеется база данных с таблицей USERS, в этой таблице 2 поля LOGIN и PASSWORD. И в этой запись о 10 пользователях.
Научите, пожалуйста, как на php написать, чтобы форма авторизации на сайте проверяла введённые данные.. чтобы авторизация проходила только в том случае, если у существующего LOGIN'a был введён правильный PASSWORD.
Очень мне надо щас в этом разобраться.. буду благодарен за помощь. А то по учебнику непонятно написано..
Champion
Отправлено: 10 Января, 2010 - 11:09:43
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Вот написал бы ты, что именно тебе в учебнике не понятно и как ты пробовал, и что из этого получилось.
Extazy
Отправлено: 10 Января, 2010 - 11:20:32
Посетитель
Покинул форум
Сообщений всего: 490
Дата рег-ции: Янв. 2010
mysql_query("SELECT (login, password) FROM users");
а потом может как-то с функцией isset надо отработать?... читал эту справку.. увы, не сумел понять.. если мне поможет другой источник, дайте, пожалуйста, ссылку
RomAndry
Отправлено: 10 Января, 2010 - 11:53:56
Частый посетитель
Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008
Покинул форум
Сообщений всего: 490
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
чтото я запутался в вашем коде.. я так понимаю вы же написали только тот кусок кода, который отвечает за поиск таких полей, в которых уже имеется полученный login и password...
$sql=mysql_query("SELECT * FROM users WHERE login='admin' AND pass='pass'");
if($sql)
{
echo"вы автризованы";
}
else
{
echo"непрально";
}
(Добавление)
ура! получилось!
всем большое спасибо!!
Antosha
Отправлено: 10 Января, 2010 - 15:06:12
Гость
Покинул форум
Сообщений всего: 81
Дата рег-ции: Авг. 2009
Помог: 0 раз(а)
Extazy пишет:
Помогите сделать форму авторизации на сайте.
Если не трудно можешь (будь добр) выложи скрипт авторизации))
Я хочу посмотреть чем он отличаеться от моего ну и вообше для развития
(я так же как и ты новичёк)
Спасибки
Extazy
Отправлено: 10 Января, 2010 - 15:16:47
Посетитель
Покинул форум
Сообщений всего: 490
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
мм,)
ну вот мой вариант.. только тут надо кукисы ещё подключить... а я до их изучения пока не дошёл.. потом доработаю
Warning: mysql_num_rows() expects parameter 1 TO be resource,BOOLEAN given IN C:\Program Files\xampplite\htdocs\www\reg\autorize_controller.php ON line 16
Покинул форум
Сообщений всего: 490
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
взгляни на мой код и на свой жди помощи от кого другого.. тут ребята хорошие сидят. помогут
Antosha
Отправлено: 10 Января, 2010 - 16:01:59
Гость
Покинул форум
Сообщений всего: 81
Дата рег-ции: Авг. 2009
Помог: 0 раз(а)
Extazy пишет:
взгляни на мой код и на свой жди помощи от кого другого.. тут ребята хорошие сидят. помогут
Ладна
Спасибо и на ЭтОМ)
Hunter
Отправлено: 16 Января, 2010 - 08:56:07
Частый гость
Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009 Откуда: Блага
Помог: 0 раз(а)
Antosha, Extazy
предлагаю такой вариант проверки:
извлекаем данные из таблици и строим ассоциативный массив в котором например значения ключей будут равны значениям логинов, а значения элементов соответственно значениям паролей, затем функцией in_array ищем в полученном массиве ключ равный введенному значению логина, если такой ключ сравниваем значение элемента со значением введенного пароля, если верно то определенные действия если нет то отправляем снова на страницу входа.
почему так? ну это позволяет исключить иньекции в базу данных т.к. пользователь не обращается напрямую к БД, можно использовать логины абсолютно любого вида и любой длинны)))
хотя вариантов много, а если нужен просто пример то вот мой: http://forum.php.su/topic.php?fo...=35&topic=75 там и все файлы вроде имеются и запрос для создания БД.. в общем поковыряйся, посмотри, думаю что нибудь для себя извлечешь)
Мелкий
Отправлено: 16 Января, 2010 - 13:50:11
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Hunter, вариант покомпактнее - запросить только логин, а пароль пусть сравнивает скрипт.
И зачем вообще массив? Почему бы в таком случае (запрашивая все пары логин-пароль) не проверять сходство сразу в цикле получения данных?
----- PostgreSQL DBA
Hunter
Отправлено: 17 Января, 2010 - 08:34:06
Частый гость
Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009 Откуда: Блага
Помог: 0 раз(а)
Мелкий в том то и дело что если проверять сразу то надо заботиться о безопасности, а что касается компактности - ведь при авторизации речь идет не только о логине но и о пароле, поэтому я сразу и беру пары логин - пароль в масив.. на самом деле я делаю не так а мысль только тут пришла но сдается мне что обработка массива с количеством элементов в несколько тысяч займет побольше времени чем выборка из базы с таким же количеством записей нужного логина
Мелкий
Отправлено: 17 Января, 2010 - 12:57:56
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Hunter пишет:
но сдается мне что обработка массива с количеством элементов в несколько тысяч займет побольше времени чем выборка из базы с таким же количеством записей нужного логина
А почему в сравнении? Ведь чтобы получить массив, нужно выбрать записи из базы! А зачем нам получать массив? Т.е.
Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009 Откуда: Блага
Помог: 0 раз(а)
Мелкий да я тебя прекрасно понял, сам то я обрабатываю полученные данные, исключая возможность иньекции, и сравниваю сразу в запросе, выбирая из базы логин если таковой имеется а потом уже помещаю всю запись с этим логином в аасоциативный массив и использую эти данные по своему усмотрению, в том числе и проверяю пароль..
а идея с массивами как то сама пришла вголову когда тут на форуме сидел.. ну я ее кстати у себя в части ответственной за регистрацию проверил)) там в принципе потеря нескольких сотых или десятых долей секунды не играет значение, просто мне этот вариант более понятен.
вообще раз парни спрашивают об авторизации то наверно о моментах безопасности не стоит забывать..
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.