db = new DB_Sql(); if ($GLOBALS['HUB']['misc']['debug']) { $this->debug = true; } else { $this->debug = false; } } function login($u, $p, $if_admin = false) { $sql = sprintf("SELECT m.m_id,m.m_fname,m.m_lname,m.m_company,m.m_level,c.c_name FROM member_data m, company_data c WHERE m.m_name='%s' AND m.m_pswd='%s' AND m.m_company=c.c_id", $u, $p); if ($this->debug) { echo $sql; } $this->db->query($sql); if ($this->db->next_record()) { if ($if_admin) { if ($this->db->f('m_level') == 5) { $this->id = $this->db->f('m_id'); $this->name = $u; $this->pswd = $p; $this->fname = $this->db->f('m_fname'); $this->lname = $this->db->f('m_lname'); $this->level = $GLOBALS['HUB']['stts']['member'][$this->db->f('m_level')]; return 2; } else { return -1; } } else { $this->id = $this->db->f('m_id'); $this->name = $u; $this->pswd = $p; $this->fname = $this->db->f('m_fname'); $this->lname = $this->db->f('m_lname'); $this->level = $GLOBALS['HUB']['stts']['member'][$this->db->f('m_level')]; $this->company = new Company(); $this->company->id = $this->db->f('m_company'); $this->company->name = $this->db->f('c_name'); if ($this->db->f('m_level') == 5) { return 2; } else { return 1; } } } else { return 0; } } function logout() { global $HTTP_SESSION_VARS; if (session_destroy()) { return 1; } else { return 0; } } function get($i) { $sql = sprintf("SELECT m.*, c.c_name FROM member_data m, company_data c WHERE m.m_id=%s", $i); if ($this->debug) { echo $sql; } $this->db->query($sql); if ($this->db->next_record()) { $this->id = $this->db->f('m_id'); $this->name = $this->db->f('m_name'); $this->pswd = $this->db->f('m_pswd'); $this->email = $this->db->f('m_email'); $this->fname = $this->db->f('m_fname'); $this->lname = $this->db->f('m_lname'); $this->level = $GLOBALS['HUB']['stts']['member'][$this->db->f('m_level')]; $this->company = new Company(); $this->company->id = $this->db->f('m_company'); $this->company->name = $this->db->f('c_name'); return 1; } else { return 0; } } function set($i, $n, $p, $e, $fn, $ln, $c, $l = 1) { $level_field = ''; if ($l == 1) { $level_field = ''; } else { $level_field = ', m_level=' . $l; } $sql = sprintf("UPDATE member_data SET m_pswd='%s', m_email='%s', m_fname='%s', m_lname='%s', m_company=%s %s WHERE m_id=%s", $p, $e, $fn, $ln, $c, $level_field, $i); if ($this->debug) { echo $sql; } $this->db->query($sql); if ($this->db->affected_rows() == 1) { $this->id = $i; $this->name = $n; $this->pswd = $p; $this->email = $e; $this->fname = $fn; $this->lname = $ln; $this->level = $GLOBALS['HUB']['stts']['member'][$l]; $this->company = new Company(); $this->company->id = $c; return 1; } else { return 0; } } /** * Add new member. * @param string $n member name * @param string $p member password * @param string $e member email * @param string $fn first name of member * @param string $ln last name of member * @param integer $c company of member * @param integer $l member level * @return integer +X: member ID inserted just now; * 0: aborted in inserting new record; * -1: company not available; * -2: duplicated member name; * -3: aborted in getting inserted ID just now. * @access public */ function add($n, $p, $e, $fn, $ln, $c, $l = 1) { $sql = sprintf("SELECT c_name FROM company_data WHERE c_id=%s", $c); $this->db->query($sql); if ($this->db->num_rows() != 1) { return -1; } $sql = sprintf("SELECT m_id FROM member_data WHERE m_name='%s'", $n); $this->db->query($sql); if ($this->db->num_rows() != 0) { return -2; } $sql = sprintf("INSERT INTO member_data VALUES (NULL, '%s', '%s', '%s', '%s', '%s', %s, %s)", $n, $p, $e, $fn, $ln, $c, $l); if ($this->debug) { echo $sql; } $this->db->query($sql); if ($this->db->affected_rows() == 1) { $sql = sprintf("SELECT m.m_id, c.c_name FROM member_data m, company_data c WHERE m.m_company=c.c_id AND m.m_name='%s'", $n); $this->db->query($sql); if ($this->db->next_record()) { $this->id = $this->db->f('m_id'); } else { return -3; } $this->name = $n; $this->pswd = $p; $this->email = $e; $this->fname = $fn; $this->lname = $ln; $this->level = $GLOBALS['HUB']['stts']['member'][$l]; $this->company = new Company(); $this->company->id = $c; $this->company->name = $this->db->f('c_name'); return $this->id; } else { return 0; } } /** * Remove existed member. * @param integer $i member ID * @return integer 1: successful; * 0: unsuccessful. * @access public */ function del($i) { $sql = sprintf("DELETE FROM member_data WHERE m_id=%s", $i); if ($this->debug) { echo $sql; } $this->db->query($sql); if ($this->db->affected_rows() == 1) { return 1; } else { return 0; } } } ?>