注:私は解決策を実装しようとしました:How to fix "Headers already sent" error in PHPとそれは役に立たなかったので、この質問を投稿しました。 私は同様の問題についてさまざまな投稿を行ってきましたが、解決策はありませんでした。私は、このボタンをクリックすると上のエラーを次取得PHPでダウンロードエラーがあります
<form role="form" method="POST">
<input type="submit" name="dff" id="dff" class="btn btn-default" value="Download Franchisee Form"></input>
</form>
<?php
if(isset($_POST['dff']))
{
$yourfile="MyFile.pdf";
$fp = @fopen($yourfile, 'rb');
if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE"))
{
header('Content-Type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="yourname.file"');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Transfer-Encoding: binary");
header('Pragma: public');
header("Content-Length: ".filesize($yourfile));
}
else
{
header('Content-Type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="yourname.file"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Pragma: no-cache');
header("Content-Length: ".filesize($yourfile));
}
fpassthru($fp);
fclose($fp);
}
?>
:以下は、私のコードです
%PDF-1.5 %���� 1 0 obj <> endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 595.32 841.92] /Contents 7 0 R/Group<>/Tabs/S>> endobj 4 0 obj <> stream ����JFIF``��ZExifMM*JQQ�Q�������C !(!0*21/*.-4;[email protected]?]c\RbKSTQ��C''Q6.6QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ��d9"�� ���}!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ���w!1AQaq"2�B���� #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz����
:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\GoogleKids\Franchisee.php:116) in C:\xampp\htdocs\GoogleKids\Franchisee.php on line 133
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\GoogleKids\Franchisee.php:116) in C:\xampp\htdocs\GoogleKids\Franchisee.php on line 134
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\GoogleKids\Franchisee.php:116) in C:\xampp\htdocs\GoogleKids\Franchisee.php on line 135
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\GoogleKids\Franchisee.php:116) in C:\xampp\htdocs\GoogleKids\Franchisee.php on line 136
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\GoogleKids\Franchisee.php:116) in C:\xampp\htdocs\GoogleKids\Franchisee.php on line 137
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\GoogleKids\Franchisee.php:116) in C:\xampp\htdocs\GoogleKids\Franchisee.php on line 138
とその後
、私は以下のようなWebページの何かの読めない記号を取得注: 私はob_start()とob_flush()をそれぞれスクリプトの最初と最後に使用しましたが、それでも私は同じエラーを受けました。
注:完全なページで他のPHPスクリプトを使用していません。これが唯一のスクリプトです。しかし、私は別のフォームタグを持っていますが、これはアクションを実行する際に別のWebページにリンクし、固有の名前とIDを持つ独自の送信ボタンを持っています。 助けてください。
[PHPで「ヘッダがすでに送信されました」というエラーを修正する方法](http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php) – Ivar
ウェブページのヘッダーを変更する前に何も出力できません – rak007
ヘッダーを設定する場合は、何かを出力する前にヘッダーを設定する必要があります。これには 'echo'や ''タグの何かが含まれます。ヘッダーを設定する前にフォームを出力しているので、このエラーが発生します。フォームをページの下部に移動すると機能します。 – Ivar