跨语言会话变量&;饼干


Cross language session variables & cookies

为了开始用PHP编程,我决定从经典ASP开始,一块一块地转换一个非常大的、旧的在线ASP项目,直到我最终完成了整个项目并学习了PHP。

我遇到过一个部分,它大量使用会话变量和cookie。本节所附的页面尚未转换,我暂时无法转换。在我继续转换这一部分并破坏所有用户的会话/访问之前,我想知道ASP页面上的会话变量或cookie集在转换后的PHP页面中是否可读,反之亦然?

我认为请求cookie是可以的,但我不确定使用会话是否有任何影响。请提供建议。

Alex对cookie的看法是正确的;然而,会话更为棘手。会话数据存储在服务器端,不同的语言可能会以不同的方式存储它们。

然而,仍然是可以做到的;你只需要让这两个应用程序使用相同的会话数据存储。它可能很简单,只需将PHP和ASP配置为将会话存储在SQL数据库中即可。但它们可能不使用相同的格式在数据库中存储会话数据,因此您可能最终需要为其中一个编写自定义会话存储处理程序。

然后,你所需要做的就是确保两个应用程序都从同一个cookie名称读取会话ID,因为不同的语言也不同。

Cookies,是的,它们将可用

会话,我不知道ASP如何处理它的会话,但我不认为PHP可以直接处理它们。

您可以在ASP脚本中为PHP创建会话文件

研究PHP如何处理会话,并在会话文件夹中创建会话文件。然而,对所有这些值进行编码/序列化可能会很棘手。PHP会话不是由serialize()函数序列化的。它们有自己的处理程序,这可能取决于您的配置。

PS:会话仅持续到客户端关闭浏览器。我要说的是,不要担心它们,并在完全克隆完脚本后激活PHP页面。如果您想运行用两种语言编写的脚本,并让它们在两种语言之间传递数据,请使用cookie而不是会话,因为cookie保存在客户端的机器上,并且可以从两个平台读取。

是。

Cookie是服务器/头文件(用户浏览器与服务器通信),因此PHP文件和ASP文件将能够更改/编辑所有域Cookie(当然,假设它们在同一域上)。