【问题标题】:header:location not working标头:位置不起作用
【发布时间】:2013-07-28 14:50:54
【问题描述】:

我遇到了这个问题,我的标头重定向似乎不起作用。

<?php
   session_start();
   if(!session_is_registered(myusername)){
      header('Location:home.php');
      exit;
   }
?>

<html>
   <body>
      Login Successful
   </body>
</html>

【问题讨论】:

  • 除非您将myusername 定义为常量,否则您需要在其周围加上引号。
  • 也许你的 if 条件有问题。检查它是否有效!
  • 你启用error_reporting了吗? session_is_registered 已被弃用。否则Headers already sent by PHP
  • 那是个意外......顺便说一句......

标签: php http-headers


【解决方案1】:

试试这个:

header("Location: home.php"); // there is a space

【讨论】:

  • 你确定条件满足吗?尝试用 echo "test" 替换你的标题;看看是否显示“测试”...
【解决方案2】:

嗯,试试

if(!isset($_SESSION['myusername'])){

而不是

if(!session_is_registered(myusername)){

【讨论】:

  • 不,永远不要摆脱出口;在另一个页面的标题之后!
  • 你能解释一下吗?我从来没有使用过退出;重定向时,从来没有任何问题。
  • 这是一个安全检查!建议在标头之后使用 exit 以确保不执行之后的代码。标头将用户的浏览器重定向到新页面,但脚本仍在服务器端执行:)
  • 啊,我明白了,谢谢。我确实从未尝试在标头重定向后运行任何其他代码,这可能是我没有(必须)使用 exit; 的原因。如果仍然可能,会编辑我的回复吗? (我对 Stackoverflow 还很陌生...) -- 编辑:看到有人建议并批准了一个编辑!
  • 谢谢,刚刚批准。 :)
猜你喜欢
  • 2011-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多