MyBB.de Forum
Nachträglich header senden? - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.2.x und älter (https://www.mybb.de/forum/forum-27.html)
+---- Forum: Sonstiges (https://www.mybb.de/forum/forum-29.html)
+---- Thema: Nachträglich header senden? (/thread-8395.html)



Nachträglich header senden? - Bimon - 20.01.2008

Hallo,
kann ich nachträglich einen header senden? Ich möchte da später noch ein Location: $file rein haben, aber da kommt ja der Fehler mit header already send usw.
Kann ich denn trotzdem irgendwie einen header senden?


RE: Nachträglich header senden? - Michael - 20.01.2008

Nein, das ist nicht möglich, da Header immer vor allem anderen an den Browser geschickt werden müssen.
Zitat:Beachten Sie, dass Sie die Funktion header() aufrufen müssen, bevor Sie irgendeine andere Art von Ausgabe (seien es normale HTML-Tags, Leerzeilen in einer Datei oder von PHP) zum Client schicken
Quelle: http://de.php.net/manual/de/function.header.php


RE: Nachträglich header senden? - Bimon - 20.01.2008

Und kann ich irgendwie anders diese Weiterleitung hinbekommen? Oder kann ich die Ausgaben erst mit diesem ob_start() usw. unterdrücken, und dann noch den Location: $link Header senden?
Oder schließt das MyBB das senden der Header wirklich ganz ab?


RE: Nachträglich header senden? - Michael - 20.01.2008

Was hast du denn genau vor? Ich würde sagen, du kannst die Ausgabe per ob_start zurückhalten, aber wirklich bestätigen kann ich es nicht.


RE: Nachträglich header senden? - Bimon - 24.01.2008

Ich habe einen Download Bereich mit Countern erstellt, wenn man jetzt auf Download klickt, dann wird der Counter mit PHP um eins erhöht, und dann soll zum Download weitergeleitet werden.
Derzeit mache ich es mit Javascript. Da habe ich aber das Problem, dass nicht alle JavaScript aktiviert haben und, dass man dann eine angeladene Seite zu Gesicht bekommt, weil JavaScript ja sofort nach dem Donload ausgeführt wird. Dem entsprechend zerhackt sieht die Seite dann aus; das Download Fenster ist zwar da, aber die zurückgebliebene Seite sieht halt nicht mehr so pralle aus.
Mit festen Zeiten, also meintet wegen eine Sekunde warten, bevor weitergeleitet wird, möchte ich nicht, da diejenigen, die eine langsame Internetverbindung haben, dann nur mit Glück die vollständige Seite angezeigt bekommen.
Und wie gesagt: der größte Haken bei der Sache: Es sollte auch ohne JavaScript funktionieren. (Weiterleitung mit Meta-Angabe habe ich früher mal gemacht, glaube aber, dass die sehr lange braucht um sich zu aktivieren.)


RE: Nachträglich header senden? - Michael - 25.01.2008

Wenn ich dich richtig verstehe würde ich das über eine neue Datei lösen. Per GET wird die ID/die URL zum Download übergeben, das Skript zählt den Download und leitet dann per header() weiter. Die Datei selbst hat sonst keine Ausgabe.


RE: Nachträglich header senden? - Bimon - 25.01.2008

...ok, kannst du das in ein kurzes Beispiel fassen?? Big Grin


RE: Nachträglich header senden? - Dave - 25.01.2008

PHP-Code:
<?php
$id 
intval($_GET['id']);
$query mysql_query("SELECT url, count FROM `mybb_downloads` WHERE `id`='$id'");
$download mysql_fetch_array($query);
$newcount = ++$download['count'];
$query mysql_query("UPDATE `mybb_downloads` SET `count`='$newcount' WHERE `id`='$id'");
$url "http://www.deineurl.tld/".$download['url'];
header(Location$url);
?>
So ungefaehr koennte es aussehen. Du musst natuerlich die Datenbankquerys entsprechend anpassen.