我正在使用cakePHP 1.26。
在控制器,我得到了它包含以下几行代码的函数:
是否可以使用Javascript读取PHP会话?
$this->Session->write('testing', $user);
$this->Session->read('testing');
现在系统写了一会话,并存储在服务器上。 是否可以使用Javascript或Jquery来读取名为'testing'的会话?
我正在使用cakePHP 1.26。
在控制器,我得到了它包含以下几行代码的函数:
是否可以使用Javascript读取PHP会话?
$this->Session->write('testing', $user);
$this->Session->read('testing');
现在系统写了一会话,并存储在服务器上。 是否可以使用Javascript或Jquery来读取名为'testing'的会话?
PHP会话存储在web服务器的内存中,而JavaScript运行在webclient(webbrowser)中。那些在现实世界中是两个物理上分离和独立的机器。他们通常只能通过使用HTTP协议的网络进行通信。
你有2种选择:
让PHP打印会话数据,就好像它是一个JS变量:
<script>var data = '<?= $_SESSION['data'] ?>';</script>
让JS请求它使用Ajax服务器端。下面是一个基于jQuery例如:
<script>$.get('script.php', function(data) { /* .. */ });</script>
与基本上这script.php
:
<?php echo $_SESSION['data']; ?>
不用说,选项1是最容易和简单。
不,通常情况下,您可以将testing
的值写入发送给客户端的文档中(可能是?head
中的一个小javascript),然后它可用于客户端。
不可以。您可以使用JavaScript向PHP页面发出AJAX get请求,该页面将读取会话数据并返回到JavaScript。
正如其他人已经说过的,在客户端获得会话需要一些预先考虑(在页面上脱口而出)或另一个请求。
另一种解决方案是不使用会话,而是使用cookie代替或作为恭维。只是不相信cookie。用户可以编辑它们,以便它们只能用于显示内容。
是否可以使用Javascript或Jquery来读取名为'testing'的会话?
没有,但你可以用PHP把值转换为JavaScript:
<?php
print "<script type=\"text/javascript\">\n";
print " var testing=\"" . $_SESSION['testing']/"\";\n";
print "</script>\n";
?>
(或进入HTML和读回从那里使用Javascript)
您可以轻松地通过会话变量从PHP服务器使用jQuery AJAX到JavaScript。您可以将它作为Json对象传递,然后将其分配给JavaScript变量。