Nach Login zurück auf Ursprungsseite leiten

  • Schönen guten Abend,


    ich kenne mich mit PHP noch nicht wirklich gut aus. Einige Sachen habe ich durch Youtube Tutorials gelernt. Deshalb hoffe ich auf eure Hilfe, da ich vor einem vielleicht doch etwas größerem Problem stehe (zumindest für mich).


    Auf meiner Seite gibt es ein kleines Login mit ein paar Passwortgeschützten Seiten. Der Aufbau meiner Logindatei ist recht übersichtlich



    Im Titel erwähnte ich bereits, dass ich nach dem Login auf die Seite zurück gehen möchte von dieser ist gekommen bin. z.B. befinde ich mit auf der Seite dienstplan.php hier gibt es folgenden Code:


    PHP
    1. if(isUserLoggedIn($mysqli) === FALSE) {
    2. header('Location: login.php');
    3. exit;
    4. }


    Wenn ich also nicht eingeloggt bin, komme ich auf die login.php. Nach dem Login möchte ich gerne wieder auf die dienstplan.php zurückgeleitet werden. Ist dieses irgendwie machbar?

  • also du möchtest nach erfolgreichem oder nach fehlgeschlagenem einloggen auf dienstplan.php weitergeleitet werden?


    Wenn bei fehlgeschlagenem musst du die Location doch nur auf dienstplan.php ändern


    Da ich mich nicht so gut mit php auskenne kann ich dir auch nicht großartig helfen aber wenn es andersrum der Fall sein soll dann versuch doch mal:


    PHP
    1. if(isUserLoggedIn($mysqli) === TRUE) {
    2. header('Location: dienstplan.php');
    3. exit;
    4. }


    sonst würde ich das halt mit JavaScript lösen


  • Das einfachste wäre meiner Meinung nach eine $_SESSION, in der Du eine optionale URL hinterlegst.


    In dienstplan.php:

    PHP
    1. if(isUserLoggedIn($mysqli) === FALSE) {
    2. // ich gehe davon aus, dass session_start() schon aufgerufen wurde
    3. $_SESSION['page_after_login'] = 'login.php'; // order "page_to_redirect" oder was immer du möchstest
    4. header('Location: login.php');
    5. exit;
    6. }


    in login, bei erfolgreichem Login:

  • Würde das ähnlich wie cotton lösen, allerdings hätte ich es einfach als URL-GEt-Parameter übergeben ^^


    Das dürfte wahrscheinlichauch das einfachste sein..


    Grüße

  • Hallo,


    vielen Dank für eure Hilfe. Eine Frage habe ich noch cottton


    Du schreibst folgendes


    Code
    1. if(isUserLoggedIn($mysqli) === FALSE) {
    2. // ich gehe davon aus, dass session_start() schon aufgerufen wurde
    3. $_SESSION['page_after_login'] = 'login.php'; // order "page_to_redirect" oder was immer du möchstest
    4. header('Location: login.php');
    5. exit;
    6. }


    Ich gehe davon aus, du meinst bei $_SESSION['page_after_login'] nicht login.php sondern dienstplan.php, dass ich direkt nach dem Login auf die Seite geleitet werde, richtig? Funktioniert auch. Aber ist natürlich umständlich jede Seite Händisch anzupassen. Daher wäre doch bestimmt auch folgendes möglich?


    PHP
    1. if(isUserLoggedIn($mysqli) === FALSE) {
    2. $_SESSION['page_after_login'] = $_SERVER['REQUEST_URI'];
    3. header('Location: login.php');
    4. exit;
    5. }


    Denn in $_SERVER['REQUEST_URI'] steht doch alles, was nach dem / kommt richtig?