?? ucenter.php
字號:
<?php
/**
* UCenter 會員數據處理類
* ============================================================================
* 版權所有 2005-2008 上海商派網絡科技有限公司,并保留所有權利。
* 網站地址: http://www.ecshop.com
* ----------------------------------------------------------------------------
* 這是一個免費開源的軟件;這意味著您可以在不用于商業目的的前提下對程序代碼
* 進行修改、使用和再發布。
* ============================================================================
* $Author: sunxiaodong $
* $Id: ucenter.php 15644 2009-02-23 06:40:40Z sunxiaodong $
*/
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
/* 模塊的基本信息 */
if (isset($set_modules) && $set_modules == TRUE)
{
$i = (isset($modules)) ? count($modules) : 0;
/* 會員數據整合插件的代碼必須和文件名保持一致 */
$modules[$i]['code'] = 'ucenter';
/* 被整合的第三方程序的名稱 */
$modules[$i]['name'] = 'UCenter';
/* 被整合的第三方程序的版本 */
$modules[$i]['version'] = '1.x';
/* 插件的作者 */
$modules[$i]['author'] = 'ECSHOP R&D TEAM';
/* 插件作者的官方網站 */
$modules[$i]['website'] = 'http://www.ecshop.com';
/* 插件的初始的默認值 */
$modules[$i]['default']['db_host'] = 'localhost';
$modules[$i]['default']['db_user'] = 'root';
$modules[$i]['default']['prefix'] = 'uc_';
$modules[$i]['default']['cookie_prefix'] = 'xnW_';
return;
}
require_once(ROOT_PATH . 'includes/modules/integrates/integrate.php');
class ucenter extends integrate
{
/**
* 構造函數
*
* @access public
* @param
*
* @return void
*/
function __construct($cfg)
{
/* 使用默認數據庫連接 */
$this->ucenter($cfg);
}
/**
* 構造函數
*
* @access public
* @param
*
* @return void
*/
function ucenter($cfg)
{
parent::integrate(array());
$this->user_table = 'users';
$this->field_id = 'user_id';
$this->field_name = 'user_name';
$this->field_pass = 'password';
$this->field_email = 'email';
$this->field_gender = 'sex';
$this->field_bday = 'birthday';
$this->field_reg_date = 'reg_time';
$this->need_sync = false;
$this->is_ecshop = 1;
/* 初始化UC需要常量 */
if (!defined('UC_CONNECT') && isset($cfg['uc_id']) && isset($cfg['db_host']) && isset($cfg['db_user']) && isset($cfg['db_name']))
{
if(strpos($cfg['db_pre'], '`' . $cfg['db_name'] . '`') === 0)
{
$db_pre = $cfg['db_pre'];
}
else
{
$db_pre = '`' . $cfg['db_name'] . '`.' . $cfg['db_pre'];
}
define('UC_CONNECT', isset($cfg['uc_connect'])?$cfg['uc_connect']:'');
define('UC_DBHOST', isset($cfg['db_host'])?$cfg['db_host']:'');
define('UC_DBUSER', isset($cfg['db_user'])?$cfg['db_user']:'');
define('UC_DBPW', isset($cfg['db_pass'])?$cfg['db_pass']:'');
define('UC_DBNAME', isset($cfg['db_name'])?$cfg['db_name']:'');
define('UC_DBCHARSET', isset($cfg['db_charset'])?$cfg['db_charset']:'');
define('UC_DBTABLEPRE', $db_pre);
define('UC_DBCONNECT', '0');
define('UC_KEY', isset($cfg['uc_key'])?$cfg['uc_key']:'');
define('UC_API', isset($cfg['uc_url'])?$cfg['uc_url']:'');
define('UC_CHARSET', isset($cfg['uc_charset'])?$cfg['uc_charset']:'');
define('UC_IP', isset($cfg['uc_ip'])?$cfg['uc_ip']:'');
define('UC_APPID', isset($cfg['uc_id'])?$cfg['uc_id']:'');
define('UC_PPP', '20');
}
}
/**
* 用戶登錄函數
*
* @access public
* @param string $username
* @param string $password
*
* @return void
*/
function login($username, $password)
{
list($uid, $uname, $pwd, $email, $repeat) = uc_call("uc_user_login", array($username, $password));
$uname = addslashes($uname);
if($uid > 0)
{
//檢查用戶是否存在,不存在直接放入用戶表
$user_exist = $this->db->getOne("SELECT user_id FROM " . $GLOBALS['ecs']->table("users") . " WHERE user_name='$username'");
if (empty($user_exist))
{
$reg_date = time();
$ip = real_ip();
$password = $this->compile_password(array('password'=>$password));
$this->db->query('INSERT INTO ' . $GLOBALS['ecs']->table("users") . "(`user_id`, `email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES ('$uid', '$email', '$uname', '$password', '$reg_date', '$reg_date', '$ip')");
}
$this->set_session($uname);
$this->set_cookie($uname);
$this->ucdata = uc_call("uc_user_synlogin", array($uid));
return true;
}
elseif($uid == -1)
{
$this->error = ERR_INVALID_USERNAME;
return false;
}
elseif ($uid == -2)
{
$this->error = ERR_INVALID_PASSWORD;
return false;
}
else
{
return false;
}
}
/**
* 用戶退出
*
* @access public
* @param
*
* @return void
*/
function logout()
{
$this->set_cookie(); //清除cookie
$this->set_session(); //清除session
$this->ucdata = uc_call("uc_user_synlogout"); //同步退出
return true;
}
/*添加用戶*/
function add_user($username, $password, $email)
{
/* 檢測用戶名 */
if ($this->check_user($username))
{
$this->error = ERR_USERNAME_EXISTS;
return false;
}
$uid = uc_call("uc_user_register", array($username, $password, $email));
if ($uid <= 0)
{
if($uid == -1)
{
$this->error = ERR_INVALID_USERNAME;
return false;
}
elseif($uid == -2)
{
$this->error = ERR_USERNAME_NOT_ALLOW;
return false;
}
elseif($uid == -3)
{
$this->error = ERR_USERNAME_EXISTS;
return false;
}
elseif($uid == -4)
{
$this->error = ERR_INVALID_EMAIL;
return false;
}
elseif($uid == -5)
{
$this->error = ERR_EMAIL_NOT_ALLOW;
return false;
}
elseif($uid == -6)
{
$this->error = ERR_EMAIL_EXISTS;
return false;
}
else
{
return false;
}
}
else
{
//注冊成功,插入用戶表
$reg_date = time();
$ip = real_ip();
$password = $this->compile_password(array('password'=>$password));
$this->db->query('INSERT INTO ' . $GLOBALS['ecs']->table("users") . "(`user_id`, `email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES ('$uid', '$email', '$username', '$password', '$reg_date', '$reg_date', '$ip')");
return true;
}
}
/**
* 檢查指定用戶是否存在及密碼是否正確
*
* @access public
* @param string $username 用戶名
*
* @return int
*/
function check_user($username, $password = null)
{
$userdata = uc_call("uc_user_checkname", array($username));
if ($userdata == 1)
{
return false;
}
else
{
return true;
}
}
/**
* 檢測Email是否合法
*
* @access public
* @param string $email 郵箱
*
* @return blob
*/
function check_email($email)
{
if (!empty($email))
{
$email_exist = uc_call('uc_user_checkemail', array($email));
if ($email_exist == 1)
{
return false;
}
else
{
$this->error = ERR_EMAIL_EXISTS;
return true;
}
}
return true;
}
/* 編輯用戶信息 */
function edit_user($cfg, $forget_pwd = '0')
{
$real_username = $cfg['username'];
$cfg['username'] = addslashes($cfg['username']);
$set_str = '';
$valarr =array('email'=>'email', 'gender'=>'sex', 'bday'=>'birthday');
foreach ($cfg as $key => $val)
{
if ($key == 'username' || $key == 'password' || $key == 'old_password')
{
continue;
}
$set_str .= $valarr[$key] . '=' . "'$val',";
}
$set_str = substr($set_str, 0, -1);
if (!empty($set_str))
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -