Rechte in Session speichern

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

  • Rechte in Session speichern

    Hallo,

    bin neu hier und bräuchte mal hilfe =)

    ich habe diesen Workshop gemacht und dabei das Script von mySQL auf mySQLi umgeschrieben.

    Es klappt auch fast alles.
    Das einzigste Problem, das ich momentan habe ist, das die Rechte nicht richtig in der Session stehen.

    Ich bekomme auch keine Fehlermeldung oder so, aber wenn ich mir die Rechte per Echo Ausgeben lasse aus der Session steht da nur: Array

    Function getRights:

    PHP-Code:
        // liefert die Rechte eines Users ..
        
    function getRights()
        {
            
    $db = new mysqli("localhost""******""******""******");

        if (
    mysqli_connect_errno()) {
          
    printf("Verbindung fehlgeschlagen: %s\n"mysqli_connect_error());
          exit();
        }
            
    $rights = array();
            
    // .. indem die Rechte eines User aus der Datenbank ausgewählt werden..
            
    if(isset($_SESSION['UserID'])){
                
    $befehl $db->query
                
    ("SELECT
                                Recht
                        FROM
                                user_rechte
                        WHERE
                                UserID = '"
    .$_SESSION['UserID']."'
                       "
    );

                
    $rights = array();
                
    // .. und als array zurückgegeben werden
                
    while($resultat $befehl->fetch_array(MYSQLI_ASSOC)){
                      
    $rights[] = $resultat['Recht'];
                }

            }
            return 
    $rights;
        } 
    Das Speichern der Rechte passiert hier beim Login:

    PHP-Code:
            $_SESSION['UserID'] = $ID;
            
    $_SESSION['Nickname'] = $resultat['Nickname'];
            
    // Rechte in der Session speichern
            
    $_SESSION['Rechte'] = getRights(); 
    Nickname & ID werden in der Session gespeichert nur die Rechte nicht.

    Auf der Startseite habe ich mal mit
    PHP-Code:
    <?php echo $_SESSION['UserID']; ?><br />
    <?php echo $_SESSION['Rechte']; ?>
    die sachen ausgelesen. UserID stimmt und bei Rechte steht Array.
    Ich steh da momentan echt auf dem Schlauch.

    Bin jetzt auch nicht grade der Profi und habe schon einige stunden jetzt damit verbracht, bekomm es aber nicht hin.

    Wo liegt der Fehler, das die Rechte nicht in der Session gespeichert wird ?

    Vielen Dank schonmal =)

  • #2
    Man sollte Rechte nicht in Session lagern!

    Warum?
    Wenn sich ein User daneben benimmt, kannst du ihn nicht kicken, solange er eine valide Session hat.
    Wir werden alle sterben

    Kommentar


    • #3
      Ah ok.
      Das wird ja so in diesem Workshop gemacht.

      Es soll ja erstmal nur für den Adminbereich sein.
      Dann sollte ich das besser so machen, das wenn man in den Adminbereich kommt, sich nochmal einloggen muss und dort prüfe ich dann die Rechte ob der User rein darf oder nicht.

      Wäre das so besser ?

      Kommentar


      • #4
        Zitat von Zokora Beitrag anzeigen
        Ich bekomme auch keine Fehlermeldung oder so, aber wenn ich mir die Rechte per Echo Ausgeben lasse aus der Session steht da nur: Array
        Das liegt daran, dass es ein Array ist - schließlich gibt die Funktion getRights ein solches zurück.

        Du kannst Arrays nicht direkt per echo ausgeben - da bekommst du nur genau das, was du beobachtet hast, das Wort „Array“.
        Nutze print_r/var_dump, wenn du dir den Inhalt zu Testzwecken anschauen willst.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Wozu zwei Logins?

          Wozu willst du Daten, die bereits in der Datenbank vorhanden sind, in die Session kopieren? Frag die Information doch einfach aus der Datenbank ab, wenn du sie brauchst. Eine Session sollte nicht als Datenbank-Cache missbraucht werden.

          Kommentar


          • #6
            Hey ich habe doch nur diesen Workshop gemacht.
            Es hat ja niemand gesagt das ich das so Produktiv einsetzten möchte.

            PHP ist eine relativ neue Welt für mich.
            Bin natürlich über jeden Tipp und jede Hilfestellung dankbar.

            Kommentar


            • #7
              var_dump($_SESSION) statt echo!

              Kommentar

              Lädt...
              X