我的代码存在此问题,页面正在重定向并且不会停止..浏览器会停止它,因为它一直在重定向,并且我有一个包含 global.php 的文件在所有的php页面中,所以我把这个代码用于会话,它就像我说的那样
if (!session_is_registered('username')) {
if(!eregi('login.php', $PHP_SELF)) header('Location: login.php');
}
global.php 还包含在 login.php 中,但是当我在我的网站的网络服务器上启动它时,它会执行我之前说过的,但在我的网站上在计算机上的基于服务器它工作正常,所以请快速帮助我
抱歉我的英文..
答案 0 :(得分:2)
试试这个:
session_start();
if (!isset($_SESSION['username']) && stripos($_SERVER['PHP_SELF'], 'login.php') === false) {
header('Location: login.php');
}
session_is_registered()
和eregi()
都是不推荐使用的功能,不应使用。另外,正则表达式对于你正在做的事情来说是过度的。
答案 1 :(得分:0)
尝试:
if (!isset($_SESSION('username'))) {
if(FALSE === strpos($_SERVER['PHP_SELF'], 'login.php')) {
header('Location: login.php');
exit();
}
}
一些建议:
session_start()
置于脚本之上isset($_SESSION.......
strpos
代替弃用eregi
session_is_registered
exit/die
$_SERVER['PHP_SELF']
不是$PHP_SELF
使用错误处理,将这些行放在脚本之上:
ini_set('display_errors', true);
error_reporting(E_ALL);