2013-12-22 56 views
0

我有一个页面,人们可以登录,他们的登录请求与jQuery的$ .ajax一起发送到处理页面。在该页面上,登录尝试期间收集的所有错误都存储在$ _SESSION ['error']中。

如何访问此变量以在尝试完成后提醒用户错误。我知道如何访问会话变量,我的意思是如何在不重新加载页面的情况下访问php变量。我目前知道的唯一方法是在页面加载中注入它们,但是由于Ajax请求而发生更改后,必须通过JavaScript以某种方式访问​​它们。

+2

您通过回显您需要返回的任何内容,将它们返回给ajax调用。 – adeneo

+0

你可以发布一些示例代码? –

+1

会话状态仅在服务器上存在; Javascript只存在于客户端上。在它们之间进行通信的唯一方法是将数据包含在对AJAX调用的响应中。 – SLaks

回答

1

不幸的是,你不能直接从JavaScript访问PHP $_SESSION[]数组。这是设计的,因为使用会话的一个主要观点是数据保存在服务器端,最终用户无法修改,因此也就是你的Javascript。

但是你可以做的是在你的ajax响应中包含错误列表。有可能你正在做一个返回'json'类型格式的ajax请求。只需在返回的json中包含错误列表,然后使用JavaScript来显示它们。我建议不要共享整个$_SESSION数组,因为它可能会泄露一些关于PHP交互的关键信息。另外,如果你当前没有做一个期望json的ajax请求,那么请考虑将它切换到你希望并返回的json。您可以通过这种方式提供更多隐藏数据,而不仅仅是一些HTML或文本。

希望这会有所帮助