【发布时间】:2014-11-27 15:37:19
【问题描述】:
我不明白为什么下面的代码没有重定向,我已经破坏了会话,所以条件应该是真的,但它没有重定向到这个页面,
<?php
session_start();
if(!isset($_SESSION['userid'])) {
header('Location: Login.html');
exit;
}
?>
但在注销 php 中,重定向运行良好。
<?php
session_start();
session_destroy();
header('Location: Login.html');
exit;
?>
编辑
我可以在 Chrome 开发者工具中看到重定向调用,但实际上并没有重定向
请帮助我理解我在代码中的错误。
【问题讨论】:
-
在您打开
<?php标签error_reporting(E_ALL); ini_set('display_errors', 1);后立即将错误报告添加到文件顶部,看看它是否会产生任何结果。 -
isset不检查该值是否为真。它检查密钥是否存在......所以如果$_SESSION['userid']存在但为假,它不会重定向。你应该改用empty。 -
@Cfreak,我相信 isset 就足够了。他正试图完全删除它。如果它被删除,
isset()将返回 false。他不在乎当前的值是多少 -
@MikeB,所有这些都表示 JS(因为 CORS)。这是在 PHP 中。意思是它的服务器端。独立于浏览器。服务器在将任何内容发送到浏览器之前进行重定向