-4

重複の可能性:
「警告: ヘッダー情報を変更できません - ヘッダーは既に送信されています」エラー

私のウェブサイトでこれらのエラーが発生しています

警告: ヘッダー情報を変更できません - /home/****/public_html/monday/tuffturf/ の (/home/****/public_html/monday/tuffturf/createrep.php:7 で出力が開始された) によって既に送信されたヘッダー103 行目の createrep.php

警告: ヘッダー情報を変更できません - /home/****/public_html/monday/tuffturf/ の (/home/****/public_html/monday/tuffturf/createrep.php:7 で出力が開始された) によって既に送信されたヘッダー104 行目の createrep.php

警告: ヘッダー情報を変更できません - /home/****/public_html/monday/tuffturf/ の (/home/****/public_html/monday/tuffturf/createrep.php:7 で出力が開始された) によって既に送信されたヘッダー105 行目の createrep.php

警告: ヘッダー情報を変更できません - /home/****/public_html/monday/tuffturf/ の (/home/****/public_html/monday/tuffturf/createrep.php:7 で出力が開始された) によって既に送信されたヘッダー106 行目の createrep.php クエリが失敗しました もう一度お試しください

mysql_fetch_assoc(): 指定された引数は有効な MySQL 結果リソースではありません

PHPタグの空白をチェックしましたが、さまざまなことを試しましたが、解決策が見つかりません

PHPは86行目から始まり、134行目で終わります

<?php
$server = 'localhost';
$username = '*****';
$password = '*****';
mysql_connect($server, $username, $password);
mysql_select_db('***_turfdb')
or die ("unable to connect to mysql");

    $reports = array(
    'all' => 'SELECT * FROM quotepage',
    'recent' => 'SELECT * FROM quotepage ORDER BY entered DESC LIMIT 20',
    'oldest' => 'SELECT * FROM quotepage ORDER BY entered ASC LIMIT 20'
    );
    if (!array_key_exists($_POST['report'], $reports) || !isset($_POST))
    {
    die('Error generating report. please try again later.');
    };
    header("content-type:text/csv; charset=utf-8");
    header('Content-Disposition:attachment;filename='.date('Y-m-d').'.csv');
    header("pragma: no-cache");
    header ("expires: 0");


/*if(isset($_POST) && !empty($_POST)) {
            if(mysql_query($query)) {
                echo "<script type=\"text/javascript\"> alert('All information entered was successfully will now show report.'); </script>";
            } else {
                echo "<script type=\"text/javascript\"> alert('There was an error please try again later.'); </script>";
                echo mysql_error();
            }
        }*/

    if(isset($_POST['header']))
    {
        $field = mysql_query('SHOW COLUMS FROM quotepage');
        $label = array();
        while($field = mysql_fetch_assoc($field));
    {
        $labels[] = $field ['Field'];
    };
         echo implode (',', $labels) . "\n";
    }
        $data = mysql_query($reports[$_POST['report']]);
        while($row = mysql_fetch_assoc($data));
        die ("query failed please try again");
    {
            echo implode(',', $row) . "\n";
    }
?>  

これはドロップダウン ボックスを使用して、csv レポートに表示するレポートの数を選択します。

csv レポートを作成しようとしたのはこれが初めてなので、さらに情報が必要な場合は質問してください

4

2 に答える 2

1

エラー メッセージが示すように、createrep.phpの 7 行目に出力があります。

header()出力がブラウザーに送信される前に使用する必要があります(空白、HTML など)。

あなたが提供したコードは 86 行目にあることに気付きました。上記の 85 行に何かを出力したと思います。

于 2012-06-11T02:54:21.700 に答える
0

100 行以上のコードには見えないため、ここにすべてのコードがあるわけではないようです。私の推測では、どこかの PHP タグの外側にあるスペースまたは改行文字です。PHP ファイルの末尾にある終了タグは常に省略します。これは、PHP の終了タグの後にスペースまたは改行があると、ブラウザーに送信される HTML 出力として解釈されるためです。PHP の終了タグを省略してもエラーにはなりません。

于 2012-06-11T03:04:49.653 に答える