Camping_RIDER: Userberechtigung

Beitrag lesen

Aloha ;)

Hab es jetzt mal so gemacht, scheint zu gehen:

if(isUserLoggedIn($mysqli) === FALSE) {
	header('Location: login');
} 

if ($user_type == 'administrator') {
	header('Location: index');
}

Ja, geht auch. Weil es logisch korrekt und so ist, dass wenn alles richtig läuft nie die zweite Bedingung erfüllt ist, wenn die erste Bedingung erfüllt war.

Es gibt aber einen Grund, warum dir hier alle zu else-if raten.
A: Performancegründe. Bei deiner Variante werden immer zwei Bedingungen geprüft. Mag unbedeutend erscheinen, aber wenn du deine If-Abfragen jedes mal so unperformant gestaltest und dein System eine entsprechende Größe erreicht, wirst dus merken.
B: Guter Stil und vorausschauendes Programmieren. In diesem Fall ist die Logik noch klar, so dass das Ergebnis logisch einfach abschätzbar ist. Aber lass Zeit ins Land gehen und du änderst u.U. die Bedingungen, bzw. die Aktionen, die im Fall des Eintretens einer der Bedingungen geschehen. Dann kommts zu Fehlern, wenn du vorher nicht bedacht hast, dass das Verhalten der ersten Abfrage durchaus mit der zweiten zusammenfällt.

Also entweder solltest du, wie angeraten, else-if benutzen, oder, damit wenigstens (auch später noch) jederzeit klar ist, dass das zusammengehört und voneinander abhängt, gleich alles in ein if packen. Soll heißen entweder:

if(isUserLoggedIn($mysqli) === FALSE) {
	header('Location: login');
} elseif ($user_type == 'administrator') {
	header('Location: index');
}

(Ich habe hier aus Gründen der Lesbarkeit die Kurzschreibweise elseif benutzt, die in PHP möglich, in anderen Sprachen aber nicht immer möglich ist)

oder:

if(isUserLoggedIn($mysqli) === FALSE OR $user_type == 'administrator') {
	header('Location: login');
}

Performancetechnisch ist - auch wenn man das nicht gleich sieht - beides besser als deine Variante, da auch im zweiten Fall PHP (imho) bei OR die Prüfung schon beendet, wenn die erste Bedingung true ergibt, nicht aber wenn die beiden if vollkommen unabhängig voneinander sind...

Grüße,

RIDER

--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar meist Mittwochs ab 21 Uhr im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de). # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
0 111

Userberechtigung

Jnnbo
  • php
  1. 0
    Matthias Apsel
  2. 0
    Sven Rautenberg
    1. 0
      Jnnbo
      1. 1
        Sven Rautenberg
        1. 0
          Jnnbo
          1. 0
            Sven Rautenberg
      2. 0
        Jörg Reinholz
        1. 0
          Jnnbo
          1. 3
            Jörg Reinholz
            1. 0

              THX aber ...

              Jörg Reinholz
  3. 0
    Jörg Reinholz
    1. 0
      Jnnbo
      1. 1
        Camping_RIDER
        1. 0
          Jnnbo
          1. 0
            robertroth
            1. 0
              Jnnbo
              1. 0
                robertroth
            2. 0
              Camping_RIDER
          2. 0
            Camping_RIDER
        2. 0
          Sven Rautenberg
          1. 0
            Camping_RIDER
            1. 0
              Sven Rautenberg
              1. 0
                Camping_RIDER
        3. 0

          Frage zu IF / ELSEIF

          Jnnbo
          1. 1
            dedlfix
            1. 0
              Tabellenkalk
              1. 0
                dedlfix
          2. 0
            Camping_RIDER
            1. 0
              Jnnbo
              1. 1
                Camping_RIDER
                1. 0
                  Jnnbo
              2. 0
                MudGuard
                1. 0

                  Ich mach das nicht beruflich!

                  Jnnbo
                  1. 0
                    Jörg Reinholz
              3. 0
                Jörg Reinholz
            2. 0

              Anmerkung / Fehler

              Camping_RIDER
              • php
              • zur info
              1. 0
                Jnnbo
                1. 0
                  Camping_RIDER
                  • menschelei
                  • php
                  • zur info
  4. 0
    robertroth
    1. 0
      Jnnbo
      1. 1
        robertroth
        1. 0
          Jnnbo
          1. 3
            Sven Rautenberg
        2. 0
          Camping_RIDER
          1. 0
            Jnnbo
            1. 0
              Camping_RIDER
            2. 0
              Auge
              • https
              1. -1
                Jnnbo
                1. 1
                  Auge
                  • https
                  • meinung
                  1. 0
                    Jnnbo
                    1. 1
                      Der Martin
                      1. 0
                        Tabellenkalk
                        • meinung
                      2. 1
                        robertroth
                        1. 1
                          Der Martin
              2. 0
                Camping_RIDER
                1. 0
                  Auge
                  1. 0
                    Camping_RIDER
      2. 1
        Der Martin
        • https
        • php
        1. 0
          Sven Rautenberg
          1. 1
            Der Martin
        2. 1
          robertroth
          1. 0
            Camping_RIDER
          2. 1
            Der Martin
            1. 0
              robertroth
    2. 0
      Camping_RIDER
      1. -1
        robertroth
        1. 0
          Jnnbo
          1. 1
            robertroth
        2. 0
          Sven Rautenberg
          1. 0
            robertroth
          2. 0
            robertroth
            1. 0
              Sven Rautenberg
              1. 0
                Sven Rautenberg
                1. 0
                  robertroth
                  • https
                  1. 0
                    Sven Rautenberg
          3. 0
            MudGuard
        3. 0
          Camping_RIDER
        4. 0

          Bewertung

          robertroth
          • menschelei
          • zu diesem forum
      2. 0
        Jörg Reinholz
        1. 0
          Sven Rautenberg
          1. 0
            Jörg Reinholz
        2. 0
          Camping_RIDER
  5. 1

    Meine Meinung zu dieser Diskussion

    Jnnbo
    • zu diesem forum
    1. 0

      Meine Meinung zu der Diskussion

      robertroth
      1. 0
        Jnnbo
        1. 1
          Tabellenkalk
          1. -1
            Jnnbo
            1. 1

              Professionelles Arbeiten

              Camping_RIDER
            2. 1
              Jörg Reinholz
              1. 0
                Jnnbo
                1. 1
                  Jörg Reinholz
    2. 4

      Meine Meinung zu der Diskussion

      Camping_RIDER
      • meinung
      • zu diesem forum
  6. -1
    Jörg Reinholz
    1. 0
      Camping_RIDER
      1. 0
        Jörg Reinholz
        1. 0
          Camping_RIDER
          • meinung
          • zu diesem forum
          1. 1
            Jörg Reinholz
            1. 0
              Camping_RIDER
  7. 0

    So, seid ihr damit nun zufrieden?

    Jnnbo
    1. 0
      Jörg Reinholz
      1. 0
        Jnnbo
        1. 0
          Jörg Reinholz
          1. 0

            Links

            Camping_RIDER
            • meinung
            • menschelei
    2. 3
      dedlfix
      1. 0
        Jnnbo
        1. 2
          Jörg Reinholz
          1. 0
            Jnnbo
            1. 0
              Jörg Reinholz
              1. 0
                Tabellenkalk
        2. 0
          dedlfix