📄 integrate.php
字号:
$row = $this->db->getRow($sql);
if ($this->charset != 'UTF8')
{
$row['user_name'] = $username;
}
return $row;
}
/**
* 获取指定用户的信息
*
* @access public
* @param
*
* @return void
*/
function get_profile_by_id($id)
{
$sql = "SELECT " . $this->field_id . " AS user_id," . $this->field_name . " AS user_name," .
$this->field_email . " AS email," . $this->field_gender ." AS sex,".
$this->field_bday . " AS birthday," . $this->field_reg_date . " AS reg_time, ".
$this->field_pass . " AS password ".
" FROM " . $this->table($this->user_table) .
" WHERE " .$this->field_id . "='$id'";
$row = $this->db->getRow($sql);
if ($this->charset != 'UTF8')
{
$row['user_name'] = ecs_iconv($this->charset, 'UTF8', $row['user_name']);
}
return $row;
}
/**
* 根据登录状态设置cookie
*
* @access public
* @param
*
* @return void
*/
function get_cookie()
{
$id = $this->check_cookie();
if ($id)
{
if ($this->need_sync)
{
$this->sync($id);
}
$this->set_session($id);
return true;
}
else
{
return false;
}
}
/**
* 检查指定用户是否存在及密码是否正确
*
* @access public
* @param string $username 用户名
*
* @return int
*/
function check_user($username, $password = null)
{
if ($this->charset != 'UTF8')
{
$post_username = ecs_iconv('UTF8', $this->charset, $username);
}
else
{
$post_username = $username;
}
/* 如果没有定义密码则只检查用户名 */
if ($password === null)
{
$sql = "SELECT " . $this->field_id .
" FROM " . $this->table($this->user_table).
" WHERE " . $this->field_name . "='" . $post_username . "'";
return $this->db->getOne($sql);
}
else
{
$sql = "SELECT " . $this->field_id .
" FROM " . $this->table($this->user_table).
" WHERE " . $this->field_name . "='" . $post_username . "' AND " . $this->field_pass . " ='" . $this->compile_password(array('password'=>$password)) . "'";
return $this->db->getOne($sql);
}
}
/**
* 检查指定邮箱是否存在
*
* @access public
* @param string $email 用户邮箱
*
* @return boolean
*/
function check_email($email)
{
if (!empty($email))
{
/* 检查email是否重复 */
$sql = "SELECT " . $this->field_id .
" FROM " . $this->table($this->user_table).
" WHERE " . $this->field_email . " = '$email' ";
if ($this->db->getOne($sql, true) > 0)
{
$this->error = ERR_EMAIL_EXISTS;
return true;
}
return false;
}
}
/**
* 检查cookie是正确,返回用户名
*
* @access public
* @param
*
* @return void
*/
function check_cookie()
{
return '';
}
/**
* 设置cookie
*
* @access public
* @param
*
* @return void
*/
function set_cookie($username='')
{
if (empty($username))
{
/* 摧毁cookie */
$time = time() - 3600;
setcookie('ECS[user_id]', '', $time);
setcookie('ECS[password]', '', $time);
}
else
{
/* 设置cookie */
$time = time() + 3600 * 24 * 30;
setcookie("ECS[username]", $username, $time, $this->cookie_path, $this->cookie_domain);
$sql = "SELECT user_id, password FROM " . $GLOBALS['ecs']->table('users') . " WHERE user_name='$username' LIMIT 1";
$row = $GLOBALS['db']->getRow($sql);
if ($row)
{
setcookie("ECS[user_id]", $row['user_id'], $time, $this->cookie_path, $this->cookie_domain);
setcookie("ECS[password]", $row['password'], $time, $this->cookie_path, $this->cookie_domain);
}
}
}
/**
* 设置指定用户SESSION
*
* @access public
* @param
*
* @return void
*/
function set_session ($username='')
{
if (empty($username))
{
$GLOBALS['sess']->destroy_session();
}
else
{
$sql = "SELECT user_id, password, email FROM " . $GLOBALS['ecs']->table('users') . " WHERE user_name='$username' LIMIT 1";
$row = $GLOBALS['db']->getRow($sql);
if ($row)
{
$_SESSION['user_id'] = $row['user_id'];
$_SESSION['user_name'] = $username;
$_SESSION['email'] = $row['email'];
}
}
}
/**
* 在给定的表名前加上数据库名以及前缀
*
* @access private
* @param string $str 表名
*
* @return void
*/
function table($str)
{
return '`' .$this->db_name. '`.`'.$this->prefix.$str.'`';
}
/**
* 编译密码函数
*
* @access public
* @param array $cfg 包含参数为 $password, $md5password, $salt, $type
*
* @return void
*/
function compile_password ($cfg)
{
if (isset($cfg['password']))
{
$cfg['md5password'] = md5($cfg['password']);
}
if (empty($cfg['type']))
{
$cfg['type'] = PWD_MD5;
}
switch ($cfg['type'])
{
case PWD_MD5 :
return $cfg['md5password'];
case PWD_PRE_SALT :
if (empty($cfg['salt']))
{
$cfg['salt'] = '';
}
return md5($cfg['salt'] . $cfg['md5password']);
case PWD_SUF_SALT :
if (empty($cfg['salt']))
{
$cfg['salt'] = '';
}
return md5($cfg['md5password'] . $cfg['salt']);
default:
return '';
}
}
/**
* 会员同步
*
* @access public
* @param
*
* @return void
*/
function sync ($username, $password='', $md5password='')
{
if ((!empty($password)) && empty($md5password))
{
$md5password = md5($password);
}
$main_profile = $this->get_profile_by_name($username);
if (empty($main_profile))
{
return false;
}
$sql = "SELECT user_name, email, password, sex, birthday".
" FROM " . $GLOBALS['ecs']->table('users').
" WHERE user_name = '$username'";
$profile = $GLOBALS['db']->getRow($sql);
if (empty($profile))
{
/* 向商城表插入一条新记录 */
if (empty($md5password))
{
$sql = "INSERT INTO " . $GLOBALS['ecs']->table('users').
"(user_name, email, sex, birthday, reg_time)".
" VALUES('$username', '" .$main_profile['email']."','".
$main_profile['sex'] . "','" . $main_profile['birthday'] . "','" . $main_profile['reg_time'] . "')";
}
else
{
$sql = "INSERT INTO " . $GLOBALS['ecs']->table('users').
"(user_name, email, sex, birthday, reg_time, password)".
" VALUES('$username', '" .$main_profile['email']."','".
$main_profile['sex'] . "','" . $main_profile['birthday'] . "','" .
$main_profile['reg_time'] . "', '$md5password')";
}
$GLOBALS['db']->query($sql);
return true;
}
else
{
$values = array();
if ($main_profile['email'] != $profile['email'])
{
$values[] = "email='" . $main_profile['email'] . "'";
}
if ($main_profile['sex'] != $profile['sex'])
{
$values[] = "sex='" . $main_profile['sex'] . "'";
}
if ($main_profile['birthday'] != $profile['birthday'])
{
$values[] = "birthday='" . $main_profile['birthday'] . "'";
}
if ((!empty($md5password)) && ($md5password != $profile['password']))
{
$values[] = "password='" . $md5password . "'";
}
if (empty($values))
{
return true;
}
else
{
$sql = "UPDATE " . $GLOBALS['ecs']->table('users').
" SET " . implode(", ", $values).
" WHERE user_name='$username'";
$GLOBALS['db']->query($sql);
return true;
}
}
}
/**
* 获取论坛有效积分及单位
*
* @access public
* @param
*
* @return void
*/
function get_points_name ()
{
return array();
}
/**
* 获取用户积分
*
* @access public
* @param
*
* @return void
*/
function get_points($username)
{
$credits = $this->get_points_name();
$fileds = array_keys($credits);
if ($fileds)
{
if ($this->charset != 'UTF8')
{
$username = ecs_iconv('UTF8', $this->charset, $username);
}
$sql = "SELECT " . $this->field_id . ', ' . implode(', ',$fileds).
" FROM " . $this->table($this->user_table).
" WHERE " . $this->field_name . "='$username'";
$row = $this->db->getRow($sql);
return $row;
}
else
{
return false;
}
}
/**
*
*
* @access public
* @param
*
* @return void
*/
function set_points ($username, $credits)
{
$user_set = array_keys($credits);
$points_set = array_keys($this->get_points_name());
$set = array_intersect($user_set, $points_set);
if ($set)
{
if ($this->charset != 'UTF8')
{
$username = ecs_iconv('UTF8', $this->charset, $username);
}
$tmp = array();
foreach ($set as $credit)
{
$tmp[] = $credit . '=' . $credit . '+' . $credits[$credit];
}
$sql = "UPDATE " . $this->table($this->user_table).
" SET " . implode(', ', $tmp).
" WHERE " . $this->field_name . " = '$username'";
$this->db->query($sql);
}
return true;
}
function get_user_info($username)
{
return $this->get_profile_by_name($username);
}
/**
* 检查有无重名用户,有则返回重名用户
*
* @access public
* @param
*
* @return void
*/
function test_conflict ($user_list)
{
if (empty($user_list))
{
return array();
}
if ($this->charset != 'UTF8')
{
$count = count($user_list);
for($i=0; $i<$count; $i++)
{
$user_list[$i] = ecs_iconv('UTF8', $this->charset, $user_list[$i]);
}
}
$sql = "SELECT " . $this->field_name . " FROM " . $this->table($this->user_table) . " WHERE " . db_create_in($user_list, $this->field_name);
$user_list = $this->db->getCol($sql);
if ($user_list && ($this->charset != 'UTF8'))
{
$count = count($user_list);
for($i=0; $i<$count; $i++)
{
$user_list[$i] = ecs_iconv($this->charset, 'UTF8', $user_list[$i]);
}
}
return $user_list;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -