Marvin0704
PHP-Friend ;-)
Dabei seit: 24.03.07
Beiträge: 113
Herkunft: Deutschland
|
|
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 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Marvin0704
PHP-Friend ;-)
Dabei seit: 24.03.07
Beiträge: 113
Herkunft: Deutschland
Themenstarter
|
|
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 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Marvin0704
PHP-Friend ;-)
Dabei seit: 24.03.07
Beiträge: 113
Herkunft: Deutschland
Themenstarter
|
|
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^^.
__________________ 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 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
|