![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Sniper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
суть проблемы.
со своего вёб сервера я посылаю запрос на ещё один компьютер он выдаёт в ответ логин/пароль. пример
собственно вопрос: как организовать проверку куков на вот этой самой nextpage.php? $_SESSION['username'] мне нужен на всех поледующих страницах разумеется или есть какой-то другой суперглобальный массив для хранения логинов? Это сообщение отредактировал(а) Sniper - 29.1.2009, 10:59 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
$_COOKIE?
И зачем перед записью применяется htmlspecialchars()? |
|||
|
||||
| Sniper |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
да нужна проверка куков, и соответственно обновление сессии, что пользователя не выкинуло.
ой ;-) Это сообщение отредактировал(а) Sniper - 29.1.2009, 11:36 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
||||
|
|||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
Не совсем понял,что требуется
Если логин и пароль введены правильные,то пишите в сессию,т.е. $_SESSION имя пользователя. Пароль туда писать не нужно. Потом просто смотрите $_SESSION['username'],если не пусто,то значит юзер уже авторизацию проходил и все хорошо. Зачем обновлять сессию? На что проверять куки? |
|||
|
||||
| Sentox |
|
|||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Привсём этом php в сессии сам использует куки.Ну а пароль в куках ИМХО не безопасно.
|
|||
|
||||
| Sniper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
Да у меня сделано именно так, только вот как раз хорошо да не всё. Сборщик мусора (garbage collector) стирает сессию поэтому переменная пропадает и получается много много ошибок при обновлении странички где-нибудь через час. Вот и получается что нужно пользователя както авторизовать снова и пересоздать переменную сессии. Только вот как это в скрипте реализовать? Это сообщение отредактировал(а) Sniper - 29.1.2009, 15:53 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
Сначало идет авторизация,если все успешно,то в сессию пишется ник и в куку пишется ник + мд5 пароля(не лучшее решение,ради примера.)
Если в сессии есть ник,то все нормально.Если нет,то из куки берутся данные для авторизации,проверяются,если данные верные,то в сессию снова пишется ник. Если ни в куках,ни в сессии ничего нет,то значит юзер не проходил авторизацию и выдать ему форму входа или что у вас там. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Sniper, Пара мыслей
Куку можно и одну ставить, $_POST['login'].'|'.$_POST['password'], потом резать по первому |. C таким символом все равно нельзя логин создавать, наверное Куку можно как-то назвать невызывающе, не login или password, а как-нибудь "x098rtys". Чтобы не вводить в искушение ФСБ. Неплохо бы значение куки-пароля как-то кодировать обратимо, для видимости защиты. Очень бывает неприятно говорить с заказчиком, который в собственных куках случайно увидит собственный пароль -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| enof |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
Зачем запрещать использовать какие-то символы в нике?
Если в базе хранится хеш,а не сам пароль,то наверн лучше его закодировать. |
||||
|
|||||
| Sniper |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
ступор. В сесии, сразу после авторизации, есть ник. На другой странице(отличной от страницы авторизации) нужно писать проверку существования этого никак в сесии. Откуда я возьму ник чтобы проверить ник в сесии, из куки?
Это сообщение отредактировал(а) Sniper - 29.1.2009, 17:09 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
||||
|
|||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
Вообще на разных языках по ходу разговариваем
Авторизация: 1.Пользователь видит форму логин\пароль,вводит данные и жмет на кнопку 2.Скрипт проверяет введеные данные,т.е. сравнивает с данными из б.д. 3.Если логин\пароль правильные,в $_SESSION['username'] пишется ник только что авторизированного пользователя. 4.В $_COOKIE['username'] пишется ник пользователя.В $_COOKIE['secretkey'] пишется закодированный хеш пароля. На это авторизация закончена,далее: Если в $_SESSION['username'] есть данные,то ничего не делаем.Авторизация была пройдена до этого и ничего проверять не требуется. Если в $_SESSION['username'] ниче нет,смотрим в куки. Если $_COOKIE['username'] и $_COOKIE['secretkey'] не пустые,то $_COOKIE['secretkey'] разкодируются обратно в пароль и $_COOKIE['username'] & раскодированный пароль сравниваются с данными из базы данных.Если все ОК,то в $_SESSION['username'] пишется ник пользователя.И на следующей странице уже в сессии будет ник.Авторизация была пройдена до этого и ничего проверять не требуется. Если в куках и в сессии ниче нет,то значит говорить что вы не прошли авторизацию и т.д. |
|||
|
||||
| Sniper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
всё всё, пора валить домой, заработался совсем ;-))))
p.s всё я понял ;-) -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
| Sniper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
Нет, не получается ;-(
собственно проблема в том что переменная сесии $_SESSION['userpass'] тоже удаляется и сравнивать не получается... не с чем сравнивать '' Это сообщение отредактировал(а) Sniper - 30.1.2009, 14:01 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
пять минут,код накину. |
|||
|
||||
| enof |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
Авторизация:
Далее на всех страницах,где нужно проверить авторизацию:
Зачем хранить пароль в сессии?Он нужен только в куках в закодированном виде,чтобы авторизировать пользователя. p.s. А че сообщение не добавилось к предыдущему? Это сообщение отредактировал(а) enof - 30.1.2009, 14:21 |
||||||
|
|||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |