timon peters: PHP - zurückleiten

Hallo erstmal.

Ich habe da ein problem bei meiner seite. Wie finde ich mit PHP die Seite herraus, von der aus eine Seite aufgerufen wurde, um den Besucher weider zurück zu leiten? und gibt es probleme mit dem header, wenn man gleichzeitig ein session-cookie setzt und auf eine andere seite weiterleitet?

Ich möchte nähmlich für meine Webseite eine login-seite erstellen, die aber nicht angezeigt wird, sondern mit der funktion header() zurück leitet. deshalb brauche ich die url der aufrufenden seite.

könnte mir da jemand helfen? ich habe es nähmlich nirgendwo gefunden, auch nicht in meinem 1000 - seitigem buch über php.

danke

timon

  1. Hell-O!

    Wie finde ich mit PHP die Seite herraus, von der aus eine Seite aufgerufen wurde, um den Besucher weider zurück zu leiten?

    Du kannst den Referrer auswerten (zu finden in $_SERVER['HTTP_REFERER') und hoffen, dass dort die gesuchte Information enthalten ist. Allerdings ist der Referrer ziemlich unzuverlässig, da seine Übermittlung unterdrückt werden kann.

    gibt es probleme mit dem header, wenn man gleichzeitig ein session-cookie setzt und auf eine andere seite weiterleitet?

    Grundsätzlich nicht, wenn du die Weiterleitung nicht im Header unterbringst, sondern im HTML. Aber wenn du Sessions nutzen willst, kannst du doch die zuvor aufgerufene Seite in dieser Session speichern und in der Folgeseite abrufen, das ist allemal sicherer als die Referrerprüfung.

    Ich möchte nähmlich für meine Webseite eine login-seite erstellen, die aber nicht angezeigt wird, sondern mit der funktion header() zurück leitet.

    Das verstehe ich nicht. Wie soll man sich einloggen können, wenn man die Login-Seite nicht zu sehen bekommt?

    Siechfred

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)
    Siechfreds Tagebuch || Falle Aufteilungsbescheid || RT 221 Erfurt-Altstadt i.V.
  2. echo $begrüßung;

    Ich habe da ein problem bei meiner seite. Wie finde ich mit PHP die Seite herraus, von der aus eine Seite aufgerufen wurde, um den Besucher weider zurück zu leiten?

    Es gibt keine verlässliche Methode. Du suchst den Referrer, welcher im $_SERVER-Array zu finden ist. Diese Angabe schickt jedoch der Client und ist nicht in allen Fällen vorhanden oder ungefälscht.
    Wenn du deine Programm-Logik nicht so umstellen kannst, dass die Ausgangsseite irrelevant wird, könntest du versuchen, eine Session zu eröffnen und da selbst die jeweils zuletzt aufgerufene Seite zu merken.

    und gibt es probleme mit dem header, wenn man gleichzeitig ein session-cookie setzt und auf eine andere seite weiterleitet?

    Es sollte keine geben. Beides sind unterschiedliche Header-Zeilen, die sich nicht ins Gehege kommen. Was allerdings die Browser draus machen, ...

    Ich möchte nähmlich für meine Webseite eine login-seite erstellen, die aber nicht angezeigt wird, sondern mit der funktion header() zurück leitet. deshalb brauche ich die url der aufrufenden seite.

    Warum rufst du dann nicht gleich die richtige Zielseite auf und machst die Prüfung, die du auf der Login-Seite vornimmst, dort? Du kannst ja im Fehlerfall zu einer Fehlerseite leiten, wenn du das unbedingt als nötig ansiehst.

    echo "$verabschiedung $name";