assign('email_code', $email_code); $GLOBALS['smarty']->assign('shop_name', $GLOBALS['_CFG']['shop_name']); $GLOBALS['smarty']->assign('send_date', date($GLOBALS['_CFG']['date_format'])); $content = $GLOBALS['smarty']->fetch('str:' . $template['template_content']); /* 发送激活验证邮件 */ $result = send_mail($email, $email, $template['template_subject'], $content, $template['is_html']); if($result) { // 保存验证码到Session中 $_SESSION[VT_EMAIL_VALIDATE] = $email; // 保存验证记录 save_validate_record($email, $email_code, VT_EMAIL_VALIDATE, time(), time() + 30 * 60); echo 'ok'; } else { echo '邮箱验证码发送失败'; } } /** * 发送手机验证所需的短信验证码 */ function action_send_mobile_code () { $_LANG = $GLOBALS['_LANG']; $smarty = $GLOBALS['smarty']; $db = $GLOBALS['db']; $ecs = $GLOBALS['ecs']; require_once (ROOT_PATH . 'includes/lib_validate_record.php'); $mobile_phone = trim($_SESSION[VT_MOBILE_VALIDATE]); if(empty($mobile_phone)) { exit("手机号不能为空"); return; } else if(! is_mobile_phone($mobile_phone)) { exit("手机号格式不正确"); return; } else if(check_validate_record_exist($mobile_phone)) { // 获取数据库中的验证记录 $record = get_validate_record($mobile_phone); /** * 检查是过了限制发送短信的时间 */ $last_send_time = $record['last_send_time']; $expired_time = $record['expired_time']; $create_time = $record['create_time']; $count = $record['count']; // 每天每个手机号最多发送的验证码数量 $max_sms_count = 10; // 发送最多验证码数量的限制时间,默认为24小时 $max_sms_count_time = 60 * 60 * 24; if((time() - $last_send_time) < 60) { echo ("每60秒内只能发送一次短信验证码,请稍候重试"); return; } else if(time() - $create_time < $max_sms_count_time && $record['count'] > $max_sms_count) { echo ("您发送验证码太过于频繁,请稍后重试!"); return; } else { $count ++; } } require_once (ROOT_PATH . 'includes/lib_passport.php'); // 设置为空 $_SESSION[VT_MOBILE_VALIDATE] = array(); require_once (ROOT_PATH . 'sms/sms.php'); // 生成6位短信验证码 $mobile_code = rand_number(6); // 短信内容 $content = sprintf($GLOBALS['_CFG']['sms_register_tpl'],$mobile_code,$GLOBALS['_CFG']['shop_name']); /* 发送激活验证邮件 */ $result = sendSMS($mobile_phone, $content); // $result = true; if($result) { if(! isset($count)) { $ext_info = array( "count" => 1 ); } else { $ext_info = array( "count" => $count ); } // 保存验证的手机号 $_SESSION[VT_MOBILE_VALIDATE] = $mobile_phone; // 保存验证信息 save_validate_record($mobile_phone, $mobile_code, VT_MOBILE_VALIDATE, time(), time() + 30 * 60, $ext_info); echo 'ok'; } else { echo '短信验证码发送失败'; } } /** * 随机生成指定长度的数字 * * @param number $length * @return number */ function rand_number ($length = 6) { if($length < 1) { $length = 6; } $min = 1; for($i = 0; $i < $length - 1; $i ++) { $min = $min * 10; } $max = $min * 10 - 1; return rand($min, $max); } ?>