Server : Apache
System : Linux iZ2vcgyutqttsd1p850kl8Z 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/saimikebio.com/mobile/include/modules/integrates/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/saimikebio.com/mobile/include/modules/integrates/ucenter.php
<?php



/**

 * UCenter 会员数据处理类

 * ============================================================================

 * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。

 * 网站地址: http://www.ecshop.com

 * ----------------------------------------------------------------------------

 * 这是一个免费开源的软件;这意味着您可以在不用于商业目的的前提下对程序代码

 * 进行修改、使用和再发布。

 * ============================================================================

 * $Author: liubo $

 * $Id: ucenter.php 17217 2011-01-19 06:29:08Z liubo $

 */



if (!defined('IN_ECTOUCH'))

{

    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 . 'include/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, $remember = NULL)
    {

        list($uid, $uname, $pwd, $email, $repeat) = uc_call("uc_user_login", array($username, $password));

        $uname = addslashes($uname);



        if($uid > 0)

        {

            //检查用户是否存在,不存在直接放入用户表

            $result = $this->db->getRow("SELECT user_id,ec_salt FROM " . $GLOBALS['ecs']->table("users") . " WHERE user_name='$username'");

            $name_exist =$result['user_id'];

            if(empty($result['ec_salt']))

            {

                $user_exist = $this->db->getOne("SELECT user_id FROM " . $GLOBALS['ecs']->table("users") . " WHERE user_name='$username' AND password = '" . MD5($password) ."'");

                if(!empty($user_exist))

                {

                    $ec_salt=rand(1,9999);

                    $this->db->query('UPDATE ' . $GLOBALS['ecs']->table("users") . "SET `password`='".MD5(MD5($password). $ec_salt)."',`ec_salt`='". $ec_salt."' WHERE user_id = '" . $uid . "'");



                }

            }

            else

            {

                $user_exist = $this->db->getOne("SELECT user_id FROM " . $GLOBALS['ecs']->table("users") . " WHERE user_name='$username' AND password = '" . MD5(MD5($password). $result['ec_salt'])."'");

            }







            if (empty($user_exist))

            {

                if(empty($name_exist))

                {

                    $reg_date = time();

                    $ip = real_ip();

                    $password = $this->compile_password(array('password'=>$password));

                    $this->db->query('INSERT INTO ' . $GLOBALS['ecs']->table("users") . "(`email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES ('$email', '$uname', '$password', '$reg_date', '$reg_date', '$ip')");

                }

                else 

                {

                    if(empty($result['ec_salt']))

                    {

                         $result['ec_salt']=0;

                    }

                    $this->db->query('UPDATE ' . $GLOBALS['ecs']->table("users") . "SET `password`='".MD5(MD5($password). $result['ec_salt'])."',`ec_salt`='". $result['ec_salt']."' WHERE user_id = '" . $uid . "'");

                }

            }

            $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, $gender = -1, $bday = 0, $reg_date = 0, $md5password = '')
    {

        /* 检测用户名 */

        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") . "(`email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES ('$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))

        {

            $sql = "UPDATE " . $GLOBALS['ecs']->table('users') . " SET $set_str  WHERE user_name = '$cfg[username]'";

            $GLOBALS['db']->query($sql);

            $flag  = true;

        }



        if (!empty($cfg['email']))

        {

            $ucresult = uc_call("uc_user_edit", array($cfg['username'], '', '', $cfg['email'], 1));

            if ($ucresult > 0 )

            {

                $flag = true;

            }

            elseif($ucresult == -4)

            {

                //echo 'Email 格式有误';

                $this->error = ERR_INVALID_EMAIL;



                return false;

            }

            elseif($ucresult == -5)

            {

                //echo 'Email 不允许注册';

                $this->error = ERR_INVALID_EMAIL;



                return false;

            }

            elseif($ucresult == -6)

            {

                //echo '该 Email 已经被注册';

                $this->error = ERR_EMAIL_EXISTS;



                return false;

            }

            elseif ($ucresult < 0 )

            {

                return false;

            }

        }

        if (!empty($cfg['old_password']) && !empty($cfg['password']) && $forget_pwd == 0)

        {

            $ucresult = uc_call("uc_user_edit", array($real_username, $cfg['old_password'], $cfg['password'], ''));

            if ($ucresult > 0 )

            {

                return true;

            }

            else

            {

                $this->error = ERR_INVALID_PASSWORD;

                return false;

            }

        }

        elseif (!empty($cfg['password']) && $forget_pwd == 1)

        {

            $ucresult = uc_call("uc_user_edit", array($real_username, '', $cfg['password'], '', '1'));

            if ($ucresult > 0 )

            {

                $flag = true;

            }

        }



        return true;

    }



    /**

     *  获取指定用户的信息

     *

     * @access  public

     * @param

     *

     * @return void

     */

    function get_profile_by_name($username)

    {

        //$username = addslashes($username);



        $sql = "SELECT user_id, user_name, email, sex, reg_time FROM " . $GLOBALS['ecs']->table('users') . " WHERE user_name='$username'";

        $row = $this->db->getRow($sql);

        return $row;

    }



    /**

     *  检查cookie是正确,返回用户名

     *

     * @access  public

     * @param

     *

     * @return void

     */

    function check_cookie()

    {

        return '';

    }



    /**

     *  根据登录状态设置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;

        }

    }



    /**

     *  设置cookie

     *

     * @access  public

     * @param

     *

     * @return void

     */

	function set_cookie ($username="", $remember = NULL)

    {

        if (empty($username))

        {

            /* 摧毁cookie */

            $time = time() - 3600;

            setcookie("ECS[user_id]",  '', $time, $this->cookie_path);            

            setcookie("ECS[password]", '', $time, $this->cookie_path);

        }

        else

        {

            /* 设置cookie */

            $time = time() + 3600 * 24 * 30;



            setcookie("ECS[username]", stripslashes($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  public

     * @param

     *

     * @return void

     */

    function get_profile_by_id($id)

    {

        $sql = "SELECT user_id, user_name, email, sex, birthday, reg_time FROM " . $GLOBALS['ecs']->table('users') . " WHERE user_id='$id'";

        $row = $this->db->getRow($sql);



        return $row;

    }



    function get_user_info($username)

    {

        return $this->get_profile_by_name($username);

    }



    /**

     * 删除用户

     *

     * @access  public

     * @param

     *

     * @return void

     */

    function remove_user($id)

    {

        if (is_array($id))

        {

            $post_id = array();

            foreach ($id as $val)

            {

                $post_id[] = $val;

            }

        }

        else

        {

            $post_id = $id;

        }



        /* 如果需要同步或是ecshop插件执行这部分代码 */

        $sql = "SELECT user_id FROM "  . $GLOBALS['ecs']->table('users') . " WHERE ";

        $sql .= (is_array($post_id)) ? db_create_in($post_id, 'user_name') : "user_name='". $post_id . "' LIMIT 1";

        $col = $GLOBALS['db']->getCol($sql);



        if ($col)

        {

            $sql = "UPDATE " . $GLOBALS['ecs']->table('users') . " SET parent_id = 0 WHERE " . db_create_in($col, 'parent_id'); //将删除用户的下级的parent_id 改为0

            $GLOBALS['db']->query($sql);

            $sql = "DELETE FROM " . $GLOBALS['ecs']->table('users') . " WHERE " . db_create_in($col, 'user_id'); //删除用户

            $GLOBALS['db']->query($sql);

            /* 删除用户订单 */

            $sql = "SELECT order_id FROM " . $GLOBALS['ecs']->table('order_info') . " WHERE " . db_create_in($col, 'user_id');

            $GLOBALS['db']->query($sql);

            $col_order_id = $GLOBALS['db']->getCol($sql);

            if ($col_order_id)

            {

                $sql = "DELETE FROM " . $GLOBALS['ecs']->table('order_info') . " WHERE " . db_create_in($col_order_id, 'order_id');

                $GLOBALS['db']->query($sql);

                $sql = "DELETE FROM " . $GLOBALS['ecs']->table('order_goods') . " WHERE " . db_create_in($col_order_id, 'order_id');

                $GLOBALS['db']->query($sql);

            }



            $sql = "DELETE FROM " . $GLOBALS['ecs']->table('booking_goods') . " WHERE " . db_create_in($col, 'user_id'); //删除用户

            $GLOBALS['db']->query($sql);

            $sql = "DELETE FROM " . $GLOBALS['ecs']->table('collect_goods') . " WHERE " . db_create_in($col, 'user_id'); //删除会员收藏商品

            $GLOBALS['db']->query($sql);

            $sql = "DELETE FROM " . $GLOBALS['ecs']->table('feedback') . " WHERE " . db_create_in($col, 'user_id'); //删除用户留言

            $GLOBALS['db']->query($sql);

            $sql = "DELETE FROM " . $GLOBALS['ecs']->table('user_address') . " WHERE " . db_create_in($col, 'user_id'); //删除用户地址

            $GLOBALS['db']->query($sql);

            $sql = "DELETE FROM " . $GLOBALS['ecs']->table('user_bonus') . " WHERE " . db_create_in($col, 'user_id'); //删除用户红包

            $GLOBALS['db']->query($sql);

            $sql = "DELETE FROM " . $GLOBALS['ecs']->table('user_account') . " WHERE " . db_create_in($col, 'user_id'); //删除用户帐号金额

            $GLOBALS['db']->query($sql);

            $sql = "DELETE FROM " . $GLOBALS['ecs']->table('tag') . " WHERE " . db_create_in($col, 'user_id'); //删除用户标记

            $GLOBALS['db']->query($sql);

            $sql = "DELETE FROM " . $GLOBALS['ecs']->table('account_log') . " WHERE " . db_create_in($col, 'user_id'); //删除用户日志

            $GLOBALS['db']->query($sql);

        }



        if (isset($this->ecshop) && $this->ecshop)

        {

            /* 如果是ecshop插件直接退出 */

            return;

        }



        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('users') . " WHERE ";

        if (is_array($post_id))

        {

            $sql .= db_create_in($post_id, 'user_name');

        }

        else

        {

            $sql .= "user_name='" . $post_id . "' LIMIT 1";

        }



        $this->db->query($sql);

    }



    /**

     *  获取论坛有效积分及单位

     *

     * @access  public

     * @param

     *

     * @return void

     */

    function get_points_name ()

    {

        return 'ucenter';

    }

}



?>