<meta ... =“”redirect =“”... =“”inside =“”php =“”tags =“”

时间:2016-01-25 12:44:02

标签: php html tags meta

=“”

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

但我想到了这段代码

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

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

还有另一种方式比我现在的方式更好吗?

1 个答案:

答案 0 :(得分:1)

我会调查为什么header()无法在远程服务器上运行。

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

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