![]() |
|
||||||||||
|
|||||
|
Привет Великим! Есть вопрос вот какого плана. Я на сайте использую регистрацию и авторизацию, т.е. когда человеку надо скопировать(download) что-то с сайта, допустим некоторые архивы(ничего коммерческого, просто нужно чтобы невозможно было скопировать, если не прорегился). Так вот Я при регистрации создаю куки и при входе на страницу с файлами, которые чел хочет скачать, его проверяют, если нет куки у чела на компе, то его попросят прологиниться, если он не регился ранее его попросят прорегиться. Я при входе на страницу с файлами использую такую проверку:
// Проверка аутентификации пользователя if (!authenticateUser( $mod_cookie_user, $mod_cookie_passwd)){ // Если пользователь не прошел аутентификацию, то вызов страницы header("Location:".$bipath."adm/admin.phtml"); } // Конец проверки аутентификации пользователя Сама функция authenticateUser имеет такое содержимое: // Функция аутентификации пользователя function authenticateUser($user, $password) { global $DB_SERVER, $HTTP__HOST, $DB_LOGIN, $DB_PASSWORD, $DB, $DOCROOT ; // Открытие устойчивого соединения с MySQL сервером if (!($link = mysql_pconnect ($DB_SERVER,$DB_LOGIN, $DB_PASSWORD))) { // DisplayErrMsg(sprintf("internal error %d:%s\n", // mysql_errno(), mysql_error())); // Вывод сообщения об ошибке соединения DisplayErrMsg(sprintf("внутренняя ошибка %s %s %s %d:%s\n",$DB_SERVER, $DB_LOGIN, $DB_PASSWORD, mysql_errno(), mysql_error())); return 0 ; } // Проведение аутентификации пользователь/пароль if (!($result = mysql_db_query("$DB", "select * from user_models where login_user_models='$user' "))) { DisplayErrMsg(sprintf("внутренняя ошибка %d:%s\n", mysql_errno(), mysql_error())); return 0 ; } if (($row = mysql_fetch_array($result)) && ($password == $row["pw_user_models"] && $password != "") ) { return 1 ; } else return 0 ; } // Конец описания функции аутентификации пользователя Логинится чел на странице входа на сайт, и данные двух полей передаются в эту функцию, Если глянуть на то что возвращает функция то видно что это логика: 1 или 0, а как в ней же сделать передачу всех параметров выбранных по имени и паролю пользователя(если конечно они верны), т.е. все значения полей для которых Я создаю при регистрации куки, а их кроме имени и пароля штук 5-6, да и еще предполагаю 2-3 ввести. Если что непонятно, то дополню вопрос.
__________________
FROGGY: ничто так не обманчиво, как слишком очевидные факты... |
|
|||||
|
подожди, а непроще ли использовать сесии, напр, сразу идет проверка куков и регится сесия, а потом идет по ней проверка, а туда пихай что угодно ....
__________________
заходите в гости advocat, это не по професия - это диагноз! Обычно в PHP обитаю ... |
|
|||||
|
Можно подробнее этот вопрос. расписать. Я точно не могу втыкнуться в сессии! не знаю как их прикрутить к Моей теме.
__________________
FROGGY: ничто так не обманчиво, как слишком очевидные факты... |
|
|||||
|
смотри, ты заместь проверки куков регишь сесию, и сессию именно с теми параметрами которые тебе нужно, а потом проверяешь, зарегистрирована ли сессия ...
довольно удобно и работает даже при блокированых куках как у меня обычно ...
__________________
заходите в гости advocat, это не по професия - это диагноз! Обычно в PHP обитаю ... |
|
|||||
|
Набрось примерно кусок кода, который должен быть. А вообще может проще вытащить все необходимые данные из базы при отработке функции авторизации authenticateUser($user, $password), только не true/false передавать, а выбранные из базы соответствующие паролю и имени данные, ну т.е. допустим ФИО, количество сообщений на форуме, его мыло и т.д., а как это реализовать через сессии не знаю. Может Я конечно вообще не догоняю, ну вот такой уж Я, буду благодарен за помощь.
![]()
__________________
FROGGY: ничто так не обманчиво, как слишком очевидные факты... |
|
|||||
|
Приведу более ли менее простой пример как делается авторизация с помощью сессий, дальше извращайся как хочешь, а я только приведу пример даже под тебя ... я сеня добрый .... скрипт писать полностью небуду, но приведу самые важные куски кода с разьяснениями ...
Начнем с того что у меня есть некий фаул, назовем его member.php, в нем реализована проверка пользователя и пароля ...
Далее в нужном тебе файле, где нужно сделать проверку, авторизировался ли пользователь, пишешь примерно следующее :
Напишу еще сразу примечание : 1. Во всех страницах сначала пропиши session_start(); , не отягощает код, но зато 100% увереность, что пользователь во время путишествия по твоему сайту будет сохранять сессию ... 2. с куками сам решай что делать, просто ты можешь предварительно заганять в куки юзера и пароль и потом проверять их и регить сессию, что-бы пользователь не авторизировался ешо раз 3. сделай кновку выход, тобишь скрипт, который из куков будет убивать даные, и убивать сессию ...
Вроде все, будут вопросы, задавай ...
__________________
заходите в гости advocat, это не по професия - это диагноз! Обычно в PHP обитаю ... Последний раз редактировалось advocat; 19.04.2002 в 04:11. |
|
|||||
|
Адвокату всех времен и народов - СПАСИБО! Я пока что не пробовал, но суть понял! Сегодня уже пятница, так что не успею на работе начать делать, а домашний комп уже обновил и он только ждет своего друга ЖК-монитор
, а так бы дома попробовал. Вот получаю ЗП через неделю, покупаю ЖК-моник , и комп у меня в полном сборе! Извинияюсь за хвастовство, ну перед кем Мне еще похвастать, вот только перед такими же как и Я, только поумнее меня. Спасибо еще раз, если что начну в понедельник на работе так что не расслабляйся, еще наверное потревожу. ![]()
__________________
FROGGY: ничто так не обманчиво, как слишком очевидные факты... Последний раз редактировалось Froggy; 19.04.2002 в 13:29. |
![]() |
Часовой пояс GMT +4, время: 00:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|