<元.重定向..在 PHP 标签内


<meta ... redirect ... inside PHP tags

我有一个问题...我已经开发了一个php安全登录页面,现在当我运行检查以使用" <?php header('location: home.php'); ?>"重定向用户时,无论出于何种原因,它在实际域上都不起作用。

但是我想到了这段代码

<?php 
if (login_check($mysqli) == true) {
echo "<meta http-equiv='refresh' content='0;URL=home.php'>";
}
?>

该代码是否安全且功能正常?我最关心的是可以利用的隐私。当我在本地服务器上时,它似乎可以工作,我还没有上传它。

有没有另一种方法会比我目前拥有的更好?

我会

研究为什么header()不能在您的远程服务器上工作。

调用在条件块内触发,可能是条件失败(login_check($mysqli) == true)。你检查过吗?

header()问题的另一个常见原因是应用程序在调用 header() 之前输出非标头数据。当您开始从 PHP 脚本输出数据时,PHP 将自动刷新标头。这意味着在调用header()之前您无法输出任何数据,因为标头数据已经被刷新(因此基本上确保您在header()调用之前没有使用echoprint等)。

见 http://php.net/manual/en/function.header.php

另外,我注意到您在打印元刷新后不会杀死脚本。我会在打印元刷新代码后杀死脚本,以防止向用户提供任何其他内容。所以也许:

if (login_check($mysqli) == true) {
  echo "<meta http-equiv='refresh' content='0;URL=home.php'>";
  die;
}