Я понимаю, что PHP хранит идентификатор сеанса пользователя в куки файле под названием «PHPSESSID», который хранится в браузере клиента и сопоставляется с сеансом на сервере, чтобы иметь возможность связать его. 2. После закрытия браузера информация о сеансе исчезает, но файл cookie на клиенте остается. Можно ли использовать этот файл cookie для восстановления старой сессии? Или все данные сеанса удаляются с сервера в тот момент, когда клиент закрывает свой браузер? У меня было это на моей первой странице:
session_start(); $_SESSION[‘message’] = ‘Hello’; echo $_SESSION[‘message’]; // outputs hello
то я изменил страницу на:
$old_session = session_id(); session_id($old_session); session_start(); echo $_SESSION[‘message’];
Затем я закрыл браузер и снова открыл его на этой странице и получил следующие ошибки:
Warning: session_start() [function.session-start]: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and ‘-,’ in C:xampphtdocslocalhosttest.php on line 5 Notice: Undefined index: message in C:xampphtdocslocalhosttest.php on line 7
Как точно можно получить старую информацию о сеансе после закрытия браузера, возможно ли это?
TK123 12 янв. 2012, в 23:32
Поделиться
Как Восстановить ВК (Вконтакте) ✅ если Забыл Пароль ВК Удалил Аккаунт ВК Как Вернуть? VK 2023 ✅
After closing the browser the session info dissapears but the cookie on the client remains. — это не правильно. В большинстве случаев срок действия файла cookie идентификатора сеанса устанавливается на «до закрытия браузера». $old_session = session_id(); session_id($old_session); — этот код не имеет смысла
zerkms 12 янв. 2012, в 21:58
j08691 12 янв. 2012, в 21:59
Если вы не заглядываете в окно пользователя, ваш сервер не поймет, когда закроет браузер (AJAX также не гарантирует этого). Сервер просто удаляет данные сеанса, которые считаются «старыми».
webbiedave 12 янв. 2012, в 22:07
Вы повторили $old_session чтобы увидеть, что он содержит? Учитывая, что вы получили его напрямую из session_id (), очень странно, что вы не можете передать его обратно.
Marc B 12 янв. 2012, в 22:08
Следующая ссылка дала мне лучший ответ на этот вопрос. stackoverflow.com/questions/5352583/.
Aunt Jemima 23 май 2017, в 14:46
Показать ещё 3 комментария
Поделиться:
4 ответа
Лучший ответ
Сессия делает именно то, что она говорит о жесте, — существует в течение всего сеанса клиента. Сеанс просмотра по определению (например, один) заканчивается при закрытии браузера.
Сеансы на основе файлов cookie работают, устанавливая cookie, для которого время жизни определено в PHP как 0 — это означает, что браузер должен уничтожить cookie при закрытии браузера. После того, как файл cookie был уничтожен, идентификатор сеанса не отправляется ни в какие последующие запросы сервера, поэтому данные сеанса не будут доступны в вашем PHP скрипт.
Однако данные сеанса не уничтожаются на стороне сервера в момент, когда пользователь закрывает браузер, как вы сказали — это невозможно, потому что клиент не уведомляет сервер о том, что он был закрыт. Вместо этого данные сеанса на стороне сервера имеют TTL (время жизни), которое имеет значение по умолчанию 15 минут. По истечении этого срока данные могут быть удалены в любое время сборщиком мусора сессии. Теоретически это может быть какое-то значительное время, но на практике на занятом сервере данные будут удалены в течение нескольких минут после истечения срока действия TTL.
Как БЫСТРО Вернуть Взломанную Страницу VK | Взломали Вконтакте, что делать и как восстановить.
Однако PHP не может сделать данные сеанса доступными, если у него нет идентификатора сеанса, и у него не будет идентификатора сеанса, если файл cookie был уничтожен, что, как я сказал, должно произойти, когда пользователь закрывает свой браузер.
Итак, короткий ответ на вопрос How can I restore a PHP session? таков: вы не можете
DaveRandom 12 янв. 2012, в 22:14
Поделиться
Я вижу, хорошо знать, что данные сервера не удаляются при закрытии браузера. Я смог обойти потребность в восстановлении, создав еще один файл cookie и сохранив в нем текущий session_id (). Затем, когда браузер был снова открыт, я сделал session_id ($ _ COOKIE [‘old_session’]); и смог получить информацию о предыдущей сессии.
TK123 12 янв. 2012, в 22:33
Это может быть или не быть ответом, который вы ищете.
Насколько я знаю, вы не можете «восстановить» сеанс на основе cookie сеанса. То, что я делаю, это хранить файл cookie с идентификатором клиента, именем пользователя и паролем, соленым и хэшированным. Я также храню другой с их идентификатором. Я проверяю оба файла cookie, когда они посещают сайт, затем проверяет их друг против друга, а затем автоматически регистрирует их.
Хотя это не «восстанавливает» их сеанс, он позволяет им оставаться на моем сайте, если они закрывают браузер. Вот как я решил это сделать, и я полагаю, что если кто-то увлекся или просмотрит файлы cookie других пользователей, почти невозможно будет расшифровать соль, которую я использовал. Единственной информацией, которую они получили бы, является идентификатор пользователя.
Tim Withers 12 янв. 2012, в 23:31
Поделиться
Почему бы и нет? Идентификатор сеанса — это значение, сохраненное в файле cookie. Имя cookie сеанса — session_name() , а сохраненное в нем значение — session_id() .
Marc B 12 янв. 2012, в 22:07
Я просто никогда не делал этого таким образом, потому что полагал, что сессии удаляются с сервера слишком рано (может быть, через несколько часов бездействия, если я не должен был изменять настройки), и использование метода cookie позволит исходной сессии быть удален, но остается в системе.
Tim Withers 12 янв. 2012, в 22:10
cookie сессии php не хранит ничего, кроме идентификатора сессии. если файл сеанса пропал, то сеанс пропал, и будет создан новый файл, оставив пустой сеанс.
Marc B 12 янв. 2012, в 22:25
Если вы сохраните идентификатор пользователя и (соленый) пароль в файлах cookie на клиенте, то для другого лица не составит труда подделать эту информацию и войти в систему таким образом. Вам не нужен незашифрованный пароль для этого. Лучше хранить только идентификатор пользователя и идентификатор сеанса и сопоставлять идентификатор пользователя из файла cookie с идентификатором в сеансе. В случае несоответствия сеанс должен быть признан недействительным, поэтому любой хакер получает только один шанс за сеанс.
Arjan 12 янв. 2012, в 23:48
Показать ещё 2 комментария
Принятый ответ здесь не должен приниматься. Вы, безусловно, сможете восстановить сеанс, пока он еще не очищен. Это действительно так просто.
Aunt Jemima 05 авг. 2017, в 04:09
Поделиться
Старый вопрос, но я бы добавил, что вы МОЖЕТЕ восстановить сеанс даже после того, как он был запущен, если вы вызываете session_start (); before session_id ($ id); session_start (); Этот ответ спас мой день.
Paulo Lima 23 июнь 2018, в 23:04
session_start установить файл cookie.
cookie имеет параметр cookie-lifetime
по умолчанию время жизни файла cookie равно 0
0 означает, что браузер закрыт
David Chan 12 янв. 2012, в 23:26
Поделиться
Ещё вопросы
- 1 Могу ли я гарантировать, что мое Java-приложение будет выполняться с помощью Security Manager с ограничительной политикой?
- 0 jQuery при нажатии prepend divs в начале «списка»
- 1 Google Script — Вставить столбец наследует формат
- 0 ASN1C компиляция
- 1 Удаление белой внутренней границы из выпадающего списка
- 1 Как исключить класс в TestNG
- 1 как вызвать функцию js из c # wpf
- 1 Отображение сообщения загрузки WPF до завершения обновления пользовательского интерфейса
- 0 C ++: При удалении динамически размещенного класса удаляются ли частные члены, которых нет в куче?
- 0 Как перенаправить пользователя на страницу с ошибкой из контроля входа при вводе неверного имени пользователя и / или пароля?
- 0 MySQL триггер для отправки HTTP POST-запроса
- 1 NullPointerException при ответе с использованием модернизации
- 0 Вам нужно беспокоиться о дублировании событий при использовании функции «on» в jQuery?
- 0 Внутреннее исключение: java.sql.SQLSyntaxErrorException: пользователю не хватает привилегии или объект не найден: SEQUENCE, но я использую MySQL
- 1 LINQ: InvalidOperationException: обязательный столбец не существует в результатах
- 0 Экспоненциальный генератор чисел иногда дает «странные» результаты
- 0 Угловой пропуск метода get, вызывающего веб-сервис
- 1 Преобразование поэтажных планов в иерархические графики
- 0 Форма проверки не работает во время регистрации
- 0 Повторно вызвать функцию обновления модели в AngularJS
- 1 Прочитать сообщение NDEF из тега два раза одним касанием (без перемещения телефона)
- 0 Конфигурация файла .htaccess для публичного раздела моего сайта
- 0 Установка цвета границы с помощью jquery
- 0 Как представить отношения один-ко-многим в JSON с помощью Php?
- 0 Примечание: неопределенный индекс: категория
- 1 Панды: Найти последнее ненулевое значение для каждого отдельного значения переменной
- 0 Codeigniter и MongoDb избегают открытия нескольких соединений
- 1 Как приостановить / возобновить видео в Exoplayer?
- 0 с помощью C ++ вы можете установить выходной каталог в поле ввода веб-страницы?
- 1 как проверить конструктор экземпляра
- 1 Как привязать JLabel к JSlider с помощью деления?
- 1 Нужен ли семафор, когда один процесс пишет, а другой читает?
- 1 C # Windows Phone 8.1 Среда выполнения Inkmanager
- 0 css первая буква исключить другие теги
- 1 Зависимость Android ‘com.android.support:support-core-utils’ имеет разные версии для компиляции (27.1.1) и времени выполнения (28.0.0)
- 0 MySQL базы данных исчезли, когда Docker-контейнер выключен
- 0 Группировка по разным оценкам и знаю, сколько они оценивают
- 0 Статические методы создания в Boost Python
- 1 Не удается прочитать свойство Symbol (Symbol.iterator) из неопределенного
- 1 Как очистить анимацию добавления / удаления панели действий?
- 1 Как проверить в JavaScript, если объект находится в массиве с несколькими объектами?
- 0 submitHandler и .validate () проблема
- 1 Боке: Не удается обновить формат всплывающей подсказки
- 1 преобразование температуры Java в GUI
- 0 $ http.post, приводящий к ошибке OPTIONS 596 или недостаточным аргументам
- 1 Javascript: Как получить значение переменной из конкретного файла из 2 разных файлов?
- 0 Два или более подключения к MySQL одновременно выдают ошибку Acces Denied
- 1 Как я могу назвать класс из основного класса?
- 0 Передать пользовательскую переменную в анонимную функцию щелчка jQuery
- 0 Php preg_replace () используя
Источник: overcoder.net
Каким образом восстановить предыдущую сессию
Решение задачи восстановления предыдущей сессии в различных браузерах достаточно сильно отличается. Тем не менее, можно выделить некоторый общий алгоритм действий, позволяющий пользователю осуществить нужное действие.
Статьи по теме:
- Каким образом восстановить предыдущую сессию
- Как восстановить историю в браузере
- Как восстановить журнал посещения интернета
Инструкция
Вызовите главное системное меню, нажав кнопку «Пуск», и перейдите в пункт «Все программы». Запустите обозреватель Internet Explorer и раскройте меню «Сервис» верхней панели окна программы. Укажите команду «Повторное открытие последнего сеанса просмотра». Обратите внимание на то, что при неожиданном завершении работы Internet Explorer, программа предлагает восстановить предыдущую сессию со всеми открытыми вкладками в автоматическом режиме. Другим способом восстановления последней сессии Internet Explorer может послужить открытие новой вкладки, в которой можно выбрать опцию «Повторное открытие закрытых вкладок» (для Internet Explorer).
Запустите браузер Mozilla Firefox и напечатайте
about:sessionrestore
в текстовом поле адресной строки приложения. Это действие приведет к вызову диалогового окна восстановления предыдущей сессии. Используйте альтернативный метод восстановления последней сессии. Для этого вернитесь в главное меню «Пуск» и перейдите в пункт «Все программы». Раскройте ссылку «Стандартные» и запустите приложение «Проводник Windows». Перейдите по пути
имя_диска:Documents and Settingsимя_пользователяApplication DataMozillaFirefoxProfiles####.default
и найдите файл с именем sessionstore.js. Запустите найденный файл для восстановления предыдущей сессии браузера.
Воспользуйтесь другим методом восстановления последней сессии. для этого вызовите главное меню приложения Mozilla Firefox, нажав кнопку с логотипом браузера в верхней сервисной панели окна программы, и укажите пункт «Журнал». Выберите подпункт «Восстановить предыдущую сессию» (для Mozilla Firefox).
Запустите приложение Opera и раскройте меню «Файл» верхней сервисной панели окна браузера. Укажите пункт «Сеансы» и выберите последнюю сессию (для Opera).
В приложении Google Chrome откройте новую вкладку и выберите закладку «Число вкладок» в нижней части. Это действие приведет к открытию предыдущей сессии (для Google Chrome).
- How to Restore and Reopen Last Browsing Session Opened Tabs in IE8
- как в firefox восстановить последний сеанс
Совет полезен?
Статьи по теме:
- Как восстановить журнал
- Как вернуть систему на день назад
- Как удалить сохраненные страницы
Добавить комментарий к статье
Похожие советы
- Как восстановить пользователя
- Как в Word восстановить несохраненные документы
- Как восстановить удаленный журнал
- Как посмотреть удаленную историю посещений
- Как выполнить откат системы
- Как восстановить поврежденный профиль
- Как откатить изменения
- Как сделать откат программы
- Как обратно вернуть все настройки
- Как отменить действие на компьютере
- Как вернуть прежние настройки
- Как восстановить Избранное
- Как сделать восстановление windows 7
- Как восстановить систему через точку отката?
Источник: www.kakprosto.ru
Как восстановить предыдущую сессию в Firefox
Рассмотрим варианты с учетом используемого вами браузера.
- В левом нижнем углу рабочего стола вашего компьютера нажмите «ПУСК», затем «ВСЕ ПРОГРАММЫ». Далее требуется начать работу в Internet Explorer, зайти в «СЕРВИС», который расположен в верхней части. После этого необходимо воспользоваться ставшей уже привычной функцией «ПОВТОРНОЕ ОТКРЫТИЕ ПОСЛЕДНЕГО СЕАНСА ПРОСМОТРА».
Если сеанс вдруг прерывается Internet Explorer дает возможность возврата к прерванному сеансу. Также можно воспользоваться вариантом выбора пункта «ПОВТОРНОЕ ОТКРЫТИЕ ЗАКРЫТЫХ ВКЛАДОК», открывая новое диалоговое окно.
- Рассмотрим вариант возврата к предыдущему сеансу при использовании Mozilla Firefox. При введении следующего текста в новом окне: about:sessionrestore открываются закрытые окна, используемые недавно. Есть и другой вариант. Нажмите следующие команды: сначала стартовую команду «ПУСК», далее выбираем из всплывшего списка вариант «ВСЕ ПРОГРАММЫ», затем команду «СТАНДАРТНЫЕ» и, наконец, «ПРОВОДНИК Windows». При запуске проводника в строке необходимо ввести следующий текст: имя_диска:Documents and Settingsимя_пользователяApplication DataMozillaFirefoxProfiles####.default и найдите файл с именем sessionstore.js. Этим действием вы сможете активировать файл запуска искомой сессии.
- Существует и более быстрый способ. Запустив Mozilla Firefox, в правом верхнем углу выберите команду «ЖУРНАЛ». После чего останется выбрать пункт «ВОССТАНОВИТЬ ПРЕДЫДУЩУЮ СЕССИЮ».
Задача решена.
- При использовании браузера Opera найдите в поисковой строке «ФАЙЛ», затем выберите команду «СЕАНСЫ», что позволит получить доступ к ранее закрытым сеансам.
- Выбирая команду «ЧИСЛО ВКЛАДОК» в браузере Google Chrome вы получаете доступ к последней сессии.
Обязательно посетите наш портал, где вы найдете самые новые и популярные браузеры для компьютера. Нажмите здесь, чтобы перейти в каталог бесплатных программ.
Видео: Как восстановить предыдущую сессию
Если речь идёт о том, как в Мозиле восстановить предыдущие сессии, а именно, только что закрытые вкладки, то сделать это очень даже легко! Самый простой вариант воспользоваться комбинацией «горячих клавиш Mozilla Firefox» — «Ctrl + Shift + T». Закрытые вкладки будут открываться в обратном хронологическом порядке.
То есть, сначала откроется вкладка, закрытая последней, потом предпоследняя, следом предыдущая перед предпоследней вкладкой и так далее. Если необходимо открыть вкладку, которая была просмотрена относительно давно, то стоит воспользоваться встроенным инструментом интернет обозревателя Мозила и посетить журнал предыдущих просмотров интернет ресурсов. Можно открыть данный журнал, нажав одновременно клавиши «Ctrl» и латинскую букву «H».
Или с помощью мыши следующим образом:
- Зайти в меню настроек поисковой системы Firefox (три горизонтальные полоски в правом верхнем углу);
- Встроенный инструментарий «Журнал»;
- В списке находим интересующую вкладку и двойным щелчком открываем искомую информацию;
- Если в списке нет искомого, можно нажать на пункт в самом низу «Показать весь журнал» и воспользоваться инструментом «Библиотека».
Восстановление сессии Mozilla Firefox
Если же у пользователя сложились форс-мажорные обстоятельства и браузер неожиданно закрылся (отключение электропитания устройства, баг, вирус или недостаточно памяти на ПК) без пользовательского волевого решения, то и тут есть выход из сложившейся ситуации. Можно попробовать восстановить предыдущую сессию интернет обозревателя Фаерфокс. Для этого необходимо зайти в меню настроек в инструмент «Журнал» и выбрать опцию «Восстановить предыдущую сессию».
Надо отдать должное разработчикам популярного интернет обозревателя Мозила, так как все нюансы, с которыми может столкнуться пользователь, освещаются внятными и полезными подсказками. Если действовать по ним с чувством, с толком и расстановкой, любая проблема будет разрешена.
Рекомендация
Лучше всего применить превентивные меры и выставить настройки своего браузера так, чтобы при закрытии поисковой системы любым способом, пользователь мог воспользоваться вкладками, которые были открыты в момент закрытия интернет обозревателя.
Заходим в настройки меню в инструмент «Настройки».
В подпункте «Основные» есть свойство браузера при запуске Firefox, которое рекомендуется выставить таким образом, чтобы показывались окна и вкладки, открытые в прошлый раз.
Если выставить настройки браузера таким образом, у пользователя отпадёт необходимость заниматься восстановлением утраченных информационных ресурсов.
Работая в браузере Mozilla Firefox, пользователи создают несколько вкладок, переключаясь между ними. Завершив работу с браузером, пользователь закрывает его, но при следующем запуске ему может понадобиться открыть все вкладки, с которыми выполнялась работа в прошлый раз, т.е. восстановить предыдущую сессию.
Если при запуске браузера вы столкнулись с тем, что на экране не отображаются те вкладки, которые были открыты во время работы с прошлой сессией, то, при необходимости, сессия может быть восстановлена. На этот случай в браузере предусмотрено целых два способа.