Gibt es eine Möglichkeit ist Seiten in PHP zu umleiten, ohne header('Location:'.'');
becouse es immer wieder Probleme mit Sitzungen machen (: Can not Sitzungscache senden - Header bereits gesendet)Redirect Seiten in PHP
Antwort
Es gibt andere Optionen zum Umleiten in HTML (wie mit META
oder JavaScript). Aber es ist keine richtige HTTP-Umleitung.
Also anstatt nach einer Alternative zu suchen, sollten Sie besser die HTTP-Variante arbeiten. In diesem Fall können Sie den HTTP-Header nur ändern, wenn er noch nicht gesendet wurde. Und das passiert immer dann, wenn Sie etwas ausgeben (entweder explizit oder implizit). Sie können dies verhindern, indem die Ausgabe Pufferung der Ausgangssteuerung des ob_start
vor jeder Ausgang geschehen war nennen, möglicherweise direkt am Anfang der Skriptdatei anzubieten:
<?php
ob_start();
// rest of the file
Vergewissern Sie sich, dass es nicht vor der Öffnung PHP-Tag <?php
wie leere Zeilen oder eine UTF BOM.
ich bin bereits mit ob_start, aber ich weiß nicht, wo genau es zu verwenden – Sudantha
Oder besser noch, senden Sie einfach den Header vor alles ausgeben. Es ist nicht so, als würde der Benutzer es trotzdem sehen. Die Verwendung der Pufferung für die Ausgabe fühlt sich an wie ein schmutziger Hack und verdeckt einen Mangel an Struktur. – tdammers
@ Sudantha: Rufen Sie 'ob_start' vor allem anderen auf. Und stellen Sie sicher, dass es vor dem Öffnen keine Php' gibt. Sehen Sie sich die in der Fehlermeldung angegebene Position an, um zu sehen, wo die Ausgabe gestartet wurde, und beheben Sie sie dort. – Gumbo
Nein, ohne header
haben Sie kein Glück (Sie könnten Apache mod_rewrite verwenden, aber das würde passieren, bevor Ihre Datei sogar berührt wird).
Warum nicht ob_start
(Ausgabepufferung) verwenden. Einen Schnellstart finden Sie unter PHP manual.
Viel Glück
Wie vor dem Gebrauch ob_start() rechts an der Spitze Ihrer Anwendungsseite erwähnt. Implementieren Sie nicht die zweifelhaften Javascript-Funktionen, die in anderen Antworten erwähnt werden, ich würde sagen, dass sie extrem schlecht sind. PHP gibt es schon eine Weile, also ist es getestet und funktioniert, Sie haben möglicherweise einen fehlerhaften Leerraum oder geben etwas an den Browser aus und versuchen dann, Header-Informationen zu ändern, die Sie nicht tun können. Also:
Verwendung ob_start Prüfung für fehlerhaften Leerraum und löschen Sie es
- 1. htaccess redirect vs php redirect
- 2. bietet Login-Check, Seite Redirect auf allen Seiten in PHP
- 3. Redirect von Subdomains Seiten in global.asax
- 4. Redirect URL in PHP
- 5. htaccess Redirect alle Seiten auf einzelne Seite
- 6. Redirect 301 spezifische Seite neben allen Seiten
- 7. Redirect mit Timer in PHP?
- 8. .htaccess php redirect zwischen PHP
- 9. PHP vs Htaccess Redirect
- 10. PHP Redirect Loop Problem
- 11. PHP - Redirect nur einmal
- 12. PHP redirect header
- 13. PHP Session Expire Redirect
- 14. PHP: redirect "header()" funktioniert nicht
- 15. PHP Redirect mit Beiträgen
- 16. PHP Redirect zu localhost
- 17. php header herunterladen redirect
- 18. Redirect Schleifenfehler Entfernen .php
- 19. Paypal - Redirect mit PHP?
- 20. PHP Redirect Pause
- 21. PHP Redirect mit GET
- 22. PDF-Seiten in PHP erstellen
- 23. Menü-Anzeige in PHP-Seiten
- 24. Aufräumen PHP/HTML-Seiten
- 25. PHP Seiten funktionieren nicht
- 26. PHP Redirect Benutzer, wenn nicht angemeldet
- 27. PHP Redirect mit benutzerdefinierten Kopfzeilen
- 28. PHP Redirect ohne Änderung Headers
- 29. PHP-Header Redirect funktioniert nicht
- 30. PHP Redirect wird nicht ausgeführt?
Es ist nie ein Problem mit Sitzungen machen. Der HTTP-Header "Location" ist der einzig richtige Weg. Obwohl du deine lahme Antwort trotzdem bekommst, nur weil diese Seite –
@Col saugt. Schrapnell Das ist so wahr. Unerfahrene Programmierer neigen dazu, immer die Symptome und nicht die Ursache loszuwerden. Wir müssen ihnen beibringen, das zu klären. – aefxx
@Col. Schrapnell Sie besuchen diese Seite ziemlich oft für jemanden mit einem starken Hass darauf. @ Sudantha Sie haben ein paar ziemlich genaue Antworten zur Auswahl. –