当前位置: 首页 > 面试题库 >

无法修改标头信息-标头已由…WordPress问题发送

伏子辰
2023-03-14
问题内容

我遇到这个错误。而且我不知道如何处理。

无法修改标头信息-已发送的标头(输出从/home/ben213/public_html/wp- includes/pluggable.php上的/home/ben213/public_html/wp- content/themes/Bendaggers/functions.php:9开始) 934行

我的Functions.php文件第9行是:

<?php if(function_exists('register_sidebar'))register_sidebar();?>

而我的pluggable.php#934是

function wp_redirect($location, $status = 302) {
    global $is_IIS;

    $location = apply_filters('wp_redirect', $location, $status);
    $status = apply_filters('wp_redirect_status', $status, $location);

    if ( !$location ) // allows the wp_redirect filter to cancel a redirect
        return false;

    $location = wp_sanitize_redirect($location);

    if ( !$is_IIS && php_sapi_name() != 'cgi-fcgi' )
        status_header($status); // This causes problems on IIS and some FastCGI setups

    header("Location: $location", true, $status);}
endif;

因为我不是程序员,所以我很难解决这个问题。怎么了?请帮助我…


问题答案:

您的主题是将输出(文本)输出到浏览器,但是由于某种原因,WordPress会在呈现整个页面之前将用户(使用wp_redirect)重定向到该页面。您无法开始打印输出然后进行重定向,否则将看到错误。保罗·格莱姆(Paul
Grime)在评论中就是这样。

肯·怀特(Ken White)提到有类似问题的帖子。我已经通过缓冲脚本的输出来解决此问题。

在主题functions.php文件中(每次加载主题页面时都会包含该文件)中,放置以下内容:

//allow redirection, even if my theme starts to send output to the browser
add_action('init', 'do_output_buffer');
function do_output_buffer() {
        ob_start();
}

现在,即使您的主题的一部分开始向浏览器发送输入,PHP也不会在页面完全加载之前发送该文本,这使WordPress可以根据需要将用户重定向(作为其自身逻辑的一部分)。



 类似资料:
  • 问题内容: 我是PHP的新手,我刚刚练习了PHP setcookie()并失败了。 http:// localhost / test / index.php http:// localhost / test / view.php 但是我无法运行index.php,像这样的IE警告。 毫无疑问,我启用了IE 6 cookie。 我上面的程序有什么问题吗?谢谢。 使用WinXP OS和XAMPP 1.

  • 本文向大家介绍PHP 警告:无法修改标头信息-标头已发送,包括了PHP 警告:无法修改标头信息-标头已发送的使用技巧和注意事项,需要的朋友参考一下 示例 外观: 当脚本尝试将HTTP标头发送到客户端但之前已经有输出时,会发生此情况,这导致标头已经发送到客户端。 可能的原因 : 打印,回显:打印和回显语句的输出将终止发送HTTP标头的机会。必须对应用程序流程进行重组以避免这种情况。 原始HTML区域

  • 问题内容: 我已经为这个错误苦苦挣扎了一段时间了。 首先,我只是以为是空格,但经过进一步研究,我认为这可能是与此类似的问题: 在此标头语句之前,查找所有可能将输出发送给用户的语句。如果找到一个或多个,请更改代码以将标头语句移到它们之前。复杂的条件语句可能会使问题复杂化,但也可能有助于解决问题。考虑一下PHP脚本顶部的条件表达式,该条件表达式尽早确定标头值并将其设置在那里。 我猜想include标头

  • 问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复:标 头已由PHP发送 每当我尝试提交表单删除表单时,我都会不断收到此错误。 警告:无法修改标头信息-在第106行的C:\ xampp \ htdocs \ speedycms \ deleteclient.php中已经发送过的标头(输出从C:\ xampp \ htdocs \ speedycms \ deleteclient.p

  • 嗨,目前我还在学习CodeIgniter。我正在尝试使用它的会话,并在自动加载文件中启用了该会话 首先,文件的文件结构是这样的/ 我这样组织我的文件。所有模板都将放入视图/索引中。php 我的问题是我得到了这个错误

  • 我在我的localhost上测试工作良好,现在显示任何错误,但上传到戈迪服务器后。 此错误显示在登录页面中。 错误消息1 消息:无法修改报头信息-已发送的报头(输出开始于 /home/user/public_html/ngapali/test/application/controllers/admin/user.php: 1) 文件名:库/会话。php 电话号码:433 错误消息2 消息:无法修改