JavaScript中的PHP会话的等价物

时间:2011-06-27 08:45:56

标签: php javascript session

我打算询问如何在JS中实现会话,我发现可以使用的函数很少,就像我发现的这个例子一样:

String exforsys = request.getParameter("test"); 
session.setAttribute("test", exforsys);

然后只使用session.getAttribute( exforsys);

但没有回应,我猜它只用于servlet或其他东西。

无论如何,我决定可能有人除了使用会话之外还有其他方法,我想要做的就是点击一个页面中的链接,根据按下哪个链接,我将加载不同的信息。

由于它是一个onclick函数,我一直坚持使用JS!

所以我需要将这些信息传递到第二页,因为它可以很容易地用PHP和JS处理,但是有些计算机会删除cookie,这样就不好了!

任何建议或其他方式,我可以达到我想要的但没有使用会话?

7 个答案:

答案 0 :(得分:2)

会话是服务器变量。因此不能被JavaScript使用。

但是,您可以通过ajax请求检索会话变量。

脚本(jQuery)

//This portion will be triggered once the DOM is loaded and is ready
$(document).ready(function() {
    $.post("getsession.php",
       { "variable" : "yourneededsessionvariable" }, 
       function(data) {
         //data contains your session data
       }
    );
});

PHP

//getsession.php
<?PHP
session_start();
echo $_SESSION[$_POST['variable']];
?>

答案 1 :(得分:2)

使用local storage或客户控制的cookies.。会话使用服务器控制的cookie。 Cookie只是驻留在客户端上的小文件。

答案 2 :(得分:1)

会话句柄存储在cookie中。如果不接受cookie,服务器会将sessionID添加到URL。如果您没有cookie,除了URL之外,您不能保留任何内容。

为什么“onclick”阻止您使用会话?您可以将内容添加到服务器并将其添加到会话onclick

答案 3 :(得分:1)

会话通常表示“存储在服务器上并通过存储在cookie中的令牌与用户关联的某些数据”。你不能用客户端JavaScript(出于显而易见的原因)这样做。

您可以将数据直接存储在Cookie中。

如果您愿意牺牲广泛的浏览器支持,那么您可以使用HTML 5和Friends引入的客户端存储机制之一来增加存储空间。

  

也许除了使用会话之外,还有其他人可以使用另一种方式,我要做的就是点击一个页面中的链接,根据按下的链接,我会加载不同的信息。

只需链接到不同的页面。

  

有些计算机会删除cookie并且不会很好

如果他们删除了所有cookie,那么会话也不会起作用。

答案 4 :(得分:1)

将您想要下一页的数据附加到查询字符串上。

<a href="foo.html?bar=123">123</a>
<a href="foo.html?bar=456">456</a>

然后在foo.html上,你可以检查location.href以查看传入的内容。这里不需要cookie。

答案 5 :(得分:0)

为什么不使用请求参数?即http://yourserver.com/page.php?link=1

答案 6 :(得分:0)

PHP是一种服务器scipring语言,而javascript是客户端语言 你不能在javascript中实际进行会话