作者cleanwind (骨傲风清(挂网))
看板PHP
标题Re: [请益] session时间设定
时间Tue Aug 3 22:47:06 2010
有时候好像和 Server 有关系?
某次 Ubuntu 内的 Apache 更新後,
只要闲置 session 就会被清掉 ... orz
我有个想法是透过 AJAX 去解决 :p
让使用者虽然没动作,也察觉不出有动作,
却还是能够保持连线的方式。
==============================================================================
<html>
<head>
<script type="text/JavaScript">
<!--
function createXHR() {
if(typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
var XHRversions =
["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.5.0",
"MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0"];
for (var i = 0; i < XHRversions.length; i++) {
try {
var tmpXHR =
new ActiveXObject(XHRversions[i]);
return tmpXHR;
}
catch(e) {
continue;
}
}
}
}
function keeponline() {
var myXHR = createXHR();
myXHR.open("get", "keeponline.php", false);
myXHR.send(null);
if(myXHR.status == 200 || myXHR.status == 304) {
setTimeout("keeponline()", 600000);
//每 10 分钟呼叫一次
}
else {
keeponline();
}
}
//-->
</script>
</head>
<body onload="keeponline();">
...
</body>
</html>
==============================================================================
//keeponline.php
header("Content-Type: text/plain");
header("cache-control: private"); //IE 6 Fix
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("cache-Control: no-store, no-cache, must-revalidate");
header("cache-Control: post-check=0, pre-check=0", false);
echo date('Y/m/d H:i:s');
※ 引述《taitin (小南)》之铭言:
: 我想要把session时间加长
: 因为每闲置20分钟断线,这样实在不好用
: 因为我现在网站在虚拟主机上面
: 所以没有办法动php.ini
: 最多只能用 .htaccess来控制
: 我查到的方法用php来设定
: session_set_cookie_params(7200)
: 但是不晓得什麽问题还20分钟後还是消失了
: 我想问的是 这句的语法是每一页都要设定吗?
: 还是在当初给值时设定就好?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.101.9.24