PHP redirect ohne header() oder meta
Ich versuche, die Gestaltung einer Seite, die ein paar Datenbank-Aktionen, dann leitet Benutzer zurück zu der Seite, Sie kam aus. Das problem ist, dass ich eine require()
- Funktion, um die Verbindung zur Datenbank, so dass die Header immer bereits gesendet sind. Ein meta-tag in Frage, da ich möchte, dass es aussieht wie alle Prozesse fertig sind, von der Seite Sie kamen. Irgendwelche Tipps? Gibt es eine Möglichkeit, die ich nutzen kann die require()
und die header()
oder muss ich die Tropfen ein? Gibt es eine alternative zu header()
?
Wie funktioniert eine Verbindung zu einer Datenbank macht-Header gesendet werden?
InformationsquelleAutor Yoshiyahu | 2011-01-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Artefacto festgestellt, eine Verbindung zu der Datenbank sollte nicht verlangen, jede Ausgabe. Beheben was auch immer Sie darunter (z.B. database_connect.php) nicht ausgegeben. Sehen diese Suche auf der "headers already sent" - Problem, die helfen können Sie finden die "hidden" - Ausgabe.
InformationsquelleAutor Matthew Flaschen
Wenn Sie können nicht senden Sie die
header()
vor einigen content gesendet wird, verwenden Sie die Ausgabe-Pufferung indem Sie eineob_start();
am Anfang des Skripts, bevor etwas gesendet wird. So, der Inhalt in einem Puffer gespeichert und werden nicht gesendet, bis das Ende des Skriptes oder wenn Sie manuell senden, den Puffer-Inhalt.Auf einer anderen Anmerkung, einfach
require
ing einer anderen Datei nicht, erzeugen keine überschriften/Inhalte, es sei denn, dass mitgelieferte Skript sendet Ihnen. Die häufigsten "verborgene" Ursache dafür ist unbemerkt whitespace vor oder nach der<?php ?>
tags.InformationsquelleAutor Wiseguy
In diesem Fall wird die Ausgabe gepuffert ist. Das bedeutet, dass die Header werden zuerst verarbeitet, dann wird die Ausgabe kommt zum spielen...
InformationsquelleAutor Andreyco
Sie können nicht senden, Header, nachdem einige Inhalte bereits gesendet wurde. Bewegen Sie den
header()
rufen, bevor dierequire()
nennen.InformationsquelleAutor Fahad Sadah
Können Sie keine Header senden, nachdem alle Daten gesendet wurde, an den client.
Jedoch mit
require
nicht meen, dass Sie den Ausgang etwas. Wenn ich verstehe, Ihr Recht, Sie können Ihre Datenbank-Dateien, führen Sie Ihre Abfragen und dann leiten Sie den Benutzer. Dies ist durchaus gültig.Wenn Sie benötigen, senden Sie eine Ausgabe (warum, wenn Sie tun müssen, um eine Umleitung?) eine weitere option ist die Verwendung von output buffering. Durch die Verwendung von output buffering, du bist nicht senden der Daten an den browser, wenn Sie echo, aber Sie speichern es in einem Puffer. Die Daten werden gesendet, wenn Sie anrufen ob_end_flush oder erreichen Sie das Ende des Skripts. Nach ob_end_flush, Sie werden nicht in der Lage zu senden, neuen Header. Starten Sie die Ausgabe-Pufferung mit ob_start.
require()
scheint zum senden der Header automatisch. Ich habe keine Ausgabe von text.InformationsquelleAutor alexn
Ist es möglich, zu verwenden
header()
mitrequire()
wenn ich output-buffering. Das bedeutet, dass das gesamte Skript ist gepuffert und schicken erst, wenn das script zu einem Ende gekommen ist.Habe ich es getan, indem Sie diese
InformationsquelleAutor Cudos