YourWBB


yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » [PHP-OOP] User-Klasse » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 2.593 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Zum Ende der Seite springen [PHP-OOP] User-Klasse
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Marvin0704 Marvin0704 ist männlich
PHP-Friend ;-)


Dabei seit: 24.03.07
Beiträge: 113
Herkunft: Deutschland

Lampe [PHP-OOP] User-Klasse Antworten Zitieren Editieren Melden       UP

Hey Leutz,

ich habe eine Frage zum Aufbau einer eigene User Klasse( beschäftigt mich schon länger, nur jetzt brauche ich eine). Deswegen habe ich mich heute daran versucht. Doch leider bin ich garnicht zufriden.
Im allgemeinen würde ich gerne hören, welche Methoden und Eigenschaften, so eine Klasse braucht. Vielleicht sogar reelle Beispiele, wenn jemand irgendetwas parat hat.
Würde mich freuen von euch Denkanstöße zu bekommen.

lg Marvin

__________________
PHP-Friends - Internet, Soft- & Hardware, Erfahrungsberichte, PHP. Unsere Artikel zum digitalen Leben.
02.07.09 21:10 Marvin0704 ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Marvin0704 in deine Kontaktliste ein
Maniac_81 Maniac_81 ist männlich
PHP Profi


images/avatars/avatar-5230.gif

Dabei seit: 27.06.06
Beiträge: 2.087
Fähigkeiten: WBB3 Anfänger; WBB2 Profi
Herkunft: localhost/
Forenversion: 2.3; Lite 2.0

Antworten Zitieren Editieren Melden       UP

Das kommt doch immer drauf an was du damit abdecken willst.

wichtig ist denk ich mal:

- Registrierung
- Login
- Logout
- Rechteverteilung
- User anlegen/löschen
- account löschen

__________________
zufrieden mit meinem Support? dann hier bitte bewerten!

Sie haben 3 gelbe Bananen gewählt!

ÄPFEL! 3!!!

03.07.09 08:44 Maniac_81 ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Maniac_81 in deine Kontaktliste ein MSN Passport-Profil von Maniac_81 anzeigen
Marvin0704 Marvin0704 ist männlich
PHP-Friend ;-)


Dabei seit: 24.03.07
Beiträge: 113
Herkunft: Deutschland

Themenstarter Thema begonnen von Marvin0704
Antworten Zitieren Editieren Melden       UP

Gut, also ungefähr so?:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:

<?php

class User extends Core
{
    
    public function __construct() {}
    public function userAdd() {}
    public function userLogin() {}
    public function userLogout() {}
    public function userUpdate() {}
    public function userRemove() {}
}

?>

Sollte das Rechtesystem auch mit in diese Klasse oder soll ich das in einer (Tochter)-Klasse bearbeiten?

__________________
PHP-Friends - Internet, Soft- & Hardware, Erfahrungsberichte, PHP. Unsere Artikel zum digitalen Leben.
03.07.09 10:17 Marvin0704 ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Marvin0704 in deine Kontaktliste ein
Maniac_81 Maniac_81 ist männlich
PHP Profi


images/avatars/avatar-5230.gif

Dabei seit: 27.06.06
Beiträge: 2.087
Fähigkeiten: WBB3 Anfänger; WBB2 Profi
Herkunft: localhost/
Forenversion: 2.3; Lite 2.0

Antworten Zitieren Editieren Melden       UP

Besser aufgehoben wäre sie natürlich in einer Child-Klasse.

__________________
zufrieden mit meinem Support? dann hier bitte bewerten!

Sie haben 3 gelbe Bananen gewählt!

ÄPFEL! 3!!!

03.07.09 11:48 Maniac_81 ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Maniac_81 in deine Kontaktliste ein MSN Passport-Profil von Maniac_81 anzeigen
Marvin0704 Marvin0704 ist männlich
PHP-Friend ;-)


Dabei seit: 24.03.07
Beiträge: 113
Herkunft: Deutschland

Themenstarter Thema begonnen von Marvin0704
Antworten Zitieren Editieren Melden       UP

Hab es jetzt nochmal näher herausgearbeitet. Habs aber nicht sonderlich gut kommentiert, falls ich dies nachholen soll bitte sofort schreiben. Ich hoffe ich habe da jetzt keine zu großen Fehler gemacht in der Klassenerstellung.
Es fehlen noch ein paar Funktionen, aber bevor alle für die Katz war würde ich euch gerne drüber schauen lassen. Ich bin z.B. mit dem Konstruktor nicht richtig einverstanden...
Hoffe auf Anregungen:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
<?php

class User extends Core
{
    // Userdaten 
    public $userRow;
    protected $allFields "userID,userName, userPass,userSalt, userMail,userRegDate,userRegIp,userLastLogin,userStatus";
    //private $userRight;
    //Userdaten vor dem Login
    private $userLoginInfo false;
    //protected $cookieExp = time()+(30*60);
    
    public function __construct($userID NULL)
    {
        // wie gesagt der Konstruktor ist für den **** :(
        if($userID !== NULL)
        {
            $resultObj parent::$dbObj->query("SELECT ".$allFields."
                                                FROM ".TABLE_PREFIX."user
                                                WHERE userID = ".intval($userID)."
                                                LIMIT 1");
            if(!$resultObj$this->userRow "Guest";
            else $this->userRow $resultObj->fetch_assoc;
            
        } else {
            $this->userRow "Guest";
        }
        
    }
    public function createSession($userRow $this->userRow) {}

    // Überprüfe Username
    public function checkUsername($userName)
    {
        $sqlStmt "SELECT userID,
                           userName,
                           userPass,
                           userSalt
                           FROM ".TABLE_PREFIX."user
                     WHERE userName = '".parent::$dbObj->escape_string($userName)."'
                     AND   userStatus = 'active'
                     LIMIT 1";
        $resultObj parent::$dbObj->query($sqlStmt);

        if(!$resultObj) return false;
        else
        {
            $this->userLoginInfo $resultObj->fetch_assoc();
            return true;
        }
    }

    // Danach kann das Passwort kontrolliert werden
    public function checkPassword($userPassword)
    {
        if($this->userLoginInfo === FALSE) return false;
        $sqlStmt "SELECT  userMail,
                            userRegDate,
                            userRegIp,
                            userLastLogin,
                            userStatus
                            FROM ".TABLE_PREFIX."user
                    WHERE userPassword = '".hash("sha256"$userPassword.$this->userLoginInfo['userSalt'])."'
                    AND userStatus = 'active'
                    LIMIT 1";

        $resultObj parent::$dbObj->query($sqlStmt);
        if(!$resultObj) return false;

        else
        {
            $this->userLoginInfo[] = $resultObj->fetch_assoc();
            return true;
        }
    }

    // Sobald Username und Passwort in Ordnung sind kann man einloggen
    public function performLogin()
    {
        if($this->userLoginInfo === false || !isset($this->userLoginInfo['userMail'])) return false;
        parent::$dbObj->query("UPDATE ".TABLE_PREFIX."site set userLastLogin=NOW() WHERE userID=".$this->userLoginInfo['userID']." LIMIT 1");
        $this->userRow $this->userLoginInfo;
        $this->createSession();
        return true;
    }

    // Statische Registrier Funktion
    public static function registerUser($userID$userName$userPass$userMail)
    {
        $userSalt parent::generateSalt();
        $userRegIp $_SERVER['REMOTE_ADDR'];

        $sqlStmt "INSERT INTO ".TABLE_PREFIX."site(".$allFields.") VALUES(NULL, '".$dbObj->escape_string($userName)."', '".hash("sha256"$userPass.$userSalt)."', '".$userSalt."', '".$dbObj->escape_string($userMail)."', NOW(), '".$dbObj->escape_string($userRegIp)."', NULL, NULL)";
        $dbObj->query($sqlStmt)
        /**
         * Rechte Tabelle ausfüllen fehlt auch noch...
        **/ 
    }
}

?>


DatenbankObjekt wird von der Elterklassen vererbt.

//edit: hab sie auch noch mal als Datei angehangen, weil wegen ziemlich breit^^.
Dateianhang:
unknown User.class.php (3 KB, 0 mal heruntergeladen)


__________________
PHP-Friends - Internet, Soft- & Hardware, Erfahrungsberichte, PHP. Unsere Artikel zum digitalen Leben.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Marvin0704: 03.07.09 13:25.

03.07.09 13:23 Marvin0704 ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Marvin0704 in deine Kontaktliste ein
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » [PHP-OOP] User-Klasse