是否可以使用Javascript读取PHP会话?

我正在使用cakePHP 1.26。
在一个控制器中,我得到了一个包含以下代码行的函数:

$this->Session->write('testing', $user); $this->Session->read('testing'); 

现在系统编写了一个会话并存储在服务器上。 是否可以使用Javascript或Jquery来读取名为“testing”的会话?

当JavaScript在webclient(webbrowser)中运行时,PHP会话存储在webserver的内存中。 这些是在现实世界中两个物理上独立和独立的机器。 它们通常只能使用HTTP协议通过网络相互通信。

你有2个选择:

  1. 让PHP打印会话数据,好像它是一个JS变量:

      
  2. 让JS使用Ajax从服务器端请求它。 这是一个基于jQuery的例子:

      

    基本上这在script.php

      

毋庸置疑,选项1是最简单直接的。

一般情况下,您可以将testing的值写入提供给客户端的文档中(也许是head中的一个小javascript),然后它可供客户端使用。

正如其他人已经说过的那样,在客户端进行会话需要一些深思熟虑(在页面上脱口而出)或其他请求。

另一种解决方案不是使用会话,而是使用cookie或作为补充。 只是不要相信cookies。 用户可以编辑它们,因此它们只应用于显示内容。

是否可以使用Javascript或Jquery来读取名为“testing”的会话?

不,但您可以使用PHP将值放入javascript:

 \n"; print " var testing=\"" . $_SESSION['testing'] / "\";\n"; print "\n"; ?> 

(或者使用Javascript从HTML中读取并回读)

不可以。您可以使用JavaScript向PHP页面发出AJAX get请求,该页面将读取会话数据并返回到JavaScript。

您可以使用jQuery AJAX轻松地将会话变量从PHP服务器传递到JavaScript。 您可以将其作为Json对象传递,然后将其分配给JavaScript变量。