Beispiel #1
0
 /**
  * 产生验证码
  *
  */
 public function makecodeOp()
 {
     $refererhost = parse_url($_SERVER['HTTP_REFERER']);
     $refererhost['host'] .= !empty($refererhost['port']) ? ':' . $refererhost['port'] : '';
     $seccode = makeSeccode($_GET['nchash']);
     @header("Expires: -1");
     @header("Cache-Control: no-store, private, post-check=0, pre-check=0, max-age=0", FALSE);
     @header("Pragma: no-cache");
     echo \Shopnc\Lib::imager()->createCaptcha($seccode, 90, 34);
 }
Beispiel #2
0
 /**
  * 绑定邮箱
  * @return [type] [description]
  */
 public function modify_emailOp()
 {
     $model_member = Model('member');
     $obj_validate = new Validate();
     $obj_validate->validateparam = array(array("input" => $_POST["email"], "require" => "true", 'validator' => 'email', "message" => '请正确填写邮箱地址'));
     $error = $obj_validate->validate();
     if ($error != '') {
         output_error($error);
     }
     if ($this->member_info['member_email_bind'] == 1) {
         if (empty($_POST['captcha'])) {
             output_error("请正确填写手机验证码");
         }
         $result_checkcode = self::checkCode(intval($_POST['captcha']));
         if ($result_checkcode['result'] != 'succ') {
             output_error($result_checkcode['message']);
         }
     }
     //发送频率验证
     $member_common_info = $model_member->getMemberCommonInfo(array('member_id' => $this->member_info['member_id']));
     if (!empty($member_common_info['send_email_time']) && TIMESTAMP - $member_common_info['send_email_time'] < 58) {
         output_error('请60秒以后再次发送邮件');
     }
     $condition = array();
     $condition['member_email'] = $_POST['email'];
     $condition['member_id'] = array('neq', $this->member_info['member_id']);
     $member_info = $model_member->getMemberInfo($condition, 'member_id');
     if ($member_info) {
         output_error('该邮箱已被使用');
     }
     $data = array();
     $data['member_email'] = $_POST['email'];
     $data['member_email_bind'] = 0;
     $update = $model_member->editMember(array('member_id' => $this->member_info['member_id']), $data);
     if (!$update) {
         output_error('系统发生错误,如有疑问请与管理员联系');
     }
     $seed = random(6);
     $data = array();
     $data['auth_code'] = $seed;
     $data['send_acode_time'] = TIMESTAMP;
     $data['send_email_time'] = TIMESTAMP;
     $data['send_acode_times'] = array('exp', 'send_acode_times+1');
     $update = $model_member->editMemberCommon($data, array('member_id' => $this->member_info['member_id']));
     if (!$update) {
         output_error('系统发生错误,如有疑问请与管理员联系');
     }
     $uid = base64_encode(encrypt($this->member_info['member_id'] . ' ' . $_POST["email"]));
     $verify_url = SHOP_SITE_URL . '/index.php?act=login&op=bind_email&uid=' . $uid . '&hash=' . md5($seed);
     $model_tpl = Model('mail_templates');
     $tpl_info = $model_tpl->getTplInfo(array('code' => 'bind_email'));
     $param = array();
     $param['site_name'] = C('site_name');
     $param['user_name'] = $this->member_info['member_name'];
     $param['verify_url'] = $verify_url;
     $subject = ncReplaceText($tpl_info['title'], $param);
     $message = ncReplaceText($tpl_info['content'], $param);
     \Shopnc\Lib::messager()->send($_POST["email"], $subject, $message);
     output_data("验证邮件已经发送至您的邮箱,请于24小时内登录邮箱并完成验证!如果您始终未收到邮件,请于60秒后重新发送" . $verify_url);
 }
Beispiel #3
0
 /**
  * 找回密码的发邮件处理
  */
 public function send_emailOp()
 {
     $email = $_POST['email'];
     if (empty($email)) {
         output_error('邮箱不能为空');
     }
     $model_member = Model('member');
     $member = $model_member->getMemberInfo(array('member_email' => $email));
     if (empty($member) or !is_array($member)) {
         output_error('该邮箱未被注册');
     }
     //发送频率验证
     $member_common_info = $model_member->getMemberCommonInfo(array('member_id' => $member['member_id']));
     if (!empty($member_common_info['send_email_time']) && TIMESTAMP - $member_common_info['send_email_time'] < 58) {
         output_error('请60秒以后再次发送邮件');
     }
     $seed = random(6);
     $data = array();
     $data['auth_code'] = $seed;
     $data['send_acode_time'] = TIMESTAMP;
     $data['send_email_time'] = TIMESTAMP;
     $data['send_acode_times'] = array('exp', 'send_acode_times+1');
     $update = $model_member->editMemberCommon($data, array('member_id' => $member['member_id']));
     if (!$update) {
         output_error('系统发生错误,如有疑问请与管理员联系');
     }
     $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'] = $member['member_name'];
     $param['site_url'] = $_POST['site_url'];
     $param['verify_url'] = $param['site_url'] . '/login/find_password_email.html?uid=' . base64_encode(encrypt($member['member_id'] . ' ' . $email)) . '&hash=' . md5($seed);
     $subject = ncReplaceText($tpl_info['title'], $param);
     $message = ncReplaceText($tpl_info['content'], $param);
     \Shopnc\Lib::messager()->send($email, $subject, $message);
     output_data('成功发送找回密码邮件,请登录邮箱及时查收', true);
 }