为避免非法使用,请检查代码开头的登录状态。我这样做如下:
if (!isset($_SESSION['loggedin'])){
header('Location:http://www.name.nl/prg/login.php');
exit();
}
这很有效。但是,如果我首先使用此代码它不起作用。
ini_set('session.save_path',realpath(dirname($_SERVER['DOCUMENT_ROOT'])).'/name.nl/tmp');
session_start();
if (!isset($_SESSION['loggedin'])){
header('Location:http://www.name.nl/prg/login.php');
exit();
}
我错过了什么吗?我现在找了2天,但找不到理由/解决方案。在我看来,头函数应该在ini_set和session_start之后工作。我的意思是它是通用代码?
答案 0 :(得分:1)
首先尝试:ini_set('session.save_path',realpath(dirname($ _ SERVER ['DOCUMENT_ROOT'])。'/ name.nl/tmp'));
(移动括号)
尝试查看此处:http://php.net/manual/en/function.session-save-path.php
不确定这是否有帮助,但它似乎与您的会话文件夹所在位置有关,然后指向代码中正确的目录/文件夹。
适用于他们的解决方案: ini_set('session.save_path',realpath(dirname($ _ SERVER ['DOCUMENT_ROOT'])。'/。/ session'));
您当前的会话保存:
的ini_set( '的session.save_path',真实路径(目录名($ _ SERVER [ 'DOCUMENT_ROOT'])) '/ name.nl/tmp');
答案 1 :(得分:0)
我找到了原因。我有一个" echo语句"在标题声明之前。删除此声明后,它可以正常工作。 谢谢你的评论!