我有一个API依赖于请求之间的某些状态信息。作为代码的第一个简单版本,我只是简单地使用PHP会话来存储状态信息,而不是更先进的(APC,memcache,DB)。在我通过网络浏览器进行的最初测试中,一切都很完美。但是,似乎当客户端尝试通过诸如Curl或wget之类的非浏览器方法进行连接时,状态信息未被保留。在PHP中会创建一个会话,如果浏览器不使用
仅当浏览器正在请求页面时才会创建PHP会话吗?我明确地使用session_start()开始会话,并使用session_name()事先命名它。
附加说明。我了解到,我遇到的一个主要问题是我正在命名会话,而不是通过session_id($ id)设置会话ID;我使用session_name()的意图是检索先前创建的同一会话,并且正确的方法是将session_id设置为session_name。
看来,会话信息将保留在服务器上,如下所述(谢谢)。但为了保持这一点,您必须通过会话ID,或者,在我的情况下,任何其他唯一标识用户的ID。使用此id作为session_id,您的会话将按预期运行。
>但如果客户端不支持cookie(如卷曲或wget) 实际上。同时支持一些存储/加载cookie文件的方式 – Uberfuzzy 2008-10-04 09:29:16