Zend_Session cookie在哪里?

时间:2012-02-29 19:55:53

标签: php zend-framework session session-cookies

我在每个请求上使用Zend_Session :: start(),因为我需要在各种请求之间保存值(例如用户和密码,以便在将来访问db时重用它)。

我想知道在使用Zend_Session :: start()时是否创建了cookie,最重要的是我可以看到存储路径(服务器和客户端)。

我读过,实际上会话的使用涉及到cookie的创建,但我不确定Zend_Session是否也是如此,因为Zend_Http_Cookie

3 个答案:

答案 0 :(得分:2)

所有会话都需要某种方式让客户端进行身份验证。

意思是,服务器将为客户端提供密钥(或会话ID),通常以cookie的形式,并将会话变量链接(在服务器端内部)到该ID。

当客户端发送请求时,它还会发送带有cookie的会话ID,这允许服务器获取与该ID相关联的变量,并允许程序员使用。

每个浏览器更改Cookie的路径。

这意味着客户端只有ID ,客户端不知道会话变量中有什么,他看不到它们。


现在我不太了解Zend,但我认为Zend_Session用于会话,而Zend_Http_Cookie用于实际cookie(其中变量本身的值存储在cookie中) )。不要将关键信息存储在cookie中,因为它易于阅读和更改。

答案 1 :(得分:2)

Zend_Session扩展了标准的PHP会话功能,因此启动会话会设置cookie。存储会话数据的位置取决于您的配置,默认情况下,数据存储在文件中,文件的位置由配置值session.save_path控制。

您通常不会在会话中存储密码 - 一旦用户通过身份验证,您可能只会在会话中存储用户名以供以后访问。如果您使用该组件,Zend_Auth将为您处理所有这些。

忘记Zend_Http_Cookie,它与用户cookie无关。

答案 2 :(得分:2)

来自Zend_Session documentation

  

Zend_Session在内部使用普通的PHP ext / session函数,所有熟悉的配置选项和设置都适用(参见http://www.php.net/session

您还可以使用Zend_Session配置Zend_Session::setOptions()的某些行为:

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

另见Zend_Session Advanced Usage