2012-02-29 2 views
1

Я использую Zend_Session :: start() для каждого запроса, потому что мне нужно сохранять значения между различными запросами (например, пользователь и пароль для повторного использования его в будущем доступе к db).Zend_Session, где находится файл cookie?

Я хотел бы знать, создан ли файл cookie, когда я использую Zend_Session :: start(), и, самое главное, где я могу увидеть путь, где хранятся (как сервер, так и клиент).

Я читал, что на самом деле использование сессий предполагает создание куки, но я не уверен, если то же самое верно с Zend_Session видели, что есть также Zend_Http_Cookie

ответ

2

Zend_Session расширяет стандартную функциональность PHP-сессии, поэтому да, начиная с сеанса, устанавливается куки-файл. Если данные сеанса хранятся, зависит от вашей конфигурации, по умолчанию данные хранятся в файлах, местоположение которых контролируется значением конфигурации session.save_path.

Обычно вы не храните пароль в сеансе - после аутентификации пользователя вы можете сохранить только имя пользователя в сеансе для последующего доступа. Zend_Auth будет обрабатывать все это для вас, если вы используете этот компонент.

Забудьте о Zend_Http_Cookie, это не имеет никакого отношения к пользовательским файлам cookie.

+0

спасибо !! если я сохраню только имя пользователя в сеансе, где я могу взять пароль для подключения к db? –

+0

Идея состоит в том, что вы сохраняете имя пользователя только после аутентификации пользователя (т. Е. Они вошли в систему).Затем в последующих запросах вы можете доверять тому, что имя пользователя в сеансе принадлежит текущему пользователю, поэтому вам не нужен пароль. –

+0

ok, но в моем веб-приложении, в последующих запросах мне нужно вызвать metod i5_connect ($ user, $ pwd) для получения данных из DB2. где мне не нужен пароль? –

2

Все сеансы нужно каким-то образом для клиент для аутентификации.

Смысл, сервер предоставит клиенту ключ (или идентификатор сеанса), обычно в виде файла cookie, и ссылку (внутри, на стороне сервера) переменные сеанса на этот идентификатор.

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

Путь изменений cookie для каждого браузера.

Это означает, что клиент имеет только ID, клиент не знает, что находится в переменных сеанса, он не может их видеть.


Теперь я не знаю, Zend очень хорошо, но я предполагаю, что Zend_Session для сессий, в то время как Zend_Http_Cookie для фактического печенья (где значение самой переменной хранится в куки). Не храните важную информацию в файле cookie, так как она легко читается и может меняться.

2

От Zend_Session documentation:

Zend_Session использует обычные функции PHP внутр/сессии внутренне, знакомые все параметры и настройки конфигурации применяются (см http://www.php.net/session)

Вы также можете настроить некоторые поведение Zend_Session с использованием Zend_Session::setOptions():

Zend_Session::setOptions(array(
    'use_only_cookies' => 'on', 
    'remember_me_seconds' => 864000 
)); 

Se e также Zend_Session Advanced Usage

Смежные вопросы