happniness login

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

  • happniness login

    habe ein ähnliches problem wie Duke, doch noch keine Lösung gefunden, muss dazu sagen, das php für mich noch neuland ist.
    habe die session_helper datei in "logindata.inc.php" umbenannt und die funktion "check_user" in 4 Teile aufgeteilt:

    PHP-Code:
    function check_userh($name$pass

        
    $sql="SELECT userID 
        FROM users 
        WHERE name='"
    .$name."' AND passwort=MD5('".$pass."') AND typ='H'  
        LIMIT 1"

        
    $resultmysql_query($sql) or die(mysql_error()); 
        
        
        
        if ( 
    mysql_num_rows($result)==1
        { 
            
    $user=mysql_fetch_assoc($result); 
            return 
    $user['userID']; 
            
        } 
        else 
            return 
    false

    das soll feststellen, ob der User ein Admin ist (Typ 'H' ist adminstatus)
    von diesen funktionen gibt es 4 stück: hauptadmin, admin, lehrer, schüler

    soweit so gut, alle logins zu den gewollten bereichen gehen auch, aber es gibt ein verhehrendes internes sicherheitsproblem, wenn man als lehrer angemeldet ist und in der adressleiste die url für die adminzone eingibt, kommt man auch dahin!
    habe schon 2 wochen lang irgentwas ausprobiert, aber es will nicht klappen...
    die bedingung sieht wie folgt aus:

    PHP-Code:
    session_start();
    //include "logindata.inc.php";
    if (!logged_in()){
        echo 
    "Fehler, Sie sind nicht eingeloggt!";
        exit;
        }
        if (!
    check_userh($name,$pass) AND !check_usern($name$pass)){
        echo 
    "Fehler, keine Rechte!";
        exit;    
        }else{
         
         
                
                                 
    echo 
    ' <h2>
            <center>
            Willkommen im Adminbereich 
    und so weiter und so fort....

    das include ist deshalb als kommentar, weil sie vorher schon geladen wurde (im hauptframe, diese seite wird im teilframe ausgeführt)

    habe echt keine peilung mehr, warum das nicht geht, denn logischerweise dachte ich mir, das wenn NICHT check_userh(...) UND check_usern(..) ist, auch nicht auf die seite kommt...

    hoffe, ihr könnt mir helfen

  • #2
    haste mal n paar testausgaben gemacht? welche bedinungen sind true, welche nicht, ...

    woher hast du denn bitte $name und $pass? Sind die nicht nur beim Login vorhanden?

    ist dieser code:
    PHP-Code:
    if (!check_userh($name,$pass) AND !check_usern($name$pass)){ 
    in jeder datei des adminbereich, oder nur in der logindatei vom adminbereich enthalten?

    OffTopic:
    das include ist deshalb als kommentar, weil sie vorher schon geladen wurde (im hauptframe, diese seite wird im teilframe ausgeführt)
    du redest nicht wirklich von frames, oder?

    Kommentar


    • #3
      achso, sinnvoller wäre folgendes zu machen:

      In der DB hast du eine Spalte "group".

      in der check_user() speicherst du neben userid (oder was auch immer) noch die zugehörige Gruppe in die Session.

      und die logged_in() erweiterst du zusätzlich um einen parameter (array)$group. dann überprüfst du hier noch, ob die group aus der session in dem array $group enthalten ist. Wenn nicht, dann halt echo "Kommst hier net rein!".

      Mit Level geht das ganze ganz ähnlich. dann kannst du dir das array sogar sparen.

      Kommentar


      • #4
        keine sorge sind keine "echten" frames
        halt mit css erstellte div-container....

        naja das $name und $pass musste ich da rein hauen, weils sonst nur fehler gab!
        aber mit arrays? muss das denn sein

        die idee mit der group hatte ich ja auch, nur heisst die spalte bei mir "typ" wie schon oben beschrieben ist der inhalt "H" ein admin, und "L" ein lehrer und so weiter

        gibs keine leichtere lösung als mit arrays, hab bis jetzt immer versucht, mich davor zu drücken

        Kommentar


        • #5
          Na, da wirst du ja super zukunftsaussichten haben...

          Lies dir die paar Grunlagen noch an, dann wirds wohl gehen. Wenn du unbedingt drauf verzichten willst, dann nimm keine Gruppen, sondern Level.

          Kommentar


          • #6
            mhh wie schon gesagt, php ist neuland für mich!
            was ist level


            hast recht! werde mich wohl doch mal mit arrays geschäftigen! nach dem ganzen prüfungsstress werde ich das wohl machen

            Kommentar


            • #7
              was ist level
              das gleiche was group oder typ ist. einfach ein von dir bestimmter wert/eigenschaft/name/...

              Kommentar


              • #8
                ahso! hättest du nen vorschlag zur realition?

                Kommentar


                • #9
                  realition
                  keine ahnung, was das ist, aber meinen vorschlag habe ich hier gepostet.

                  Kommentar


                  • #10
                    sry, meinte ob du mir mal nen quellcodischen anschubs geben könntest

                    habe nämmisch grad nicht mehr so den durchblick...

                    Kommentar


                    • #11
                      quellcodischen
                      aus prinzip schon nicht. leider.

                      Kommentar


                      • #12
                        was fürn prinzip! is doch quasch---
                        wenn du dich damit besser auskennst, kannst mir doch sagen wies geht oder? denn aus fehlern lernt man bekanntlich

                        Kommentar


                        • #13
                          Original geschrieben von hauke
                          was fürn prinzip! is doch quasch---
                          wenn du dich damit besser auskennst, kannst mir doch sagen wies geht oder?
                          er hat dir bereits tipps und denkanstösse gegeben - jetzt ist es an dir, zu sehen wie du diese am besten umsetzt.

                          denn aus fehlern lernt man bekanntlich
                          aus dem schon ein paar mal gemachten fehler, leuten hier fertigen quellcode zu posten, haben wir in der tat gelernt.

                          kennst du das sprichwort vom "kleinen finger reichen" ...?
                          genau darauf läuft's dann nämlich idR. hinaus.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            denn aus fehlern lernt man bekanntlich
                            dann fang an zu lernen, und zwar aus deinen fehlern und nicht aus meinem Code-

                            Kommentar

                            Lädt...
                            X