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.
	
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)	
	
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	
	
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) 
	
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
					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 );
            }
        }
    } 
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;
    } 
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;
            }
        }
    } 
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);
    }
} 
Mit freundlichen Gruß
Sascha
 
          
 Weis nicht ob ich das richtig mache
									
									
									Weis nicht ob ich das richtig mache
								


Kommentar