## member.lang.php
'safeemail' => '安全电子邮箱','getcode' => '获得的验证码',
'email_yanzhenma' => '请输入正确的邮箱验证码',
'email_already_taken' => '安全邮箱已被其他用户注册',
'getcodebtn'=>'获取验证码',
'phone_required' =>'手机号码必须',
'phone_error' => '该手机号已被注册',
'num_required'=>'手机必须是数字',
'phone_desc'=>'请输入手机号',
'phone_yanzhenma'=>'请输入获取的手机验证码',
'rangelength_required'=>'手机必须11位数字',
'yanzhengma_required'=>'验证码必须',
'yanzhengma_taken'=>'验证码输入不正确',
'emailreg'=>'邮箱注册',
'phonereg'=>'手机注册',
########### member.register.html
$(function(){
$('.nav_shop').detach();
$('#nav li:first').css('border-left','1px solid #eeeeee');
$('#register_form').validate({
errorPlacement: function(error, element){
var error_td = element.parent('td').next('td');
error_td.find('.field_notice').hide();
error_td.append(error);
},
success : function(label){
label.addClass('validate_right').text('OK!');
},
onkeyup: false,
rules : {
user_name : {
required : true,
byteRange: [3,25,'{$charset}'],
remote : {
url :'index.php?app=member&act=check_user&ajax=1',
type:'get',
data:{
user_name : function(){
return $('#user_name').val();
}
},
beforeSend:function(){
var _checking = $('#checking_user');
_checking.prev('.field_notice').hide();
_checking.next('label').hide();
$(_checking).show();
},
complete :function(){
$('#checking_user').hide();
}
}
},
yanzhengma : {
required : true,
remote : {
url :'index.php?app=member&act=check_code&ajax=1',
type:'get',
data:{
yanzhengma :function(){
return $('#yanzhengma').val();
},
},
beforeSend:function(){
var _checking = $('#checking_code');
_checking.prev('.field_notice').hide();
_checking.next('label').hide();
$(_checking).show();
},
complete :function(){
$(_checking).hide();
}
}
},
password : {
required : true,
minlength: 6
},
password_confirm : {
required : true,
equalTo : '#password'
},
email : {
email : true,
remote : {
url :'index.php?app=member&act=check_email&ajax=1',
type:'get',
data:{
email : function(){
return $('#email').val();
}
},
beforeSend:function(){
var _checking = $('#checking_email');
_checking.prev('.field_notice').hide();
_checking.next('label').hide();
$(_checking).show();
},
complete :function(){
$('#checking_email').hide();
}
}
},
phonenum : {
digits:true,
rangelength:[11,11],
remote : {
url :'index.php?app=member&act=check_phone&ajax=1',
type:'get',
data:{
phonenum : function(){
return $('#phonenum').val();
}
},
beforeSend:function(){
var _checking = $('#phonenum');
_checking.prev('.field_notice').hide();
_checking.next('label').hide();
$(_checking).show();
},
complete :function(){
$('#checking_phone').hide();
}
}
},
captcha : {
required : true,
remote : {
url : 'index.php?app=captcha&act=check_captcha',
type: 'get',
data:{
captcha : function(){
return $('#captcha1').val();
}
}
}
},
agree : {
required : true
}
},
messages : {
user_name : {
required : '{$lang.user_name_required}',
byteRange: '{$lang.user_name_limit}',
remote : '{$lang.user_already_taken}'
},
yanzhengma : {
required : '{$lang.yanzhengma_required}',
remote : '{$lang.yanzhengma_taken}'
},
password : {
required : '{$lang.password_required}',
minlength: '{$lang.password_length_limit}'
},
password_confirm : {
required : '{$lang.password_confirm_please}',
equalTo : '{$lang.password_inconsistent}'
},
email : {
required : '{$lang.email_required}',
email : '{$lang.email_invalid}',
remote : '{$lang.email_already_taken}'
},
phonenum : {
digits : '{$lang.num_required}',
rangelength : '{$lang.rangelength_required}',
remote : '{$lang.phone_error}'
},
captcha : {
required : '{$lang.captcha_required}',
remote : '{$lang.captcha_error}'
},
agree : {
required : '{$lang.agree_required}'
}
}
});
var canSend =true;
var time=5;
$("#getcodebtn").click(function (){
var btn = $(this);
if (!canSend) return;
if($("#email").valid()){
var sendaddress = $('#email').val();
$.ajax({
type: "get",
url : "index.php?app=member&act=get_code&sign=1&ajax=1",
data: {
sendaddress :function(){
return sendaddress;
}
},
success:function(msg){
var hander = setInterval(function () {
if (time <= 0) {
canSend = true;
clearInterval(hander);
btn.val("重新发送验证码");
btn.removeAttr("disabled");
}
else {
canSend = false;
btn.attr({ "disabled": "disabled" });
btn.val(time + "秒后可重新发送");
time--;
}
}, 1000);
if (msg == "1") {
alert("邮件已发送至:" + sendaddress+ " 请注意查收!");
}else if (msg == "2") {
alert("等待再次发送!");
}else if (msg == "0") {
alert("邮件发送失败,请检查邮件地址是否正确!");
}
}
});
}else if($("#phonenum").valid()){
var sendaddress = $('#phonenum').val();
$.ajax({
type: "get",
url : "index.php?app=member&act=get_code&sign=2&ajax=1",
data: {
sendaddress :function(){
return sendaddress;
}
},
success:function(msg){
var hander = setInterval(function () {
if (time <= 0) {
canSend = true;
clearInterval(hander);
btn.val("重新发送验证码");
btn.removeAttr("disabled");
}
else {
canSend = false;
btn.attr({ "disabled": "disabled" });
btn.val(time + "秒后可重新发送");
time--;
}
}, 1000);
if (msg == "1") {
alert("短信已发送至:" + sendaddress+ " 请注意查收!");
}else if (msg == "2") {
alert("短信等待5分钟才能再次发送!");
}else if (msg == "0") {
alert("短信发送失败,请检查邮件地址是否正确!");
}
}
});
}else{
alert("请检查地址是否正确!");
}
});
});
######## app/frontend.base.php 635h+方法
if (!$this->visitor->has_login && !in_array(ACT, array('login', 'register', 'check_user','check_email','check_phone','get_code','make_code','check_code', 'has_login')))
######## member.app.php +
/**
* 检查safeEmail是否存在
*
* @author Garbin
* @return void
*/
function check_email()
{
$email = empty($_GET['email']) ? null : trim($_GET['email']);
if (!$email)
{
echo ecm_json_encode(false);
return;
}
$ms =& ms();
echo ecm_json_encode($ms->user->check_email($email));
}
/**
* 检查safePhone是否存在
*
* @author Garbin
* @return void
*/
function check_phone()
{
$phonenum = empty($_GET['phonenum']) ? null : trim($_GET['phonenum']);
if (!$phonenum)
{
echo ecm_json_encode(false);
return;
}
$ms =& ms();
echo ecm_json_encode($ms->user->check_phone($phonenum));
}
/**
* 检测手机或邮箱验证码是否正确
* 变量:验证码: yanzhengma , 验证方式:sign 邮箱:1,短信:2,
*
*/
function get_code()
{
$getaddress = empty($_GET['sendaddress']) ? null : trim($_GET['sendaddress']);
$sign = empty($_GET['sign']) ? null : trim($_GET['sign']);
if (!$getaddress || !$sign)
{
echo ecm_json_encode(false);
return;
}
//生成验证码,
$_SESSION['yanzhengma'] = $this->make_code();
/*
* 参数: 收件人地址,类型(email/phone),内容数组(用户名,验证码),发送模版类型(编号),
* return: 1:成功,2:等待,0:错误
* temyu_mail()
*/
$sendmodel=& m(temyu_mail);
$rusult = $sendmodel->tomail($getaddress,"mail",$_SESSION['yanzhengma']);
if($rusult)
echo '1';
else{
echo '0';
}
}
/**
* 生成随机码
*
*/
function make_code()
{
$chars = 'abcdefghijklmnopqrstuvwxyz023456789';
$code = '';
for ( $i = 0; $i < 6; $i++)
{
$code .= $chars[ mt_rand(0, strlen($chars) - 1) ];
}
return $code;
}
/**
* 检测手机或邮箱验证码是否正确
* 变量:验证码: yanzhengma
*
*/
function check_code()
{
$getyanzhengma = empty($_GET['yanzhengma']) ? null : trim($_GET['yanzhengma']);
if (!$getyanzhengma || !$_SESSION['yanzhengma'])
{
echo ecm_json_encode(false);
return;
}
// 判断输入的验证码getyanzhengma是否跟发送的验证码$this->yanzhengma相同
//返回msg:1:正确,0:错误,
if($getyanzhengma == $_SESSION['yanzhengma']){
echo true;
}
//$ms =& ms();
// echo ecm_json_encode($ms->user->check_postemail($postemail));
}
########default.passport.php
/**
* 检查安全电子邮件是否唯一
*
* @author Garbin
* @param string $email
* @return bool
*/
function check_email($email)
{
/* 暂时无此设置
return true;
*/
$model_member =& m('member');
$info = $model_member->get("safeemail='{$email}'");
if (!empty($info))
{
$this->_error('email_exists');
return false;
}
return true;
}
/**
* 检查安全手机是否唯一
*
* @author Garbin
* @param string $email
* @return bool
*/
function check_phone($phonenum)
{
$model_member =& m('member');
$info = $model_member->get("safephone='{$phonenum}'");
if (!empty($info))
{
$this->_error('phone_exists');
return false;
}
return true;
}
/**
* 检查用户名是否唯一
*
* @author Garbin
* @param string $user_name
* @return bool
*/
function check_username($user_name)
{
$model_member =& m('member');
$info = $model_member->get("user_name='{$user_name}'");
if (!empty($info))
{
$this->_error('user_exists');
return false;
}
return true;
}
#######member的html中的js
$(function(){
$(".login_fill_in .mall").click(function(){
$(".sj_tr").hide();
$(".em_tr").show();
$('#phonenum').val('');
$(this).addClass("login_con active").siblings().removeClass("login_con active");
})
$(".login_fill_in .phone").click(function(){
$(".em_tr").hide();
$(".sj_tr").show();
$('#email').val('');
$(this).addClass("login_con active").siblings().removeClass("login_con active");
})
});