Alternative zu "header" für die Umleitung in PHP

8

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']

benutze     
cpowel2 31.12.2011, 17:22
quelle

7 Antworten

1

Von 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.

    
Ignacio Vazquez-Abrams 31.12.2011, 17:26
quelle
37

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%     
Rajat Singhal 31.12.2011 17:32
quelle
2

Mit dem folgenden Code leiten wir die Seite um

%Vor%     
user3505600 18.04.2014 07:28
quelle
1

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 .

    
nico 31.12.2011 17:26
quelle
0

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.

    
ranksrejoined 31.12.2011 17:26
quelle
0

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.

    
Max 26.02.2014 13:07
quelle
0
%Vor%     
SATYA PRAKASH NANDY 09.07.2017 12:10
quelle

Tags und Links