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
    if(isUserLoggedIn($mysqli) === FALSE) {
    	header('Location: login.php');
    	exit;
    }


    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
    if(isUserLoggedIn($mysqli) === TRUE) {
        header('Location: dienstplan.php');
        exit;
    }


    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
    if(isUserLoggedIn($mysqli) === FALSE) {
        // ich gehe davon aus, dass session_start() schon aufgerufen wurde
        $_SESSION['page_after_login'] = 'login.php'; // order "page_to_redirect" oder was immer du möchstest
    
    
    
    
        header('Location: login.php');
        exit;
    }


    in login, bei erfolgreichem Login:

  • Hallo,


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


    Du schreibst folgendes


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


    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
    if(isUserLoggedIn($mysqli) === FALSE) {
    
        $_SESSION['page_after_login'] = $_SERVER['REQUEST_URI'];
    
    
    
    
        header('Location: login.php');
        exit;
    }


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

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!