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

时间:2010-07-29 12:30:16

标签: php jquery

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

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

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

6 个答案:

答案 0 :(得分:9)

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

您有两个选择:

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

    <script>var data = '<?= $_SESSION['data'] ?>';</script>
    
  2. 让JS使用Ajax从服务器端请求它。这是一个基于jQuery的示例:

    <script>$.get('script.php', function(data) { /* .. */ });</script>
    

    基本上在script.php

    <?php echo $_SESSION['data']; ?>
    
  3. 毋庸置疑,选项1是最简单直接的。

答案 1 :(得分:1)

没有。通常,您可以将testing的值写入提供给客户端的文档(可能是head中的一个小javascript?),然后它将可供客户端使用。

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

  

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

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

<?php
print "<script type=\"text/javascript\">\n";
print " var testing=\"" . $_SESSION['testing'] / "\";\n";
print "</script>\n";
?>

(或在HTML中使用Javascript从那里读回来)

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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