开发者

Cannot modify header information - headers already sent by... WordPress Issue [duplicate]

This question already has answers here: Reference - What does this error mean in PHP? (38 answers) Closed 10 years ago.

I'm encountering this error. and I have no idea dealing with this.

Cannot modify header information - headers already sent by (output started at /home/ben213/public_html/wp-content/themes/Bendaggers/functions.php:9) in /home/ben213/public_html/wp-includes/pluggable.php on line 934

my Functions.php file line # 9 is:

<?php 开发者_开发问答if(function_exists('register_sidebar'))register_sidebar();?>

while my pluggable.php # 934 is

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;

I'm having a hard time figuring this out since im not a programmer. what seems to be wrong? kindly help me please...


Your theme is printing output (text) to the browser, but then for some reason WordPress is redirecting the user (with wp_redirect) away from that page before the whole page is rendered. You can't start printing output and then redirect, or you'll get the error you see. That's what Paul Grime was getting at in his comment.

Ken White commented with a reference to a post with a similar problem. I've fixed this in my own experience by buffering the output of the script.

In your theme's functions.php file (which gets included every time your theme's pages load), put the following:

//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();
}

Now, even if part of your theme starts to send input to the browser, PHP won't send that text until the page is fully loaded, which allows WordPress to redirect users, if necessary, as part of its own logic.


If you are trying to redirect to another page from your current page, where you have impose a condition or without condition, then use this code. E.gs you have two pages A.php, & B.php and currenty you are in A.php where you want to go to other page B.php on clicking the BUTTON.

   if(isset($_POST['save_btn']))
    {
        //write some of your code here, if necessary
        echo'<script> window.location="B.php"; </script> ';
     }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜