0

警告: ヘッダー情報を変更できません - 既に送信されたヘッダー (/home/sixtydev/public_html/voxxydev/wp-content/themes/voxxy/header.php:15 で開始された出力) で Wordpress のヘッダー情報を変更できないという問題があります。 /home/sixtydev/public_html/voxxydev/wp-includes/pluggable.php の 865 行目

私のリダイレクトコードは次のとおりです。

if(isset($_GET['qry'])  && !empty($_GET['qry'])){
    $swl = mysql_query("update wp_share_idea set image".$_GET['qry']."='' where userId='".$delId."'");

    wp_redirect("http://60degreedeveloper.info/voxxydev/user-profile/?msg='".$delId."'");
    exit;

} 

私のheader.phpコード:

<?php
/**
 * The Header for our theme.
 *
 * Displays all of the <head> section and everything up till <div id="main">
 *
 * @package WordPress
 * @subpackage Voxxy
 * @since Voxxy 1.0
 */
?><html>
<head>
<title>Voxxy</title>
<link rel="profile" href="http://gmpg.org/xfn/11"/>
line no: 15:: <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('stylesheet_url');?>"/>
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>"/>

および plugable.php コード:

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
line no:865:-   header("Location: $location", true, $status);
}

どこで問題が発生したのか混乱します。前もって感謝します

4

5 に答える 5

2

wp_redirectWordpressで出力を生成する最初のものである場合にのみ機能します。これは、出力にhttpヘッダーを設定することで機能します。他の何かが何らかの出力を生成すると、そのメソッドは機能しなくなります。

あなたの場合、pluggable.phpのリダイレクトコードを呼び出すところはどこでも、get_header()呼び出された後に発生します。

ヘッダーが呼び出される前にこのコードを移動するか、javascript関数を使用してユーザーをリダイレクトする必要があります。

またupdate、サニタイズされていない$_GET変数に対してデータベースに対してクエリを実行しないでください。

于 2012-06-15T05:17:07.517 に答える
0

bloginfo( 'stylesheet_uri' )に変更するprint get_stylesheet_directory_uri()と どうなりますかbloginfo( 'pingback_url' ) to print get_bloginfo( 'pingback_url' ); ?

于 2012-06-16T01:25:36.390 に答える
0
$status = apply_filters( 'wp_redirect_status', $status, $location );

    if ( ! $location )
        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);

    return true;
}
endif;
于 2015-03-22T22:07:37.543 に答える
0

@cpilkoソリューションが機能しない場合(彼は完全に正しいかもしれません)しかし-

PHP ファイル自体に関する wordpress の既知の問題があります。開始タグの前に空の文字/スペース/改行がなく<?php、終了タグの後にないことを確認する必要があります?>

すべてのテーマ ファイルとすべてのプラグインについて確認する必要があります。

終了タグについて?> - 存在することを確認する必要があります (はい、一部のプラグイン開発者はそれを省略しています)

詳細はこちら: http://codex.wordpress.org/Answers-Troubleshooting#Headers_already_sent

ケースの 99% で - これが原因です。

于 2012-06-15T05:27:04.110 に答える