Ejemplo n.º 1
0
 public function RegisterOp()
 {
     if (!Security::checkToken()) {
         showMessage('登录错误', '', '', 'error');
     }
     if (!checkSeccode($_POST['nchash'], $_POST['captcha'])) {
         showMessage('验证码错误', '', '', 'error');
     }
     $model_seller = Model('seller');
     $seller_info = $model_seller->getSellerInfo(array('seller_name' => $_POST['seller_name']));
     if ($seller_info) {
         $model_member = Model('member');
         $member_info = $model_member->infoMember(array('member_id' => $seller_info['member_id'], 'member_passwd' => md5($_POST['password'])));
         if ($member_info) {
             // 更新卖家登陆时间
             $model_seller->editSeller(array('last_login_time' => TIMESTAMP), array('seller_id' => $seller_info['seller_id']));
             $model_seller_group = Model('seller_group');
             $seller_group_info = $model_seller_group->getSellerGroupInfo(array('group_id' => $seller_info['seller_group_id']));
             $model_store = Model('store');
             $store_info = $model_store->getStoreInfoByID($seller_info['store_id']);
             $_SESSION['is_login'] = '******';
             $_SESSION['member_id'] = $member_info['member_id'];
             $_SESSION['member_name'] = $member_info['member_name'];
             $_SESSION['member_email'] = $member_info['member_email'];
             $_SESSION['is_buy'] = $member_info['is_buy'];
             $_SESSION['avatar'] = $member_info['member_avatar'];
             $_SESSION['grade_id'] = $store_info['grade_id'];
             $_SESSION['seller_id'] = $seller_info['seller_id'];
             $_SESSION['seller_name'] = $seller_info['seller_name'];
             $_SESSION['seller_is_admin'] = intval($seller_info['is_admin']);
             $_SESSION['store_id'] = intval($seller_info['store_id']);
             $_SESSION['store_name'] = $store_info['store_name'];
             $_SESSION['seller_limits'] = explode(',', $seller_group_info['limits']);
             if ($seller_info['is_admin']) {
                 $_SESSION['seller_group_name'] = '管理员';
             } else {
                 $_SESSION['seller_group_name'] = $seller_group_info['group_name'];
             }
             if (!$seller_info['last_login_time']) {
                 $seller_info['last_login_time'] = TIMESTAMP;
             }
             $_SESSION['seller_last_login_time'] = date('Y-m-d H:i', $seller_info['last_login_time']);
             $seller_menu = $this->getSellerMenuList($seller_info['is_admin'], explode(',', $seller_group_info['limits']));
             $_SESSION['seller_menu'] = $seller_menu['seller_menu'];
             $_SESSION['seller_function_list'] = $seller_menu['seller_function_list'];
             if (!empty($seller_info['seller_quicklink'])) {
                 $quicklink_array = explode(',', $seller_info['seller_quicklink']);
                 foreach ($quicklink_array as $value) {
                     $_SESSION['seller_quicklink'][$value] = $value;
                 }
             }
             $this->recordSellerLog('登录成功');
             showMessage('登录成功', 'index.php?act=seller_center');
         } else {
             showMessage('用户名密码错误', '', '', 'error');
         }
     } else {
         showMessage('用户名密码错误', '', '', 'error');
     }
 }
Ejemplo n.º 2
0
/**
 * 检测FORM是否提交
 * @param  $check_token 是否验证token
 * @param  $check_captcha 是否验证验证码
 * @param  $return_type 'alert','num'
 * @return boolean
 */
function chksubmit($check_token = false, $check_captcha = false, $return_type = 'alert')
{
    $submit = isset($_POST['form_submit']) ? $_POST['form_submit'] : $_GET['form_submit'];
    if ($submit != 'ok') {
        return false;
    }
    if ($check_token && !Security::checkToken()) {
        if ($return_type == 'alert') {
            showDialog('Token error!');
        } else {
            return -11;
        }
    }
    if ($check_captcha) {
        if (!checkSeccode($_POST['nchash'], $_POST['captcha'])) {
            setNcCookie('seccode' . $_POST['nchash'], '', -3600);
            if ($return_type == 'alert') {
                showDialog('验证码错误!');
            } else {
                return -12;
            }
        }
        setNcCookie('seccode' . $_POST['nchash'], '', -3600);
    }
    return true;
}
Ejemplo n.º 3
0
/**
 * 检测FORM是否提交
 * @param  $check_token 是否验证token
 * @param  $check_captcha 是否验证验证码
 * @param  $return_type 'alert','num'
 * @return boolean
 */
function chksubmit($check_token = false, $check_captcha = false, $return_type = 'alert')
{
    $submit = isset($_POST['form_submit']) ? $_POST['form_submit'] : $_GET['form_submit'];
    if ($submit != 'ok') {
        return false;
    }
    if ($check_token && !Security::checkToken()) {
        if ($return_type == 'alert') {
            showDialog('Token error!');
        } else {
            return -11;
        }
    }
    if ($check_captcha) {
        if (!function_exists('checkSeccode')) {
            import('function.seccode');
        }
        if (!checkSeccode($_POST['nchash'], $_POST['captcha'])) {
            if ($return_type == 'alert') {
                showDialog('Verification code error!');
            } else {
                return -12;
            }
        }
    }
    return true;
}
Ejemplo n.º 4
0
 /**
  * 登录操作
  *
  * @param
  * @return
  */
 public function indexOp()
 {
     Language::read("home_login_index");
     $lang = Language::getLangContent();
     /**
      * 实例化模型
      */
     $model_member = Model('member');
     /**
      * 检查登录状态
      */
     $model_member->checkloginMember();
     if (chksubmit()) {
         if (cookie('tm_login') == 5) {
             showDialog($lang['nc_common_op_repeat'], SiteUrl);
         }
         Security::checkToken();
         $obj_validate = new Validate();
         $obj_validate->validateparam = array(array("input" => $_POST["user_name"], "require" => "true", "message" => $lang['login_index_username_isnull']), array("input" => $_POST["password"], "require" => "true", "message" => $lang['login_index_password_isnull']), array("input" => $_POST["captcha"], "require" => C('captcha_status_login') ? "true" : "false", "message" => $lang['login_index_input_checkcode']));
         $error = $obj_validate->validate();
         if ($error != '') {
             showValidateError($error);
         } else {
             if (C('captcha_status_login')) {
                 if (!checkSeccode($_POST['nchash'], $_POST['captcha'])) {
                     showDialog($lang['login_index_wrong_checkcode']);
                 }
             }
             if (C('ucenter_status')) {
                 $model_ucenter = Model('ucenter');
                 $member_id = $model_ucenter->userLogin(trim($_POST['user_name']), trim($_POST['password']));
                 if (intval($member_id) == 0) {
                     if (cookie('tm_login') >= 6) {
                         showDialog($lang['nc_common_op_repeat']);
                     }
                     log_times('login');
                     showDialog($lang['login_index_login_again']);
                 }
             }
             $array = array();
             $array['member_name'] = trim($_POST['user_name']);
             $array['member_passwd'] = md5(trim($_POST['password']));
             $member_info = $model_member->infoMember($array);
             if (is_array($member_info) and !empty($member_info)) {
                 setNcCookie('tm_login', '', -3600);
                 if (!$member_info['member_state']) {
                     showDialog($lang['nc_notallowed_login']);
                 }
                 /**
                  * 登录时间更新
                  */
                 $update_info = array('member_login_num' => $member_info['member_login_num'] + 1, 'member_login_time' => time(), 'member_old_login_time' => $member_info['member_login_time'], 'member_login_ip' => getIp(), 'member_old_login_ip' => $member_info['member_login_ip']);
                 $model_member->updateMember($update_info, $member_info['member_id']);
                 /**
                  * 写入session
                  */
                 $_SESSION['is_login'] = '******';
                 $_SESSION['is_seller'] = intval($member_info['store_id']) == 0 ? '' : 1;
                 $_SESSION['member_id'] = $member_info['member_id'];
                 $_SESSION['member_name'] = $member_info['member_name'];
                 $_SESSION['member_email'] = $member_info['member_email'];
                 if ($GLOBALS['setting_config']['qq_isuse'] == 1 && trim($member_info['member_qqopenid'])) {
                     $_SESSION['openid'] = $member_info['member_qqopenid'];
                 }
                 if ($GLOBALS['setting_config']['sina_isuse'] == 1 && trim($member_info['member_sinaopenid'])) {
                     $_SESSION['slast_key']['uid'] = $member_info['member_sinaopenid'];
                 }
                 //查询店铺信息
                 if ($member_info['store_id'] > 0) {
                     $store_model = Model('store');
                     $store_info = $store_model->shopStore(array('store_id' => $member_info['store_id']));
                     if (is_array($store_info) && count($store_info) > 0) {
                         $_SESSION['store_id'] = $store_info['store_id'];
                         $_SESSION['store_name'] = $store_info['store_name'];
                         $_SESSION['grade_id'] = $store_info['grade_id'];
                     }
                 }
                 // cookie中的cart存入数据库
                 $this->mergecart();
                 //添加会员积分
                 if (C('points_isuse')) {
                     //一天内只有第一次登录赠送积分
                     if (trim(@date('Y-m-d', $member_info['member_login_time'])) != trim(date('Y-m-d'))) {
                         $points_model = Model('points');
                         $points_model->savePointsLog('login', array('pl_memberid' => $member_info['member_id'], 'pl_membername' => $member_info['member_name']), true);
                     }
                 }
                 $evaluate_model = Model('evaluate');
                 $evaluate_model->updateMemberStat($_SESSION['member_id'], $_SESSION['store_id']);
                 //统计更新:会员信用,卖家信用,店铺评分
                 $_POST['ref_url'] = strstr($_POST['ref_url'], 'logout') === false && !empty($_POST['ref_url']) ? $_POST['ref_url'] : 'index.php?act=member_snsindex';
                 if (C('ucenter_status')) {
                     $extrajs = $model_ucenter->outputLogin($member_info['member_id'], trim($_POST['password']));
                 } elseif (empty($_GET['inajax'])) {
                     @header('location: ' . $_POST['ref_url']);
                     exit;
                 }
                 $extrajs = empty($_GET['inajax']) ? $extrajs : $extrajs . '<script>CUR_DIALOG.close();</script>';
                 $_POST['ref_url'] = empty($_GET['inajax']) ? $_POST['ref_url'] : 'reload';
                 showDialog($lang['login_index_login_success'], $_POST['ref_url'], 'succ', $extrajs);
             } else {
                 log_times('login');
                 showDialog($lang['login_index_login_fail']);
             }
         }
     }
     $_pic = @unserialize(C('login_pic'));
     if ($_pic[0] != '') {
         Tpl::output('lpic', SiteUrl . '/' . ATTACH_PATH . '/login/' . $_pic[array_rand($_pic)]);
     } else {
         Tpl::output('lpic', SiteUrl . '/' . ATTACH_PATH . '/login/' . rand(1, 4) . '.jpg');
     }
     /**
      * 判断是否登录,如果登录,则跳转回首页
      */
     if ($_SESSION['is_login'] == '1') {
         @header('location: index.php');
         exit;
     }
     if (C('captcha_status_login')) {
         Tpl::output('nchash', substr(md5(SiteUrl . $_GET['act'] . $_GET['op']), 0, 8));
     }
     if (empty($_GET['ref_url'])) {
         $_GET['ref_url'] = getReferer();
     }
     Tpl::output('html_title', C('site_name') . ' - ' . $lang['login_index_login']);
     if ($_GET['inajax'] == 1) {
         Tpl::showpage('login_inajax', 'null_layout');
     } else {
         Tpl::showpage('login');
     }
 }
Ejemplo n.º 5
0
 /**
  * 不进行父类的登录验证,所以增加构造方法重写了父类的构造方法
  */
 public function __construct()
 {
     Language::read('common,layout,login');
     $lang = Language::getLangContent();
     if (chksubmit()) {
         /**
          * 检查提交
          */
         Security::checkToken();
         /**
          * 登录验证
          */
         $obj_validate = new Validate();
         $obj_validate->validateparam = array(array("input" => $_POST["user_name"], "require" => "true", "message" => $lang['login_index_username_null']), array("input" => $_POST["password"], "require" => "true", "message" => $lang['login_index_password_null']), array("input" => $_POST["captcha"], "require" => "true", "message" => $lang['login_index_checkcode_null']));
         $error = $obj_validate->validate();
         if ($error != '') {
             showMessage($lang['error'] . $error);
         } else {
             if (!checkSeccode($_POST['nchash'], $_POST['captcha'])) {
                 showMessage($lang['login_index_checkcode_wrong'] . $error);
             }
             /**
              * 验证登录
              * 目前为 都可以登录
              */
             $model_admin = Model('admin');
             $array = array();
             $array['admin_name'] = trim($_POST['user_name']);
             $array['admin_password'] = md5(trim($_POST['password']));
             $admin_info = $model_admin->infoAdmin($array);
             if (is_array($admin_info) and !empty($admin_info)) {
                 $login_array = array();
                 $login_array['name'] = $admin_info['admin_name'];
                 $login_array['id'] = $admin_info['admin_id'];
                 /**
                  * 判断是否有登录权限
                  * 暂时对admin_info进行赋值用来做权限验证
                  */
                 $this->setAdminInfo($login_array);
                 $this->checkPermission('login');
                 /**
                  * 加密 写入cookie
                  */
                 $authkey = md5(C('setup_date') . MD5_KEY);
                 setNcCookie('sys_key', encrypt(serialize($login_array), $authkey));
                 /**
                  * 登录时间更新
                  */
                 $update_info = array('admin_id' => $admin_info['admin_id'], 'admin_login_num' => $admin_info['admin_login_num'] + 1, 'admin_login_time' => time());
                 $model_admin->updateAdmin($update_info);
                 @header('Location: index.php');
                 exit;
             } else {
                 showMessage($lang['login_index_username_password_wrong'], 'index.php?act=login&op=login');
             }
         }
     }
     Tpl::output('nchash', substr(md5(SiteUrl . $_GET['act'] . $_GET['op']), 0, 8));
     Tpl::output('html_title', $lang['login_index_need_login']);
     Tpl::showpage('login', 'login_layout');
 }