【发布时间】:2016-07-16 03:38:13
【问题描述】:
这是我网站的文件夹结构:
myweb/
index.php
files/
autoloader.php
login.php
这是我的脚本:
// login.php
class login{
public function __construct () {
function signed(){
header('Location: ../');
exit;
}
}
public function index(){
echo isset($_SESSION['error_message']) ? $_SESSION['error_message'] : null;
if ( $_SESSION['login'] == 1 ) {
signed();
}
$_SESSION['login'] = 1;
if ( $_SESSION['login'] == 1 ) {
$_SESSION['error_message'] = 'something is wrong';
header('location: ../login');
}
}
}
当我加载这个路径时:
localhost/myweb/login
这里有两种情况:
-
$_SESSION['login']等于1:我的脚本将我重定向到此路径:localhost/myweb -
$_SESSION['login']不等于1:我的脚本将我重定向到此路径:localhost
第一种情况很好,我的意思是它按预期工作。但是第二种情况是错误的,我的意思是它没有按预期工作。在第二种情况下,它应该将我重定向到此路径:localhost/myweb/login。那么我该如何解决呢?
注意:所有页面都经过index.php。
【问题讨论】:
-
试试这个:header('location: /login');
-
@user4887505 错误.. 在您的情况下,它将我重定向到此路径
localhost/login这是无效的。 -
如果你加载“localhost/myweb/login”路径并且 $_SESSION['login'] 不等于 1 在这里你已经在登录文件中了,那你为什么要重定向页面呢?
-
@user4887505 实际上我需要将页面重定向到自身。换句话说,我需要刷新一个页面。实际上,我会填写像
$_SESSION['error'] = 'something';这样的会话,我需要刷新页面以向用户显示该错误。 -
要刷新页面,请在 $_SESSION['error'] = 'something'; 之后尝试这个: header("刷新:0");
标签: php url-routing