首页 > 解决方案 > 重定向标头信息错误

问题描述

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

警告:无法修改标头信息 - 标头已由(输出开始于 /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 标头 ( )

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;
}

标签: php

解决方案


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

因此,例如,如果您想重定向到另一个页面,则需要在将任何 HTML 发送给用户(或如对 HTTP 服务器所说的那样)之前包含此“重定向”...

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


推荐阅读