Как я могу использовать локальное хранилище HTML5 вместе с PHP, использовать его для сеансов php и хранить другую информацию, которую использует php

Я уже некоторое время смотрю в Интернете, и локальное хранилище HTML5 кажется мне чем-то полезным и решением моей проблемы, с которой я сталкиваюсь с сеансами PHP, проблема в том, что они не согласованы, даже если я их установил чтобы запомнить меня в следующий раз, когда я зайду на свою домашнюю страницу, я попаду на страницу входа в систему, это не всегда, но часто сеансы PHP оказываются несовместимыми для меня.

Я хотел бы знать, могу ли я использовать локальное хранилище для согласованного хранилища сеансов, которое может использовать php, все примеры, которые я видел в Интернете, используют javascript.


person Abdullah Khan    schedule 24.07.2010    source источник


Ответы (3)


Localstorage предназначен для сохранения данных на стороне клиента, чтобы к ним можно было получить доступ, даже если клиент находится в автономном режиме, и в этом случае доступ к нему, как вы сказали, осуществляется с помощью JavaScript.

Сеансы PHP хранят информацию на сервере. Использование localStorage также является плохой идеей, поскольку оно может быть изменено клиентом, поэтому клиент может утверждать, что он вошел в систему как другой пользователь, что, очевидно, является проблемой безопасности.

Есть ли проблема с вашей конфигурацией PHP? Есть ли значение тайм-аута для файла cookie сеанса PHP, которое вы можете изменить?

person tjvr    schedule 24.07.2010
comment
ну, я установил файл cookie сеанса на 604800 секунд, это 7 дней, если флажок «Помнить меня» проверен, иначе это обычный сеанс, который исчезает при выходе из браузера, я использую Zend framework, вот моя строка кода для него, если (! empty($this-›rememberMe)) { Zend_Session::rememberMe(604800); } else { Zend_Session::forgetMe(); } вот и все, я не знаю, что может пойти не так, да, это работает, но это не стабильно, выпадает случайным образом через несколько часов, максимум он оставался в течение 2 дней, он исчезает, даже если окно браузера открыто - person Abdullah Khan; 24.07.2010
comment
Является ли использование обычной переменной PHP $_SESSION более успешной? Это проблема с вашим браузером? - person tjvr; 24.07.2010
comment
Я не пробовал необработанный $_SESSION, но это не проблема браузера, мои друзья и альфа-тестеры также замечают ту же проблему. - person Abdullah Khan; 24.07.2010

Нет. PHP работает на сервере и не имеет доступа к API локального хранилища браузера.

person Quentin    schedule 24.07.2010

У меня это случилось со мной, и кажется, что сервер решает случайным образом очистить сеансы PHP. Я думаю, что это происходит, когда у него проблемы с памятью... поэтому он случайный и не имеет ничего общего с настройками тайм-аута. Когда это случается с вами, можете ли вы связать это с высокой нагрузкой, которая могла произойти на веб-сервере в период между вашим последним входом в систему (или последним проведением сеанса)?

В любом случае, поскольку все это javascript, нет причин, по которым вы не можете использовать PHP для вывода вашего js, который получает и устанавливает данные в локальное хранилище.

person Bret    schedule 14.03.2011