Hinweis: Ich habe versucht, die bereitgestellten Lösungen zu implementieren: How to fix "Headers already sent" error in PHP und es hat nicht geholfen, also habe ich diese Frage geschrieben. Ich habe verschiedene Beiträge auf ähnliche Problem gegangen, aber keine der Lösungen funktioniert. Im Anschluss ist mein Code:Datei Download mit PHP gibt Fehler
<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);
}
?>
ich Fehler folgende erhalten diese Schaltfläche auf klicken:
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
und danach bekomme ich unleserlich Symbole auf der Web-Seite so etwas wie unten:
%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����
Hinweis: Auch ich habe ob_start() und ob_flush() am Anfang und Ende des Skripts, immer noch habe ich den gleichen Fehler.
Hinweis: Ich habe kein anderes PHP-Skript auf der vollständigen Seite verwendet. Dies ist das einzige Skript. Ich habe jedoch ein anderes Formular-Tag, das auf eine andere Webseite verweist, wenn eine Aktion ausgeführt wird, und es hat seine eigene separate Schaltfläche zum Senden mit einem eindeutigen Namen und einer ID. Bitte helfen.
Mögliche Duplikate von [Wie zu beheben "Header bereits gesendet" Fehler in PHP] (http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php) – Ivar
Sie können nichts ausgeben, BEVOR Sie die Kopfzeile einer Webseite ändern – rak007
Wenn Sie eine Kopfzeile setzen möchten, MÜSSEN Sie sie tun, bevor Sie etwas ausgeben. Dies beinhaltet "echo" oder irgendetwas außerhalb der '' Tags. Sie geben Ihr Formular aus, bevor Sie die Kopfzeile festlegen, so dass Sie diesen Fehler erhalten. Verschieben Sie das Formular an den unteren Rand der Seite und es wird funktionieren. – Ivar