在我们的PHP站点(PHP 5.4.30)上,由于丢失了PHP会话,用户正在注销。
session_start();
if (isset($_SESSION['version']) and file_exists($_SESSION['version'] . '/go.php')) {
require $_SESSION['version'] . '/go.php';
}
else {
session_destroy();
header('HTTP/1.0 401 Unauthorized');
header("Location: 401.php");
}
我已经检查了服务器上的/ tmp,并且在注销后会话文件仍然存在
me@example.com [/tmp]# dir -l sess_abcdefb967fc79364a5a773e0157d663
-rw------- 1 si si 565 Apr 3 09:51 sess_abcdefb967fc79364a5a773e0157d663
典型的综合浏览量会产生如下标题:
General
Remote Address:123.123.171.111:443
Request URL:https://example.com/mx/TypicalPage
Request Method:GET
Status Code:200 OK
Response Headers
Cache-Control:private
Connection:Keep-Alive
Content-Length:6716
Content-Type:text/html; charset=UTF-8
Date:Fri, 03 Apr 2015 20:43:06 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=100
Pragma:no-cache
Server:Apache/2.2.27 (Unix) mod_ssl/2.2.27 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 PHP/5.4.30
X-Powered-By:PHP/5.4.30
Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,de;q=0.6,pt-BR;q=0.4,pt;q=0.2
Connection:keep-alive
Cookie:PHPSESSID=1234567890abcdef1234567890abcdef
Host:simplement.com.br
Referer:https://example.com/mx/PreviousPage
User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2356.0 Safari/537.36
答案 0 :(得分:0)
我在新服务器上遇到了同样的问题。这是一个常见的服务器问题,可能是由于资源短缺。
我的代码中的问题在尝试使用以下方式重定向用户时出现:
var editor = CKEDITOR.replace( 'Message', {
allowedContent: 'p'
});
editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
alert( editor.getData() );
PHP可能尚未完成向处理程序的会话写入(我是文件),并且header('Location: ...');
函数重定向了页面。
我已解决了在重定向用户之前调用header
和session_regenerate_id
函数的问题。
session_write_close