Weis nicht ob ich das richtig mache

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

  • Weis nicht ob ich das richtig mache

    Hallo erstmal,
    nach langem hin und her hab ich mich entschlossen euch zu fragen, da ihr von PHP ja Ahnung habt.
    Ich möchte mir ein Usermanagement aufbauen mit einer Klasse, das Usermanagement das hier schon gepostet wurde hat mir dabei schon gut geholfen. Mein Problem ist aber, wegen mangelnder Erfahrung (bin erst seit fünf Tagen am PHP lernen) das ich nicht genau weis ob ich da jetzt unsinn in mein Code reinmache, somit wäre ich euch für jede Kritik dankbar.

    Hoffe das Script ist nicht zu lang.

    PHP-Code:
    class auth

    /**
    *        Auth    v0.4
    **/
    {
        
        var 
    $db_userid;                    // Die ID des jeweiligen Users
        
    var $db_usernick;                // Der Nick des jeweiligen Users
        
    var $db_userpass;                // Das Passwort des jeweiligen Users
        
    var $db_userstat;                // Der Status des jeweiligen Users
        
    var $db_user************;                // Das Geschlecht
        
    var $db_usermail;                // Seine Email
        
    var $db_useroldcheck;                // Ob der User über 18 ist
        
    var $auth_msg;                    // Nummer der Fehlermeldungen
        
    var $give_access;                // Ob Access Ja/Nein
        //var $access;                    // Acccess Variable
        
    var $checkresponse;                // Ausgabe der Fehlermeldungen
        
    var $userstat;                    // Der Status des Users um Wortlaut


        
        
        /**
        * @return unknown
        * @param auth_msg unknown
        * @desc Überprüft ob Login und Passwort mit der Datenbank übereinstimmen. Wenn Ja werden die ersten Variablen abgespeichert
        */
        
    function check_auth $auth_array$sqlconn$session )
        {
            
    $sql_querystring "SELECT userid, usernick, userpass, userstat, user************, usermail, useroldcheck FROM user WHERE usernick = '$auth_array[0]' AND userpass = MD5( '$auth_array[1]')";
            
    $sql_authquery mysql_query($sql_querystring$sqlconn);
            
    $sql_getuser mysql_fetch_array($sql_authquery);
            
            
    //Wenn nichts eingegeben wurde...
            
    if($sql_getuser["userid"] == "")
            {
                
    $this->auth_msg "102";
                
    $this->auth_msg $this->auth_msg );
                return 
    FALSE;
            }
            
            else
            
            {
                
    // Hier mit werden die Ausgelesenen Variablen an die Klasse übergeben um sie weiter zu verarbeiten
                
    if($sql_getuser["userstat"] != "100")
                {
                    
    $this->db_userid         $sql_getuser["userid"];
                    
    $this->db_usernick         $sql_getuser["usernick"];
                    
    $this->db_userpass         $sql_getuser["userpass"];
                    
    $this->db_userstat         $sql_getuser["userstat"];
                    
    $this->db_user************         = $sql_getuser["user************"];
                    
    $this->db_usermail         $sql_getuser["usermail"];
                    
    $this->db_useroldcheck     $sql_getuser["useroldcheck"];
                    
                    
    //$this->user_status( $this->db_userstat );
                    // hier muss die Prüfung rein ob mit Cookie oder Sessions eingeloggt werden soll Variable heist $coice_log
                    
                    
    $this->check_update_session$session$sqlconn);
                    return 
    TRUE;
                }
                
                else
                
                {
                    
    $this->auth_msg "100";
                    
    $this->auth_msg $this->auth_msg );
                }
            }
        } 
    So das war die erste Funktion sie soll überprüfen ob das Login und das Passwort mit der Datenbank übereinstimmt. Login und Pass stecken dabei in einem Array damit ich mir eine Variable spare (ich mag schlanke funktionsaufrufe)

    PHP-Code:
        
        
    function check_update_session $session$sqlconn )
        {
            
            
    $sql_authupdate_string "UPDATE user SET usersession = '".$session."',userlogin = NOW() WHERE UserId = '".$this->db_userid."'" ;
            
    mysql_query($sql_authupdate_string$sqlconn);
            
    $this->auth_msg "103";
            
    $this->auth_msg $this->auth_msg );
            return 
    TRUE;
        } 
    Die Zweite Funktion updated die Datenbank in dem sie die SessionID und das aktuelle Login einträgt, ich hab es deswegen gesplittet um später auch noch eine Funktion hinzuzufügen die das einloggen mittels Cookies macht

    PHP-Code:

        
    /**
        * @return unknown
        * @param auth_msg unknown
        * @desc Gibt die Systemmeldungen der Authorisierung
        */
        
    function auth_msg $auth_msg )
        {
            
    $auth_response    =    array(
            
    100        =>    "Sorry you are Banned.",
            
    101        =>    "Zu wenig Zugriffrechte zum Anzeigen dieser Seite.",
            
    102        =>    "Bei der Eingabe ist ihnen ein Fehler unterlaufen.",
            
    103        =>    "Sie sind nun Eingeloggt.",
            );
            
            
    $this->checkresponse $auth_response["$this->auth_msg"];
            
            return 
    $auth_response;
            
            
        }
        
    //*************
        /**
        * @return unknown
        * @param db_stat unknown
        * @desc Gibt den Userstatus aus
        */
        
    function user_status $db_userstat )
        {
            
    $user_status    =    array(
            
    100    =>    "Gebannt",                // Verweigerung auf den Zugriff der Seite
            
    300    =>    "Gast",                    // Zugriff auf öffentliche Bereiche ohne Schreibrecht
            
    500    =>    "User",                    // Zugriff auf die öffentlichen Bereiche mit Schreibrecht
            
    550    =>    "Member",                // Zugriff auf die erweiterten Bereiche mit Schreibrecht
            
    600    =>    "Newsredakteur",        // Erstellungsrecht bei den News, zugriff auf alle Bereiche
            
    630    =>    "Artikelredakteur",        // Erstellungsrecht bei den Artikeln, Zugriff auf alle Bereiche
            
    933    =>    "Moderator",            // Zugriff auf alle Bereiche, kann User Bannen, Contentangebote editieren
            
    966    =>    "Site Operator",        // Zugriff auf alle Bereiche, kann Userstatus ändern
            
    999    =>    "Site Admin"            // Darf alles ;)
            
    );
            
            
    $this->userstat =  $user_status["$this->db_userstat"];
            
            return 
    $user_status;
        }
        
    //**************
        
        /**
        * @return void
        * @param db_stat unknown
        * @param db_oldcheck unknown
        * @param access unknown
        * @param give_access unknown
        * @desc Gibt den Content bei entsprechenden Rechten frei
        */
        
    function user_access $db_userstat$db_useroldcheck$access$give_access )
        {
            
            if( 
    $this->db_userstat == "100")
            {
                
    $this->auth_msg "100";
                
    $this->auth_msg $this->auth_msg );
                die;    
    // BANNED
            
    }
            
            else
            
            {
                
                switch ( 
    $access )
                {
                    
    // Zugriff für alle ab Gast
                    
    case 1     :    if( $this->db_userstat >= "300" )
                    {
                        
    $this->give_access TRUE;
                    }
                    else
                    {
                        
    $this->give_access FALSE;
                        
    $this->auth_msg "101";
                        
    $this->auth_msg $this->auth_msg );
                    };
                    break;
                    
                    
    // Zugriff für alle ab Gast aber mit Positivem Oldcheck
                    
    case 2    :    if( $this->db_userstat >= "300" AND $this->db_useroldcheck "1" )
                    {
                        
    $this->give_access TRUE;
                    }
                    else
                    {
                        
    $this->give_access FALSE;
                        
    $this->auth_msg "101";
                        
    $this->auth_msg $this->auth_msg );
                    };
                    break;
                    
                    
    // Zugriff für alle ab Member
                    
    case 3    :    if( $this->db_userstat >= "550" )
                    {
                        
    $this->give_access TRUE;
                    }
                    else
                    {
                        
    $this->give_access FALSE;
                        
    $this->auth_msg "101";
                        
    $this->auth_msg $this->auth_msg );
                    };
                    break;
                    
                    
    // Zugriff für alle ab Member aber mit positiven Oldcheck
                    
    case 4    :    if( $this->db_userstat >= "550" AND $this->db_useroldcheck "1" )
                    {
                        
    $this->give_access TRUE;
                    }
                    else
                    {
                        
    $this->give_access FALSE;
                        
    $this->auth_msg "101";
                        
    $this->auth_msg $this->auth_msg );
                    };
                    break;
                    
                    
    // Zugriff für alle Admins und Mods
                    
    case 5    :    if( $this->db_userstat >= "933" )
                    {
                        
    $this->give_access TRUE;
                    }
                    else
                    {
                        
    $this->give_access FALSE;
                        
    $this->auth_msg "101";
                        
    $this->auth_msg $this->auth_msg );
                    };
                    break;
                }
            }
        } 
    Der Teil überprüft später die Zugriffsrechte auf der jeweiligen Seite, nur mit dem richtigen Status hat man zugriff....die Variable $db_oldcheck steht dafür ob der User schon 18 ist (blick auf das neue JuSchG)

    PHP-Code:
    /**
        *     Ist die Zusammenfassung der Accessfunktion. Auf der Contentseite muss dann nur
        *    access("nr"); stehen. nr steht für 1-5, fünf ist die höchste Accessklasse
        */
        
    function access $access )
        {
            
    $this->user_access$this->db_userstat$this->db_useroldcheck, &$access, &$give_access);
        }

    Die klasse selber ist noch lange nicht fertig, sie funktioniert bis jetzt sogar schon. Aber wie gesagt ich weis nicht ob das so efizient ist was ich hier fabriziere.

    Mit freundlichen Gruß
    Sascha

  • #2
    ich will jetzt nicht alles lesen. aber wenn du erst seit 5 tagen dabei bist, ist es vielleicht besser, happys UM-class zu verwenden.

    die ist fix und fertig.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Tja könnt ich ja nur lern ich da nicht so viel.
      Aber ich glaub ich schau mir die mal an

      (sorry wenns zuviel code war)

      Gruß
      Sascha

      Kommentar

      Lädt...
      X