<?php header('location: home.php'); ?>
”重定向用户时,无论出于何种原因,它在实际域上都不起作用。
但我想到了这段代码
<?php
if (login_check($mysqli) == true) {
echo "<meta http-equiv='refresh' content='0;URL=home.php'>";
}
?>
该代码是否安全且有效?我最关心的是可以利用的隐私。当我在我的本地服务器上时似乎工作,我还没有上传它。
还有另一种方式比我现在的方式更好吗?
答案 0 :(得分:1)
我会调查为什么header()
无法在远程服务器上运行。
在条件块内触发调用,可能是条件失败(login_check($mysqli) == true
)。你检查过了吗?
header()
问题的另一个常见原因是应用程序在调用header()
之前输出非标头数据。当您开始从PHP脚本输出数据时,PHP将自动刷新标头。这意味着您在调用header()
之前无法输出任何数据,因为标题数据已经被刷新(所以基本上确保您之前没有使用echo
,print
等你的header()
电话。)。
请参阅http://php.net/manual/en/function.header.php
另外,我注意到您在打印元刷新后没有删除脚本。我会在打印元刷新代码后终止脚本,以防止向用户提供任何其他内容。所以也许:
if (login_check($mysqli) == true) {
echo "<meta http-equiv='refresh' content='0;URL=home.php'>";
die;
}