![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
проблема такая.
Мои скрипты могут стоять без действия сутками, т.е человек вечером поработал с сайтом и оставил компьютер включённым на нём [на сайте] - пришёл утром и продолжил работу (его сессия не должна удалиться) но как известно через 24 минуты простоя "мусоросборщик" вычищает просроченные сессии рандомно с вероятностью 1% как сделать чтобы данные сессии не удалялись по крайней мере неделю? Может как-то через cookie? или сессиями можно обойтись? Это сообщение отредактировал(а) Sniper - 19.7.2008, 20:17 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Это противоречит принципу работы сессий.
Что у тебя такого важного в сессии хранится, что нельзя записать туда заново? |
|||
|
||||
Sniper |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
всё как у всех IP адрес и логин пользователя
вот тут не понятно, как перезаписать? Это сообщение отредактировал(а) Sniper - 19.7.2008, 20:21 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
И всего-то? И ты думаешь, что если тебя этот форум запомнил то это он сессию на год растянул?
автологин куками делается, а не сессиями |
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
-------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
осподи.
да посмотри в любом поисковике "PHP автологин" ставишь куку. уникальную для юзера. если пришла - логин и пароль вводить не надо. что непонятного-то? |
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
т.е надо сессии удалить и переделать всё на куки?
-------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
господи, твоя воля
нет, переделывать не надою. авторизация делается сессиями. автологин - куками |
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
какова последовательность действий всего этого? 1. создаём сессию 2. записываем логин в сессию 3. создаём куку 4. записываем логин пароль в куку (шифруем) Теперь сессия перестала существовать. что тогда делать? заново создавать сессию? из куки записывать в сессию данные? Это сообщение отредактировал(а) Sniper - 19.7.2008, 22:43 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
1. просим логин, пароль и галочку "запомнить меня", как это проиходит на этом форуме и на миллионах других сайтов, некоторые из которых ты, может быть, как я очень надеюсь, видел.
2. проверяем логин и пароль. если правильные, то 3. стартуем сессию. 4. проверяем галочку, и если нажата, то ставим уникальную куку. а дальше - 0. проверяем куку, и, если есть, то не просим п.1 и не делаем п.2, а сразу п.3 |
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
если выйти с сайта, то да так и будет. А если я нахожусь на какойто странице, я афк, прошли 24 минуты я вернулся, тыкаю на какую-то кнопку на этой странице, а всё, сессии нет уже, что тогда? по нажатию кнопки стартовать сессию? а так нельзя "заголовки уже отправлены" ;-). что то я пока не понимаю ;-(
Это сообщение отредактировал(а) Sniper - 19.7.2008, 22:58 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
С какой стати? Какая разница "находишься ты на странице и вернулся" или "выйти с сайта а потом зайти"? Что вообще такое "нахожусь на странице"? Тебя, похоже, надо послать популярную ссылку на танке почитать. Это сообщение отредактировал(а) Feldmarschall - 19.7.2008, 23:07 |
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
сейчас страницы выглядят примерно так:
somepage.php
вот у меня в браузере эта страница http://mymegasuperhost.ru/somepage.php (я нахожусь на странице somepage.php]) сессия активна и всё хорошо. можно кликать на кнопку и мы увидим логин пользователя. Если сессия удалилась(прошли 24 минуты) а я нажал на кнопку Submit, то я получаю кучу ошибок, потому что $_SESSION['id_user'] то уже нету. Так вот вопрос: что делать когда на кнопку нажали, а сессии уже нет? Это сообщение отредактировал(а) Sniper - 19.7.2008, 23:15 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Я даже затрудняюсь, что на это ответить.
Ну, чтобы не было ошибок, надо, наверное, проверять. Если юзер залогинен, то выводить $_SESSION['id_user']. а если не залогинен - то не выводить. Тогда и ошибок не будет. а что сделать, когда с сайта ушли, и назад пришли - ты знаешь? Вот и сделай то же самое. Это сообщение отредактировал(а) Feldmarschall - 19.7.2008, 23:20 |
|||
|
||||
Sniper |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
здорово конечно, но так не пойдёт ;-)
-------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
а зачем ты поменял местами if (isset($_POST['actionbutton'])) и session_start(); ?
вообще, эти смайлики твои меня немного раздражают. ты бы писал поподробнее. чтобы я сразу на все твои вопросы ответил. ты каких-то элементарных вещей не понимаешь, но я никак не могу понять - каких именно. я пока только понял, как ты пишешь код - накопировал разных кусков, про которые где-то сказали, что "так правильно". но при этом зачем они, и как работают - понимание слабое. А часто - вообще неправильное. В результате и получаются такие усмешечки "так не пойдёт ;-)" пойдет. все пойдет. если хотя бы чуть-чуть выучить, что такое веб-сайт и как он общается с браузером. а если уж ты сподобишься проверять свои идеи на практике - так и вовсе проблем никаких не будет. Добавлено через 10 минут и 9 секунд Как я уже упоминал, по такой схеме работают все сайты - от этого до мейл.ру. поэтому первый шаг к реализации - это сначала ПОВЕРИТЬ мне. Что сработает. Этим ты значительно облегчишь себе задачу. |
|||
|
||||
Sniper |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
да не менял я их местами! ты думаешь что я вообще ламер? полный код (для понимания):
ха ха ха. как сделать автологин я понял. расмотрим ещё раз код.
Давай так, на примере ещё раз. значение $_SESSION ['id_user'] используются везде у меня в коде. когда сессия пропадает через 24 минуты , пропадает и это значение массива - мне нужно его восстановить в общем сделать так чтобы оно не удалялось довольно долго. Как это сделать? Это сообщение отредактировал(а) Sniper - 20.7.2008, 09:12 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
||||||||
|
|||||||||
Nigel |
|
|||
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: 7 Всего: 19 |
для начала прочитайте это. Для того, чтобы сессия жила дольше 24 мин., есть session.gc_maxlifetime.
В первом куске кода: зачем на 9-й строке стартуете сессию, если она уже есть на 2-ой? |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Nigel, для того, чтобы сессия жила дольше 24 мин. должны быть очень веские основания. И уж никак к этим основаниям не относятся туманные представления об основах функционирования веб-сайтов.
Добавлено @ 10:33 Если ты понял, как сделать автологин, то какая проблема сделать в начале страницы автологин, и спокойно продолжить работу? Думаю, тебе надо ещё с ним разобраться. Предлагаю эту тему закрыть, поскольку вопрос "как продлить сессию" не имеет практического смысла, и начать новую, посвященную автологину. Это сообщение отредактировал(а) Feldmarschall - 20.7.2008, 10:42 |
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
размышляя в стоматологическом кресле я понял как надо сделать:
начало любой страницы
когда пользователь первый раз логинится сделать соответствующие setcookie правильно? -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
не совсем. реальная система сильно сложнее. но примерно так, да.
если писать просто id, то любой сможет залогиниться под видом любого юзера - id обычно найти совсем несложно. твой, например, здесь - 192. надо писать что-то уникальное, и проверять по базе. Это сообщение отредактировал(а) Feldmarschall - 20.7.2008, 12:31 |
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
что-то уникальное это что и по какой базе проверять? ![]() -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
случайное число. по базе данных. в которую его записать.
|
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
а чем это отличается от просто id? наверное это рандомное число надо менять с какой0то частотой... объясните подробнее -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Отличается тем, что его никто не знает, в отличие от id
можешь сделать какой-нибудь хэш, к примеру, md5(секретное слово (общее для всего сайта+пароль юзера)) |
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
опять таки попрошу рассказать последовательность действий. 1. создаём секретное слово 2. пишем в БД, файл что потом? как использовать? 3. 4. Это сообщение отредактировал(а) Sniper - 20.7.2008, 19:40 -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
как обычно.
точно так же, как с id если у тебя пришел if в куке, ты можешь узнать по базе, что это за пользователь? если у тебя пришел секретный идентификатор, то какая проблема ТОЧНО ТАК ЖЕ найти в базе запись, содержащую такую строку? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |