重定向头信息错误

时间:2018-06-02 01:51:55

标签: php

当我在我的代码中调用此函数时,出现此错误。你有什么想法吗?

  

警告:无法修改标头信息 - 已发送的标头   (输出从/home/www//boutique/Admin/header_menu.php:173开始)   /home/www/boutique/includes/OM/HTTP.php第33行调用堆栈

时间记忆功能位置

1 0.0000 395512 {main}()... / index.php:0 2 0.0738 1789400包括(' /home/www//boutique/includes/Apps/Tools/ImportData/Sites/Admin/Pages/Home/templates/import_process.php')... / index.php: 31 4 0.0746 1792488 forward_static_call_array()... / AppAbstract.php:111 5 0.0746 1792896 OM \ OSCOM :: redirect() 6 0.0747 1793400 OM \ HTTP :: redirect() 7 0.0747 1793560 header()

public static function redirect($url, $http_response_code = null) {

  if ((strstr($url, "\n") === false) && (strstr($url, "\r") === false)) {
    if ( strpos($url, '&') !== false ) {
      $url = str_replace('&', '&', $url);
    }

    header('Location: ' . $url, true, $http_response_code);
  }

  exit;
}

1 个答案:

答案 0 :(得分:0)

那是因为你不能在发送标题后使用“header()”...这意味着,例如,当PHP已经将标题发送到HTTP服务器时(然后将响应发送给用户,但你得到它我猜)你不能追加任何其他东西。

所以,例如,如果你想重定向到另一个页面,你需要在向用户发送任何HTML之前包含这个“重定向”(或者说是发送给HTTP服务器)......

如果您想要另一种方法来执行此操作,并且在发送任何HTML之前无法实际重定向,那么,使用相同的HTML进行重定向,如何使用,使用重定向HTML标记或某些javascript。