professional-sql-01-lib-User.php / php
<?php class User { private // user id private fields; // other record fields // initialize a User object public function __construct() { this->fields = array('username' => '', 'password' => '', 'emailAddr' => '', 'isActive' => false); } // override magic method to retrieve properties public function __get(field == 'userId') { return this->fields[// override magic method to set properties public function __set(field, field, this->fields[value; } } // return if username is valid format public static function validateUsername(/i', // return if email address is valid format public static function validateEmailAddr(email) { return filter_var(// return an object populated based on the record's user id public static function getById(uid) { query = sprintf('SELECT USERNAME, PASSWORD, EMAIL_ADDR, IS_ACTIVE ' . 'FROM\ %sUSER WHERE USER_ID =\ %d', DB_TBL_PREFIX, result = mysql_query(GLOBALS['DB']); if (mysql_num_rows(row = mysql_fetch_assoc(u->username = u->password = u->emailAddr = u->isActive = u->uid = result); return // return an object populated based on the record's username public static function getByUsername(username) { query = sprintf('SELECT USER_ID, PASSWORD, EMAIL_ADDR, IS_ACTIVE ' . 'FROM\ %sUSER WHERE USERNAME = "\ %s"', DB_TBL_PREFIX, mysql_real_escape_string(GLOBALS['DB'])); query, result)) { result); username; row['PASSWORD']; row['EMAIL_ADDR']; row['IS_ACTIVE']; row['USER_ID']; } mysql_free_result(u; } // save the record to the database public function save() { if (query = sprintf('UPDATE\ %sUSER SET USERNAME = "\ %s", ' . 'PASSWORD = "\ %s", EMAIL_ADDR = "\ %s", IS_ACTIVE =\ %d ' . 'WHERE USER_ID =\ %d', DB_TBL_PREFIX, mysql_real_escape_string(GLOBALS['DB']), mysql_real_escape_string(GLOBALS['DB']), mysql_real_escape_string(GLOBALS['DB']), this->userId); mysql_query(GLOBALS['DB']); } else {\ %sUSER (USERNAME, PASSWORD, ' . 'EMAIL_ADDR, IS_ACTIVE) VALUES ("\ %s", "\ %s", "\ %s",\ %d)', DB_TBL_PREFIX, mysql_real_escape_string(this->username, this->password, this->emailAddr, this->isActive); mysql_query(GLOBALS['DB']); GLOBALS['DB']); } } // set the record as inactive and return an activation token public function setInactive() { this->save(); // make sure the record is saved query = sprintf('INSERT INTO\ %sPENDING (USER_ID, TOKEN) ' . 'VALUES (\ %d, "\ %s")', DB_TBL_PREFIX, token); mysql_query(GLOBALS['DB']); return // clear the user's pending status and set the record as active public function setActive(token) {\ %sPENDING WHERE USER_ID =\ %d ' . 'AND TOKEN = "\ %s"', DB_TBL_PREFIX, this->uid, mysql_real_escape_string(GLOBALS['DB'])); query, result)) { mysql_free_result(result);\ %sPENDING WHERE USER_ID =\ %d ' . 'AND TOKEN = "\ %s"', DB_TBL_PREFIX, this->uid, mysql_real_escape_string(GLOBALS['DB'])); mysql_query(GLOBALS['DB']); this->save(); return true; } } } ?>
(C) Æliens 20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.