jQuery和PHP会话检查

时间:2013-05-29 16:01:32

标签: php jquery session

我有一个应用程序,在前面使用jQuery,在后面使用PHP。如果PHP会话到期,那么如果用户尝试与之交互,应用程序将会做奇怪的事情。因此,我想定期检查以确保PHP会话仍然设置,如果没有,则提示用户重新登录,然后才能执行任何操作。

所以,我的问题如下:如果我每隔10秒发送一个ajax帖子来检查是否设置了特定的PHP会话变量,这是否过度?基本上,我发送一个带有ajax的请求到一个看起来像这样的php页面:

<?php
session_start();

// CHECK FOR SESSION
if (isset($_SESSION['UserID'])) {
    $response = 'true';
} else {
    $response = 'false';    
}

// ECHO RESPONSE
echo "<response>\n";
echo "\t<row>\n";
echo "\t\t<valid>".$response."</valid>\n";
echo "\t</row>\n";
echo "</response>\n";
?>

然后我解析结果。

有人可以提出更轻便的做法吗?或者我在做什么问题?

1 个答案:

答案 0 :(得分:1)

如果会话过期,有人试图与应用互动,那么'奇怪的事情'是什么?是因为它还从服务器获取数据,并且由于会话已过期而无法获取正确的数据吗?

如果是这样,您可以让服务器在会话过期时发回一定的响应并在javascript中检查。例如,你可以让响应发回一个带有第一个键session的json,它是一个布尔值,指示会话是否仍然有效,以及作为第二个键data,它在会话时保存最初请求的数据仍然有效。

当您使用此方法时,您不必每10秒检查一次,只要检测到会话过期,您就可以恰当地做出响应。