Ejemplo n.º 1
0
 /**
  * 初始化,未启用内存保存时默认使用lock表存储
  *
  * @param unknown_type $type
  */
 private static function init($type)
 {
     if (C('cache.type') != 'file') {
         self::$lock = Cache::getInstance(C('cache.type'));
     } else {
         self::$lock = new lock();
     }
     if (!isset(self::$processid[$type])) {
         $ip = sprintf('%u', ip2long(getIp()));
         self::$processid[$type] = str_pad($ip, 10, '0') . self::parsekey($type);
         self::$lockid[$type] = str_pad($ip, 11, '0') . self::parsekey($type);
     }
 }
Ejemplo n.º 2
0
 /**
  * 登录操作
  *
  */
 public function indexOp()
 {
     $lang = Language::getLangContent();
     $model_member = Model('member');
     //检查登录状态
     $model_member->checkloginMember();
     $script = "document.getElementsByName('codeimage')[0].src='" . APP_SITE_URL . "/index.php?act=seccode&op=makecode&nchash='+NC_HASH+'&t=' + Math.random();";
     $result = chksubmit(true, true, 'num');
     if ($result !== false) {
         if ($result === -11) {
             showDialog(L('login_index_login_illegal'), '', 'error', $script, 2);
         } elseif ($result === -12) {
             showDialog(L('login_index_wrong_checkcode'), '', 'error', $script, 2);
         }
         if (processClass::islock('login')) {
             showDialog(L('login_index_op_repeat'), APP_SITE_URL);
         }
         $array = array();
         $array['member_name'] = $_POST['user_name'];
         $array['member_passwd'] = md5($_POST['password']);
         $member_info = $model_member->infoMember($array);
         if (is_array($member_info) and !empty($member_info)) {
             if (!$member_info['member_state']) {
                 showDialog($lang['login_index_account_stop']);
             }
         } else {
             processClass::addprocess('login');
             showDialog($lang['login_index_login_fail'], '', 'error', $script, 2);
         }
         $model_member->createSession($member_info);
         processClass::clear('login');
         showDialog(L('login_index_login_success'), 'reload', 'succ', '', 2);
     }
     if (empty($_GET['ref_url'])) {
         $_GET['ref_url'] = getReferer();
     }
     Tpl::output('html_title', C('site_name') . ' - ' . $lang['login_index_login']);
     Tpl::output('nchash', getNchash());
     if ($_GET['inajax'] == 1) {
         Tpl::showpage('login_inajax', 'null_layout');
     } else {
         return false;
     }
 }
Ejemplo n.º 3
0
 /**
  * 不进行父类的登录验证,所以增加构造方法重写了父类的构造方法
  */
 public function __construct()
 {
     Language::read('common,layout,login');
     $result = chksubmit(true, true, 'num');
     if ($result) {
         if ($result === -11) {
             showMessage('非法请求');
         } elseif ($result === -12) {
             showMessage(L('login_index_checkcode_wrong'));
         }
         if (processClass::islock('admin')) {
             showMessage('您的操作过于频繁,请稍后再试');
         }
         //登录验证
         $obj_validate = new Validate();
         $obj_validate->validateparam = array(array("input" => $_POST["user_name"], "require" => "true", "message" => L('login_index_username_null')), array("input" => $_POST["password"], "require" => "true", "message" => L('login_index_password_null')), array("input" => $_POST["captcha"], "require" => "true", "message" => L('login_index_checkcode_null')));
         $error = $obj_validate->validate();
         if ($error != '') {
             showMessage(L('error') . $error);
         } else {
             $model_admin = Model('admin');
             $array = array();
             $array['admin_name'] = $_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)) {
                 $this->systemSetKey(array('name' => $admin_info['admin_name'], 'id' => $admin_info['admin_id'], 'gid' => $admin_info['admin_gid'], 'sp' => $admin_info['admin_is_super']));
                 $update_info = array('admin_id' => $admin_info['admin_id'], 'admin_login_num' => $admin_info['admin_login_num'] + 1, 'admin_login_time' => TIMESTAMP);
                 $model_admin->updateAdmin($update_info);
                 $this->log(L('nc_login'), 1);
                 processClass::clear('admin');
                 @header('Location: index.php');
                 exit;
             } else {
                 processClass::addprocess('admin');
                 showMessage(L('login_index_username_password_wrong'), 'index.php?act=login&op=login');
             }
         }
     }
     Tpl::output('html_title', $lang['login_index_need_login']);
     Tpl::showpage('login', 'login_layout');
 }
Ejemplo n.º 4
0
 /**
  * 商品咨询添加
  */
 public function save_consultajaxOp()
 {
     //检查是否可以评论
     if (!C('guest_comment') && !$_SESSION['member_id']) {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('goods_index_goods_noallow')));
         die;
     }
     $goods_id = intval($_GET['goods_id']);
     if ($goods_id <= 0) {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('wrong_argument')));
         die;
     }
     //咨询内容的非空验证
     if (trim($_GET['goods_content']) == "") {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('goods_index_input_consult')));
         die;
     }
     $_POST = $_GET;
     //表单验证
     $result = chksubmit(true, C('captcha_status_goodsqa'), 'num');
     if (!$result) {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('invalid_request')));
         die;
     } elseif ($result === -11) {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('invalid_request')));
         die;
     } elseif ($result === -12) {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('wrong_checkcode')));
         die;
     }
     if (processClass::islock('commit')) {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('nc_common_op_repeat')));
         die;
     } else {
         processClass::addprocess('commit');
     }
     if ($_SESSION['member_id']) {
         //查询会员信息
         $member_model = Model('member');
         $member_info = $member_model->infoMember(array('member_id' => "{$_SESSION['member_id']}"));
         if (empty($member_info) || $member_info['is_allowtalk'] == 0) {
             echo json_encode(array('done' => 'false', 'msg' => Language::get('goods_index_goods_noallow')));
             die;
         }
     }
     //判断商品编号的存在性和合法性
     $goods = Model('goods');
     $goods_info = array();
     $goods_info = $goods->getGoodsInfo(array('goods_id' => $goods_id));
     if (empty($goods_info)) {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('goods_index_goods_not_exists')));
         die;
     }
     //判断是否是店主本人
     if ($_SESSION['store_id'] && $goods_info['store_id'] == $_SESSION['store_id']) {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('goods_index_consult_store_error')));
         die;
     }
     //检查店铺状态
     $store_model = Model('store');
     $store_info = $store_model->getStoreInfoByID($goods_info['store_id']);
     if ($store_info['store_state'] == '0' || intval($store_info['store_state']) == '2' || intval($store_info['store_end_time']) != 0 && $store_info['store_end_time'] <= time()) {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('goods_index_goods_store_closed')));
         die;
     }
     //接收数据并保存
     $input = array();
     $input['goods_id'] = $goods_id;
     $input['cgoods_name'] = $goods_info['goods_name'];
     $input['member_id'] = intval($_SESSION['member_id']) > 0 ? $_SESSION['member_id'] : 0;
     $input['cmember_name'] = $_SESSION['member_name'] ? $_SESSION['member_name'] : '';
     $input['store_id'] = $store_info['store_id'];
     $input['email'] = $_GET['email'];
     if (strtoupper(CHARSET) == 'GBK') {
         $input['consult_content'] = Language::getGBK($_GET['goods_content']);
     } else {
         $input['consult_content'] = $_GET['goods_content'];
     }
     $input['isanonymous'] = $_GET['hide_name'] == 'hide' ? 1 : 0;
     $consult_model = Model('consult');
     if ($consult_model->addConsult($input)) {
         echo json_encode(array('done' => 'true'));
         die;
     } else {
         echo json_encode(array('done' => 'false', 'msg' => Language::get('goods_index_consult_fail')));
         die;
     }
 }
Ejemplo n.º 5
0
 /**
  * 不进行父类的登录验证,所以增加构造方法重写了父类的构造方法
  */
 public function __construct()
 {
     Language::read('common,layout,login');
     $result = chksubmit(true, true, 'num');
     if ($result) {
         if ($result === -11) {
             showMessage('非法请求');
         } elseif ($result === -12) {
             showMessage(L('login_index_checkcode_wrong'));
         }
         if (processClass::islock('admin')) {
             showMessage('您的操作过于频繁,请稍后再试');
         }
         //登录验证
         $obj_validate = new Validate();
         $obj_validate->validateparam = array(array("input" => $_POST["user_name"], "require" => "true", "message" => L('login_index_username_null')), array("input" => $_POST["password"], "require" => "true", "message" => L('login_index_password_null')), array("input" => $_POST["captcha"], "require" => "true", "message" => L('login_index_checkcode_null')));
         $error = $obj_validate->validate();
         if ($error != '') {
             showMessage(L('error') . $error);
         } else {
             $model_admin = Model('admin');
             $array = array();
             $array['admin_name'] = $_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)) {
                 $this->systemSetKey(array('name' => $admin_info['admin_name'], 'id' => $admin_info['admin_id'], 'gid' => $admin_info['admin_gid'], 'sp' => $admin_info['admin_is_super']));
                 $update_info = array('admin_id' => $admin_info['admin_id'], 'admin_login_num' => $admin_info['admin_login_num'] + 1, 'admin_login_time' => TIMESTAMP);
                 $model_admin->updateAdmin($update_info);
                 $_SESSION['store_id'] = $admin_info['store_id'];
                 $_SESSION['is_login'] = '******';
                 //获取前台商家登陆信息并存入Session:以便添加商品:
                 $model_seller = Model('seller');
                 $seller_info = $model_seller->getSellerInfo(array('seller_name' => $_POST['user_name']));
                 if ($seller_info) {
                     $model_member = Model('member');
                     $member_info = $model_member->infoMember(array('member_id' => $seller_info['member_id']));
                     if ($member_info) {
                         // 更新卖家登陆时间
                         $update_sell_info = array('seller_id' => $seller_info['seller_id'], 'last_login_time' => TIMESTAMP);
                         $model_admin->updateSeller($update_sell_info);
                         // $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');
                 }
                 $this->log(L('nc_login'), 1);
                 processClass::clear('admin');
                 @header('Location: index.php');
                 exit;
             } else {
                 processClass::addprocess('admin');
                 showMessage(L('login_index_username_password_wrong'), 'index.php?act=login&op=login');
             }
         }
     }
     Tpl::output('html_title', $lang['login_index_need_login']);
     Tpl::showpage('login', 'login_layout');
 }
Ejemplo n.º 6
0
 /**
  * 找回密码的发邮件处理
  */
 public function find_passwordOp()
 {
     Language::read('home_login_register');
     $lang = Language::getLangContent();
     $result = chksubmit(true, true, 'num');
     if (!$result) {
         showDialog('非法提交');
     } elseif ($result === -11) {
         showDialog('非法提交');
     } elseif ($result === -12) {
         showDialog('验证码错误');
     }
     if (empty($_POST['username'])) {
         showDialog($lang['login_password_input_username']);
     }
     if (processClass::islock('forget')) {
         showDialog($lang['nc_common_op_repeat'], 'reload');
     }
     $member_model = Model('member');
     $member = $member_model->infoMember(array('member_name' => $_POST['username']));
     if (empty($member) or !is_array($member)) {
         processClass::addprocess('forget');
         showDialog($lang['login_password_username_not_exists'], 'reload');
     }
     if (empty($_POST['email'])) {
         showDialog($lang['login_password_input_email'], 'reload');
     }
     if (strtoupper($_POST['email']) != strtoupper($member['member_email'])) {
         processClass::addprocess('forget');
         showDialog($lang['login_password_email_not_exists'], 'reload');
     }
     processClass::clear('forget');
     //产生密码
     $new_password = random(15);
     if (!$member_model->updateMember(array('member_passwd' => md5($new_password)), $member['member_id'])) {
         showDialog($lang['login_password_email_fail'], 'reload');
     }
     $cron_data = array('exetime' => TIMESTAMP, 'exeid' => $member['member_id'], 'type' => 2, 'code' => 'email_touser_find_password', 'content' => array(array('site_name' => $GLOBALS['setting_config']['site_name'], 'site_url' => SHOP_SITE_URL, 'user_name' => $_POST['username'], 'new_password' => $new_password), false));
     $this->addcron($cron_data, true);
     $extend_js = "<script src='" . SHOP_SITE_URL . "/index.php?act=login&op=send_email'></script>";
     showMessage($lang['login_password_email_success'] . $extend_js, SHOP_SITE_URL);
 }
Ejemplo n.º 7
0
 /**
  * 找回密码的发邮件处理
  */
 public function find_passwordOp()
 {
     Language::read('home_login_register');
     $lang = Language::getLangContent();
     $result = chksubmit(true, true, 'num');
     if ($result !== false) {
         if ($result === -11) {
             showDialog('非法提交');
         } elseif ($result === -12) {
             showDialog('验证码错误');
         }
     }
     if (empty($_POST['username'])) {
         showDialog($lang['login_password_input_username']);
     }
     if (processClass::islock('forget')) {
         showDialog($lang['nc_common_op_repeat'], 'reload');
     }
     $member_model = Model('member');
     $member = $member_model->infoMember(array('member_name' => $_POST['username']));
     if (empty($member) or !is_array($member)) {
         processClass::addprocess('forget');
         showDialog($lang['login_password_username_not_exists'], 'reload');
     }
     if (empty($_POST['email'])) {
         showDialog($lang['login_password_input_email'], 'reload');
     }
     if (strtoupper($_POST['email']) != strtoupper($member['member_email'])) {
         processClass::addprocess('forget');
         showDialog($lang['login_password_email_not_exists'], 'reload');
     }
     processClass::clear('forget');
     //产生密码
     $new_password = random(15);
     //if(!($member_model->updateMember(array('member_passwd'=>md5($new_password)),$member['member_id']))){
     if (!$member_model->editMember(array('member_id' => $member['member_id']), array('member_passwd' => md5($new_password)))) {
         showDialog($lang['login_password_email_fail'], 'reload');
     } else {
         if (C('ucenter_status')) {
             /**
              * Ucenter处理
              */
             $model_ucenter = Model('ucenter');
             $model_ucenter->userEdit(array('login_name' => $_POST['username'], '', 'password' => trim($new_password)));
         }
     }
     $model_tpl = Model('mail_templates');
     $tpl_info = $model_tpl->getTplInfo(array('code' => 'reset_pwd'));
     $param = array();
     $param['site_name'] = C('site_name');
     $param['user_name'] = $_POST['username'];
     $param['new_password'] = $new_password;
     $param['site_url'] = SHOP_SITE_URL;
     $subject = ncReplaceText($tpl_info['title'], $param);
     $message = ncReplaceText($tpl_info['content'], $param);
     $email = new Email();
     $result = $email->send_sys_email($_POST["email"], $subject, $message);
     showDialog('新密码已经发送至您的邮箱,请尽快登录并更改密码!', '', 'succ', '', 5);
 }
Ejemplo n.º 8
0
 /**
  * 找回密码的发邮件处理
  */
 public function find_passwordOp()
 {
     Language::read('home_login_register');
     $lang = Language::getLangContent();
     $result = chksubmit(true, true, 'num');
     if (!$result) {
         showDialog('非法提交');
     } elseif ($result === -11) {
         showDialog('非法提交');
     } elseif ($result === -12) {
         showDialog('验证码错误');
     }
     if (empty($_POST['username'])) {
         showDialog($lang['login_password_input_username']);
     }
     if (processClass::islock('forget')) {
         showDialog($lang['nc_common_op_repeat'], 'reload');
     }
     $member_model = Model('member');
     $member = $member_model->infoMember(array('member_name' => $_POST['username']));
     if (empty($member) or !is_array($member)) {
         processClass::addprocess('forget');
         showDialog($lang['login_password_username_not_exists'], 'reload');
     }
     if (empty($_POST['email'])) {
         showDialog($lang['login_password_input_email'], 'reload');
     }
     if (strtoupper($_POST['email']) != strtoupper($member['member_email'])) {
         processClass::addprocess('forget');
         showDialog($lang['login_password_email_not_exists'], 'reload');
     }
     processClass::clear('forget');
     //产生密码
     $new_password = random(15);
     if (!$member_model->updateMember(array('member_passwd' => md5($new_password)), $member['member_id'])) {
         showDialog($lang['login_password_email_fail'], 'reload');
     }
     /**
      * 发送邮件
      */
     $result = $this->send_notice($member['member_id'], 'email_touser_find_password', array('site_name' => $GLOBALS['setting_config']['site_name'], 'site_url' => SHOP_SITE_URL, 'user_name' => $_POST['username'], 'new_password' => $new_password), false);
     if ($result) {
         showDialog($lang['login_password_email_success'], SHOP_SITE_URL, 'succ');
     } else {
         showMessage($lang['login_password_email_fail'], '', 'html', 'error');
     }
 }