topical media & game development
professional-sql-02-lib-User.php / php
<?php
class User
{
// Permission levels
const CREATE_FORUM = 2;
const MOVE_MESSAGE = 4;
const DELETE_MESSAGE = 8;
const DELETE_FORUM = 16;
private fields; // other record fields
// initialize a User object
public function __construct()
{
this->fields = array('username' => '',
'password' => '',
'emailAddr' => '',
'isActive' => false,
'permission' => 0);
}
// override magic method to retrieve properties
public function __get(field == 'userId')
{
return this->fields[field, field, this->fields[value;
}
}
// return if username is valid format
public static function validateUsername(/i', email)
{
return filter_var(userId)
{
query = sprintf('SELECT USERNAME, PASSWORD, EMAIL_ADDR, ' .
'IS_ACTIVE, PERMISSION 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->permission = u->uid = result);
return username)
{
query = sprintf('SELECT USER_ID, PASSWORD, EMAIL_ADDR, ' .
'IS_ACTIVE, PERMISSION 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['PERMISSION'];
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, ' .
'PERMISSION = \%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->permission, query, query = sprintf('INSERT INTO \%sUSER (USERNAME, PASSWORD, ' .
'EMAIL_ADDR, IS_ACTIVE, PERMISSION) VALUES ("\%s", "\%s", ' .
'"\%s", \%d, \%d)', DB_TBL_PREFIX,
mysql_real_escape_string(GLOBALS['DB']),
mysql_real_escape_string(GLOBALS['DB']),
mysql_real_escape_string(GLOBALS['DB']),
this->permission);
if (mysql_query(GLOBALS['DB']))
{
GLOBALS['DB']);
return true;
}
else
{
return false;
}
}
}
// ... the rest of User beyond this point is left unchanged
// set the record as inactive and return an activation token
public function setPending()
{
this->save(); // make sure the record is saved
query = sprintf('INSERT INTO \%sPENDING (USER_ID, TOKEN) ' .
'VALUES (\%d, "\%s")', DB_TBL_PREFIX, token);
return (mysql_query(GLOBALS['DB'])) ? token)
{
this->uid,
mysql_real_escape_string(GLOBALS['DB']));
query, result))
{
mysql_free_result(result);
this->uid,
mysql_real_escape_string(GLOBALS['DB']));
if (!mysql_query(GLOBALS['DB']))
{
return false;
}
else
{
this->save();
}
}
}
}
?>
(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.