Session Problem

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

  • #16
    Dann such im Forum. Das Thema ist nicht neu. Und wenn du gar keinen Plan hast, dann gibts hier auch ein fertiges "Usermanagement"

    Kommentar


    • #17
      Hab das mit dem Login nun gelöst, nur ein Problem gibt es noch. In meiner Tabelle gibt es auch eine Spalte namens "user_level". Ich logge mich also ein und $_SESSION['username'] ist gleich dem Benutzernamen, den man zum einloggen benutzt hat. Diesen kann ich problemlos ausgeben. Nun will ich mit genau diesem Wert in meiner Tabelle "nachschauen" lassen, welchen Wert user_level denn für diesen User entält, um ihm nur bestimmte Sachen anzeigen zu lassen. Und genau das klappt nicht, am Ende ist nämlich $user_level leer, aber warum?
      Eine Fehlermeldung gibt es nicht.

      PHP-Code:
           // USER-LEVEL
           
      require('assets/system/mysql.inc.php');

           
      $result mysqli_query($connectionid"SELECT user_level FROM user WHERE username='" $_SESSION['username'] . "'");
           while (
      $zeile mysqli_fetch_array($result)) {
                  
      $user_level $zeile['user_level'];
           } 

      Kommentar


      • #18
        1. error_reporting()
        2. mysql_error() abfangen

        Müssen wir alles wiederholen, was schon im Regel-Thread steht.

        Debuggen gehört zum Programmieren, nicht nur Copy+Paste. Zum Glück ist morgen Montag...

        BTW: wozu ne while-schleife. Wie viele Benutzer erwartest du mit dem selben Nutzernamen?

        Kommentar


        • #19
          1. + 2. erledigt, passiert nichts.
          Wozu ne while-schleife? Hm.. ka xD *rausnehm*

          Kommentar


          • #20
            testausgaben? aktueller code?

            Kommentar


            • #21
              Code ist noch aktuell. $_SESSION['username'] lässt sich mit echo ausgeben ausgeben, $zeile['user_level'] schon nicht mehr.

              Kommentar


              • #22
                Grad hast du gesagt du hast die Schleife rausgenommen und jetzt ist der Code angeblich aktuell, was denn nun?
                Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                Kommentar


                • #23
                  Dann hast du die regeln also immer noch nicht befolgt??

                  PHP-Code:
                  $sql "SELECT user_level level FROM user WHERE username='" $_SESSION['username'] . "'";
                  $result mysqli_query($connectionid,$sql) or die(mysqli_error())
                  $user mysqli_fetch_array($result);
                  print_r($user); print_r($_SESSION); 
                  ergibt was?

                  Kommentar


                  • #24
                    Doch, hab ich oO

                    print_r($_SESSION) gibt
                    Array ( [zugang] => 1 [username] => Username ) aus,

                    print_r($user)
                    nichts.

                    Es steht aber definitiv ein user_level bei dem Testuser in der Datenbank, ich seh's ja in phpmyadmin.

                    Kommentar


                    • #25
                      Wenn print_r($user) nicht ausgibt, dann hast du unsere Regeln immer noch nicht befolgt. Error_reporting auf E_ALL setzen. Wenn ich das jetzt noch mal sagen muss, dann mach ich diesen Thread dicht!

                      ersetz "user_level level" mal durch "*" (jeweils ohne "")
                      lösch die where-bedingung mal raus.

                      Was passiert jetzt?

                      Kommentar


                      • #26
                        Error_reporting mit $_SESSION['username']

                        Notice: Undefined variable: _SESSION in /home/khexcurs/public_html/acp/home.php on line 6

                        print_r($user) => nichts


                        Error_reporting ohne $_SESSION['username']
                        Fehler: keiner

                        print_r($user) => Array ( [0] => Administrator [user_level] => Administrator )

                        Kommentar


                        • #27
                          *lol* du pappnase.

                          session_start();

                          Das hättest du viel einfacher haben können!

                          und

                          Kommentar


                          • #28
                            session_start(); ist doch da!

                            PHP-Code:
                            <?php
                                 error_reporting
                            (E_ALL);

                                 
                            // SESSION
                                 
                            session_start();
                                 if (!isset(
                            $_SESSION['zugang']) || !$_SESSION['zugang']) {
                                     
                            header('Location: index.php');
                                     exit;
                                 }

                                 if (
                            $_GET['action'] == "logout") {
                                     
                            session_destroy();
                                     
                            $logout "<h1>Logged out!</h1>\n Thank you for logging out. You will be redirected to the login-form in 6 seconds.\n"."<meta http-equiv=\"refresh\" content=\"6; URL=index.php\" />";
                                 } else 
                            $logout "";

                                 
                            // USER-LEVEL
                                 
                            require('assets/system/mysql.inc.php');

                                 
                            $sql "SELECT user_level FROM user WHERE username='" $_SESSION['username'] . "'";
                                 
                            $result mysqli_query($connectionid,$sql) or die(mysqli_error());
                                 
                            $user_level mysqli_fetch_array($result);
                            ?>

                            Kommentar


                            • #29
                              dann bau mal die beiden print_r()s wieder ein und poste nochmal die komplette ausgabe.

                              Kommentar


                              • #30
                                Jetzt enthalten die Variablen auf einmal die richtigen Werte oO Ich hab nichts verändert nach dem letzten Post xD"

                                Aber

                                PHP-Code:
                                <?php
                                      
                                if($user_level == "Administrator") {
                                         echo(
                                "Du bist ein Administrator!");
                                ?>
                                funkt trotzdem nicht oO

                                Kommentar

                                Lädt...
                                X