Christian: Weiterleitung bei Login

Hallo,

ich habe ein Session-Login-System, bei dem man auf die Login Seite kommt, wenn man eine Seite aufruft und nicht angemeldet ist. Diese Überprüfung ist mit include() in jede Seite eingefügt. Nun möchte ich, dass man nach erfolgreicher Anmeldung auf die Seite weitergeleitet wird, die man versucht hat aufzurufen, ansonsten einfach auf die Startseite. Wie kann ich der durch include() eingebundenen check.php rausfinden, welche Seite versucht wurde aufzurufen, um dies per GET an die Login-Seite weiterzugeben, falls man nicht angemeldet ist?

Danke,

Christian

  1. Hallo,

    ich habe ein Session-Login-System,[..]

    Bei Sessions verwende ich Cookies. Jede Seite, die nur in einer Session funktionieren soll (und darf) prüft ob die Session gültig ist.

    Eine Session ist gültig, wenn der key im cookie (local) mit dem key in der DB (serverseitig) übereinstimmt.

    Wenn es ein solches Schlüsselpaar nicht gibt, sende einen redirectionheader auf die Loginseite. Ansonsten mach eine Redirection auf die Anwendung. In letzteren RedirectionHeader musst Du den Cookie einbauen, sonst ist die Session futsch.

    Viele Grüße,
    Horst

    1. Hallo,

      danke erstmal, aber entweder verstehe ich Dich nicht oder Du verstehst meine Frage nicht richtig.

      Also nochmal:

      Ich klicke zum Beispiel in meinem Verlauf auf eine meiner Seiten die ich besucht habe, bin aber nicht mehr eingeloggt (Browser geschlossen etc.)

      Diese Seite leitet mich dann auf die Login Seite weiter wo ich Benutzername und Passwort eingebe. Nachdem ich hier auf "Anmelden" klicke, möchte ich auf die Seite weitergeleitet werden, die ich ursprünglich im Verlauf angeklickt hatte.
      Dafür muss das Login-Skript aber wissen, wohin es mich weiterleiten soll. Diese Information soll es per GET von der ursprünglich angeklickten Seite bekommen. Aber wie rufe ich an dieser Stelle die eingegebene Adresse ab und speicher sie in einer Variable die ich an das Login-Skript übergeben kann?

      Danke,

      Christian

      1. hi,

        Alos entweder bindest du auf jeder Seite für die man eingeloggt sein muss und nicht eingeloggt ist ein loginfeld ein

        oder

        du speicherst die url, von der du ursprünglich kommst und auf die loginseite weitergeleitet wirst in einem get Parameter und nimmst den wieder nach dem login um dort wieder hin zu leiten

        oder

        du speicherst wenn deine session wieso nur über cookies läuft die url vorübergehend in einen cookie

        hoffe ich hab damit deine frage beantwortet

        grüße flo

        1. Hallo,

          du speicherst die url, von der du ursprünglich kommst und auf die loginseite weitergeleitet wirst in einem get Parameter und nimmst den wieder nach dem login um dort wieder hin zu leiten.

          Genau das will ich machen, aber wie? Wie bekomme ich die URL, von der ich ursprünglich komme um sie an die Login Seite zu übergeben? Wie frage ich die ab?

          Danke,

          Christian

          1. Hi,

            versuch

            $_SERVER['SCRIPT_URI'];

            oder

            $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

            grüße flo

            1. Hallo,

              danke, mit PHP_SELF funktioniert es. Nun möchte ich nur den letzten Teil, der Adresse. Das mache ich nun so:

              $uri = $_SERVER['PHP_SELF'];
              $uri = explode("/", $uri);
              $count = count($uri);
              $uri = $uri[$count-1];

              Das funktioniert einwandfrei.
              Gibt es jedoch einen eleganteren Weg, das letzte Element des arrays abzufragen?

              Danke im Voraus,

              Christian

              1. Hallo,

                und noch eine Frage:

                Ich möchte falls die Variable uri per GET übergeben wird, $uri als diese definieren, ansonsten ist $uri = overviewdesc.php.

                if (isset($_GET['uri']) && !empty($_GET['uri'])) {$uri = $_GET['uri'];} else {$uri = "overviewdesc.php";}

                Wieso funktioniert dies nicht, wenn uri übergeben wird?

                Danke im Voraus,
                Christian

                1. Hallo Christian,

                  if (isset($_GET['uri']) && !empty($_GET['uri'])) {$uri = $_GET['uri'];} else {$uri = "overviewdesc.php";}

                  Wieso funktioniert dies nicht, wenn uri übergeben wird?

                  Überprüfe mal mit var_dump() was denn genau in $_GET['uri'] bzw. $uri steht.

                  Schöne Grüße,

                  Johannes

              2. Hi,

                Gibt es jedoch einen eleganteren Weg, das letzte Element des arrays abzufragen?

                Grundsätzlich mit array_pop()

                grüße flo

                1. Hi,

                  funktioniert jetzt alles. array_pop und auch das mit der GET-Variable uri, ich hatte nur vergessen $uri auch in die formaction Adresse anzuhängen...

                  Danke nochmals,

                  Christian