Ankündigung

Einklappen
Keine Ankündigung bisher.

Session-ID abfragen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session-ID abfragen

    Hallo,

    ich arbeite an einem Login-Skript mit Session-IDs, die per URL übergeben werden. Das meiste klappt soweit, nur an einer Stelle habe ich wohl etwas nicht kapiert:

    Ich möchte, dass die SID nur an die URL gehängt wird, wenn auch wirklich eine Session vorliegt, die der User durch Einloggen gestartet hat. Um diese Bedingung zu überprüfen, brauche ich im Code aber erst session_start(), um dann z.B.
    Code:
    if(isset($_SESSION['angemeldet'])) {...}
    prüfen.
    Dieses session_start() erstellt aber gleichzeitig eine neue SID, falls es noch keine gibt und die wird dann an alle URLs gehängt, obwohl gar keine "richtige" (durch User-Login gestartete) Session vorliegt.

    Wie kann man also überprüfen, ob eine Session-ID vorliegt, ohne dass durch session_start() eine angelegt wird, wenn es vorher keine gab?

    Danke und Grüße,

    Kai

    P.S.: Bitte keine Manual- und Tutorial-Hinweise, das hab ich alles schon hinter mir.


  • #2
    1. Um mit Sessions arbeiten zu können (sprich prüfen ob eine bestimme Variable gesetzt wurde) muss mit session_start() gearbeitet werden.

    2. Richtige/Falsche Session? HALLO?!

    3. Das mit dem Anhängen: es gibt da ne Möglichkeit, ich finde se zwar unschön und error_reporting wird se dir auch anzeigen, aber du kannst sobald der User sich einloggt, den Namen der Session und die SessionId in eine Variable packen, wenn nicht einloggen, nichts reinschreiben.
    In deiner Linkausgabe die Variable einfach anhängen. der User eingeloggt ist

    4. Das Anhängen an die Url ist auch nicht immer notwendig (wenn Cookie akzeptiert wurde). Kannst du auch mit der oben erwähnten Varaible machen.
    Diese Erweiterung ist EXPERIMENTELL.
    [...]
    Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..

    Kommentar


    • #3
      Erstmal danke für die Antwort!

      Spräche denn etwas dagegen, gleich nach dem Session-Start den Login-Status zu überprüfen und die Session bei negativem Ergebnis wieder zu löschen? Habe folgenden Code probiert:

      Code:
      	session_start();
      	if (!isset($_SESSION['angemeldet']) || !$_SESSION['angemeldet']) 
      	{
      		session_destroy();
      	}
      Funktioniert aber nicht.

      Kommentar


      • #4
        Nein, spricht meines Wissens nichts dagegen,weiß nur nicht wie error_reporting das gefällt.

        Allerdings sollte das reichen:
        PHP-Code:
        <?php
         session_start
        ();
          if (!isset(
        $_SESSION['angemeldet']) session_destroy();
        ?>
        Diese Erweiterung ist EXPERIMENTELL.
        [...]
        Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..

        Kommentar


        • #5
          nein, es spricht nichts dagegen, nach dem session_start() gleich zu überprüfen ob die Variable vorkommt. so mal allgemein.

          wo liegt denn jetzt ganz genau dein problem? kann das irgendwie nicht rauslesen.

          In deinem stück php sehe ich zwar keinen Fehler, jedoch würde ich nicht session_destroy verwenden sondern $_SESSION['angemeldet'] = false; (da du ja oben auch überprüfst ob es vorhanden oder true ist, funktioniert es genausogut)
          http://forum.developers-guide.net

          Klick dich REICH:
          http://www.klick-reich.de/index2.php...lden&ref=Niedi

          Kommentar


          • #6
            Zitat von andy
            Nein, spricht meines Wissens nichts dagegen,weiß nur nicht wie error_reporting das gefällt.
            Dann verstehe ich nicht, warum er ein paar Zeilen weiter beim Link
            Code:
            Link
            wieder eine SID angibt. Die sollte doch auch gelöscht sein, oder nicht?

            Kommentar


            • #7
              Zitat von Niedi
              wo liegt denn jetzt ganz genau dein problem? kann das irgendwie nicht rauslesen.
              Mein Problem ist, dass trotz session_destroy() die SID erhalten bleibt und ein paar Zeilen später auch an den Link angehängt wird, obwohl ich das nicht will.

              Kommentar


              • #8
                Das Interessante ist: Wenn ich meinen Browser Cookies akzeptieren lasse, funktioniert alles und die SID wird nicht an den Link angehängt. Versteht ihr das?

                Kommentar


                • #9
                  Also, weiß ja nicht wie dein Sever eingestellt ist, bei mir bleibt nach session_destroy() der Anhang an die Url leer.

                  Wenn du jetzt genaueres hören willst, muss du deine Config zeigen.
                  Diese Erweiterung ist EXPERIMENTELL.
                  [...]
                  Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..

                  Kommentar


                  • #10
                    1&1-Konfiguration

                    http://faq.1und1.de/hosting/scripte_...ken/php/6.html

                    Kommentar

                    Lädt...
                    X