Auf andere Seesions zugreifen?

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

  • Auf andere Seesions zugreifen?

    Hallo!
    Bin gerad neu hier im Forum, und hab gleich mal ne Frage,
    ist es möglich in PHP, auf Variabeln anderer Sessions zuzugreifen, wenn die Session-ID bekannt ist? Gibt es dafür eine saubere Lösung, und wäre eine Ansatz, die Session-Dateien auf dem Server manuell auszulesen?

    Vielen Dank im Vorraus,
    MFG
    Joshy

  • #2
    ja solange die session id bekannt ist und auf dem server leigt, wo du dein php laufen hast, und die entsprechenden rechte serverseitig hast ist es möglich.

    aber wozu willst die session manuell auslesen? wenn du die sid einließt bevor du die session startest, kommst du über die session sowieso an die daten ran...

    aber was willste damit bezwecken? erzähl mal genauer

    Kommentar


    • #3
      Hallo,

      dass mit den Session-Daten manuell auslesen, war nur so ne alternative Idee, falls es nicht anders gehen sollte,
      und zwar hab ich vor folgendes Szenario zu realisieren.
      Es gibt bspw. zwei User, der eine ist Master mit gewissen Rechten und kann selber Rechte verteilen, und der andere hat keine Rechte eine gewisse Aktion auszuführen. Nun soll er zur Laufzeit beim Master anfragen können, ob er die Rechte bekommen kann, diese aktion auszuführen. Der Master kann dann, dass dann verweigern oder zulassen. Je nachdem, was der Master macht, soll in der Session des Rechteanfragers dann Flag gesetzt werden, dass er die Rechte hat bzw. nicht. Wie gesagt, sollte nur temporär sein, sonst wäre eine Datenbanklösung ja die bessere.
      Aber wie kann ich denn auf Varibalen anderer Session zugreifen, mit $_SESSION[] kann ich ja nur auf die eigenen Session-Variabeln des jeweiligen Users zugreifen? Hab sonst nichts anderes gefunden.

      MFG
      Jochen

      Kommentar


      • #4
        hm... vielleicht wäre es da schon sinnvoller eine DB zu verwenden, beim Login ein
        DELETE FROM zusatz_rechte WHERE user_id = X;
        und bei einer Anfrage ein
        INSERT INTO zusatz_rechte (user, recht, okay) VALUES (X, "bla", 0);
        dann beim Admin ein
        SELECT user, recht FROM zusatz_rechte WHERE okay = 0;
        anzeige, wenn okay
        UPDATE zusatz_rechte SET okay = 1 WHERE user = X AND recht = "bla";

        oder sowas~

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          also ich würd auch über eine db gehen
          und die zusatzrechte so an den user binden, das sie beim nächsten login gelöscht werden.

          dies könnte man über die sid regeln oder über die letzte loginzeit, oder beides

          Kommentar


          • #6
            Danke erstmal für die Antworten, eine DB Lösung scheint wohl doch die bessere zu sein,
            nur interessehalber, wie sähe quelltextmäßig das Zugreifen von Variabeln anderer Sessions aus?
            MFG
            Jochen

            Kommentar


            • #7
              Rein von der Theorie her kannst du Sessions in der Datenbank speichern
              Code:
              sid | session
              dann kannst du ein
              Code:
              SELECT session FROM tabelle WHERE sid = "XYZ"
              machen
              und dann ein
              PHP-Code:
              $das_session_array unserialize($row['session']); 
              ob das beim file-based Session-Save-Handler genauso einfach geht weiß ich aber nicht, ich verwende das Teil praktisch gar nicht *zuck*

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Ja der Standard-Handler macht das alles selbst, inklusive un-/serialize().

                Kommentar

                Lädt...
                X