Ich arbeite an einem Projekt und muss mein Programm auf dem Webserver eines anderen Benutzers ausführen. Es ist eine ziemlich einfache Login-Seite, mit der ich das Problem habe. Das Programm funktioniert korrekt, wenn ich es über meinen lokalen Host über WAMP laufe. Das Problem, das ich habe, ist, dass der Umleitungsteil nicht richtig arbeitet, validiert den Benutzer und startet eine Sitzung, aber wenn es zur Umleitung kommt, passiert nichts.
Ich mache entweder etwas falsch mit meiner Syntax, was ich sehr unwahrscheinlich finde, da es über meinen lokalen Host korrekt funktioniert. Oder alternativ denke ich, dass der Server diese Funktion nicht hat (nicht sicher, ob es möglich ist, auszuwählen, welche Module Ihr Server unterstützt, obwohl ich mir sicher bin, dass es machbar ist).
Ich weiß nicht, ob es wichtig ist, aber sie benutzen "cpanel", wo ich auf die Dateien und dort alle im selben Verzeichnis zugreifen kann, wenn jemand mir sagen könnte, wo ich falsch liege oder eine Alternative zum Weiterleiten vorschlage via "header" würde jede Hilfe sehr geschätzt werden. Ich habe mich umgesehen, aber es scheint, dass "Header" das Standardarbeitspferd ist.
Hier ist der Code, den ich habe:
%Vor%Update: Als Reaktion auf die Aussagen über die Echos wäre das Problem dadurch möglich, dass ich mein Formular in der gleichen Datei verarbeite und echo $ _SERVER ['PHP_SELF']
benutzeVon den Dokumenten :
Denken Sie daran, dass
header()
aufgerufen werden muss, bevor eine tatsächliche Ausgabe gesendet wird, entweder mit normalen HTML-Tags, Leerzeilen in einer Datei oder mit PHP.
Ihre echo
bewirkt, dass die Weiterleitung fehlschlägt, wie auch jede andere Ausgabe, die vor der Kopfzeile gesendet wird.
Ich benutze diese Funktion für Redirect ...
Was in allen Situationen funktioniert ... auch wenn die Header bereits gesendet werden..oder sogar Javascript ist deaktiviert ..
%Vor% Sie können nach der Ausgabe von Text keine Kopfzeilen setzen, also entweder den header
-Aufruf vor die echo
-Anweisungen verschieben (in Ihrem Fall in Ordnung) oder Sie verwenden Ausgabepuffer .
Die Weiterleitung über Header ist illegal, wenn Inhalte vorhanden sind. Nimm alle echo
s raus und es sollte funktionieren. Wenn Sie möchten, dass dem Benutzer vor der Weiterleitung eine Nachricht angezeigt wird, müssen Sie dies wahrscheinlich mit JavaScript über location.href
tun.
Sie haben wahrscheinlich bereits Inhalte an den Browser gesendet, bevor der php-Header gesendet wurde. Dies kann nur ein \ n nach einem schließenden PHP-Tag (? & Gt;) sein
Es kann schwierig sein, die Stelle zu finden, an der die unerwünschte Ausgabe erzeugt wird, bei größeren Projekten oder langen Reihen von sich gegenseitig ausdehnenden Klassen. Um das Problem zu finden, können Sie dies tun:
%Vor%Strenge Fehlerberichte werden Zeile und Datei der Ausgabe auslösen.