Ejemplo n.º 1
0
 function DoSend()
 {
     if ($this->Config['seccode_enable'] == 1 && $this->Config['seccode_password']) {
         if (!ckseccode(@$_POST['seccode'])) {
             $this->Messager("验证码输入错误", -1);
         }
     } elseif ($this->Config['seccode_enable'] > 1 && $this->Config['seccode_password'] && $this->yxm_title && $this->Config['seccode_pub_key'] && $this->Config['seccode_pri_key']) {
         $YinXiangMa_response = jlogic('seccode')->CheckYXM(@$_POST['add_YinXiangMa_challenge'], @$_POST['add_YXM_level'][0], @$_POST['add_YXM_input_result']);
         if ($YinXiangMa_response != "true") {
             $this->Messager("验证码输入错误", -1);
         }
     }
     $to = trim($this->Post['to']);
     if (!$to) {
         $this->Messager('内容不能为空', -1);
     }
     if (false === strpos($to, '@')) {
         $member = jsg_get_member($to, 'nickname', 0);
         if (!$member) {
             $this->Messager('用户不存在,请返回重试或者与管理员取得联系。', -1);
         }
         $to = $member['email'];
     }
     $sql = "\r\n\t\tSELECT\r\n\t\t\tM.uid,M.username,M.nickname,M.email,MF.authstr\r\n\t\tFROM\r\n\t\t\t" . TABLE_PREFIX . 'members' . " M LEFT JOIN " . TABLE_PREFIX . 'memberfields' . " MF ON(M.uid=MF.uid)\r\n\t\tWHERE\r\n\t\t\tM.email='{$to}'";
     $query = $this->DatabaseHandler->Query($sql);
     $member = $query->GetRow();
     if ($member == false) {
         $this->Messager("用户已经不存在", -1);
     }
     $timestamp = time();
     if ($member['authstr']) {
         list($dateline, $operation, $idstring) = explode("\t", $member['authstr']);
         $inteval = 1800;
         if ($dateline + $inteval > $timestamp) {
             $this->Messager("邮件刚刚已经发送了,请稍候。如果长时间都没有收到邮件,请半小时后再发送一次或者与管理员取得联系。", -1, null);
         }
     }
     $idstring = random(7);
     $member['authstr'] = "{$timestamp}\t1\t{$idstring}";
     $result = jtable('memberfields')->update($member, array('uid' => $member['uid']));
     if (!$result) {
         jtable('memberfields')->insert($member, 0, 1);
     }
     $onlineip = $GLOBALS['_J']['client_ip'];
     $email_message = "您好:\r\n您收到这封邮件,是因为Email地址在{$this->Config['site_name']}上被登记为用户邮箱,\r\n且用户请求使用 Email 密码重置功能所致。\r\n----------------------------------------------------------------------\r\n重要:如果您没有提交密码重置的请求或不是{$this->Config['site_name']}的注册用户,请立即忽略\r\n并删除这封邮件。\r\n----------------------------------------------------------------------\r\n如果是您发起了找回密码申请,请在一天之内,通过点击下面的链接重置您的密码:\r\n{$this->Config['site_url']}/index.php?mod=get_password&code=reset&uid={$member['uid']}&id={$idstring}\r\n(如果上面不是链接形式,请将地址手工粘贴到浏览器地址栏再访问)\r\n\r\n上面的页面打开后,输入新的密码后提交,之后您即可使用新的密码登录\r\n{$this->Config['site_name']}了。您可以在个人设置中随时修改您的密码。\r\n\r\n本请求提交者的 IP 为 {$onlineip}\r\n此致\r\n{$this->Config['site_name']} 管理团队.\r\n{$this->Config['site_url']}";
     $subject = "[{$this->Config['site_name']}] 取回密码说明";
     send_mail($member['email'], $subject, $email_message, $this->Config['site_name'], $this->Config['site_admin_email'], array(), 3, $html = false);
     $email_head = $member['email'][0] . $member['email'][1] . $member['email'][2];
     $mail_service = strstr($member['email'], '@');
     $message = array("标题为\"<b>{$subject}</b>\"的邮件已经发送到您<b>\"{$email_head}******\"</b>开头且后缀为<b>\"{$mail_service}\"</b>的信箱中,请在 1 天之内修改您的密码。", "邮件发送可能会延迟几分钟,请耐心等待。", "部分邮件提供商会将本邮件当成垃圾邮件来处理,您或许可以进垃圾箱找到此邮件。");
     $this->Messager($message, null, null);
 }
Ejemplo n.º 2
0
 public function search_order()
 {
     $goods_name = jget("goods_name");
     $order_sn = jget("order_sn");
     $user_nickname = jget("user_nickname");
     $order_status = jget("order_state", 'int');
     if ($goods_name) {
         $goods_info = jtable('mall_goods')->info(array('name' => trim($goods_name)));
         $sql_str['goods_id'] = $goods_info['id'];
     }
     if ($order_sn) {
         $sql_str['sn'] = $order_sn;
     }
     if ($user_nickname) {
         $members = jsg_get_member(trim($user_nickname));
         $sql_str['uid'] = $members['uid'];
     }
     if ($order_status >= 0) {
         $sql_str['status'] = $order_status;
     }
     $sql_str['sql_order'] = 'id desc';
     $sql_str['page_num'] = 20;
     $list = jtable('mall_order')->get($sql_str);
     foreach ($list['list'] as $k => $one) {
         $list['list'][$k]['add_time'] = date('Y-m-d H:i:m', $one['add_time']);
     }
     include template('admin/mall_order_list');
 }
Ejemplo n.º 3
0
 function edit($oldnickname, $oldpw = '', $nickname = '', $password = '', $email = '', $username = '', $ignoreoldpw = 0, $inadmin = 0, $email_checked = 0)
 {
     $oldmember = array();
     if (!$ignoreoldpw) {
         $rets = $this->login_check($oldnickname, $oldpw);
         if ($rets['uid'] < 1) {
             return $rets['uid'] - 10;
         } else {
             $oldmember = $rets;
         }
     } else {
         $oldmember = jsg_get_member($oldnickname, 'nickname', 0);
     }
     $uc_password = $uc_email = '';
     $newmember = array();
     if ($nickname && $nickname != $oldmember['nickname'] && (true !== UCENTER || true === UCENTER_MODIFY_NICKNAME || $ignoreoldpw)) {
         if ($oldmember['nickname'] && !$GLOBALS['_J']['config']['edit_nickname_enable'] && !$ignoreoldpw) {
             return -8;
         }
         $ret = $this->checkname($nickname, 1, 0, $oldmember['uid']);
         if ($ret < 1) {
             return $ret;
         }
         $newmember['nickname'] = $nickname;
     }
     if ($password) {
         $salt = $oldmember['salt'] ? $oldmember['salt'] : jsg_member_salt();
         $password_hash = jsg_member_password($password, $salt);
         if ($password_hash != $oldmember['password']) {
             $newmember['password'] = $password_hash;
             $newmember['salt'] = $salt;
         }
         $uc_password = $password;
     }
     if ($username && $username != $oldmember['username'] && (!$oldmember['username'] || is_numeric($oldmember['username']) || $ignoreoldpw)) {
         $ret = $this->checkname($username, 0, 0, $oldmember['uid']);
         if ($ret < 1) {
             return $ret;
         }
         $newmember['username'] = $username;
     }
     if ($email && $email != $oldmember['email']) {
         $ret = $this->checkemail($email);
         if ($ret < 1) {
             return $ret;
         }
         if ($GLOBALS['_J']['config']['reg_email_verify'] && !$inadmin) {
             $newmember['role_id'] = $oldmember['role_id'] && $oldmember['role_id'] != $GLOBALS['_J']['config']['no_verify_email_role_id'] ? $oldmember['role_id'] : $GLOBALS['_J']['config']['no_verify_email_role_id'];
             jfunc('my');
             my_member_validate($oldmember['uid'], $email, (int) ($oldmember['role_id'] != $GLOBALS['_J']['config']['no_verify_email_role_id'] ? $oldmember['role_id'] : $GLOBALS['_J']['config']['normal_default_role_id']));
         }
         if (!$inadmin && $oldmember['email_checked'] > 0) {
             $newmember['email2'] = $email;
         } else {
             $newmember['email'] = $email;
         }
         $uc_email = $email;
     }
     if ($email && $inadmin) {
         $newmember['email_checked'] = $email_checked;
         if ($oldmember['role_id'] == '5' && $email_checked > 0) {
             $newmember['role_id'] = '3';
         }
     }
     if ($inadmin && $oldmember['email_checked'] > 0 && $email_checked == 0) {
         $newmember['email2'] = '';
     }
     if (true === UCENTER && $oldmember['ucuid'] > 0 && ($uc_password || $uc_email)) {
         $ret = uc_user_edit($oldnickname, $oldpw, $uc_password, $uc_email, $ignoreoldpw);
         if ($ret < 0 && -7 != $ret && -8 != $ret) {
             return $ret;
         }
     }
     if ($newmember) {
         $ret = jtable('members')->update($newmember, $oldmember['uid']);
     } else {
         return -7;
     }
     #if NEDU
     if (defined('NEDU_MOYO')) {
         ndata('sync')->member()->modify($oldmember['uid']);
     }
     #endif
     return 1;
 }