在设计网站或者APP的注册页面时,需要考虑的因素比较多,一个优秀的登录页面设计,能够在很大程度上提升用户的转化,本文将从用户体验、交互、安全等各个方面谈一下我的看法,欢迎大家批评指正。
二、对手机号进行343分隔 对用户输入的手机号进行343分隔,便于用户对号码进行核对,减少出错几率。
?
七、手机短信验证安全防范 为了避免用户恶意请求短信接口,程序上还需要设置多重的安全机制: 1、单个用户,每次请求短信接口的时间间隔建议设置为60秒以上; 2、单个用户每天请求的最大次数建议不超过5次; 3、设置每个ip每天最大请求数; 4、设置短信账户每天的最大发送量(避免因异常状况导致的短信被恶意消耗)。
除了自己可以设置这些规则外,互亿无线短信平台也支持多种方式的规则设置,可以在发送端对各种发送行为进行控制,控制的项目主要有: 1、同一手机号码的每天/每分钟的请求量; 2、同一内容的每天/每分钟请求量; 3、同一号码每天的验证码短信请求量; 4、同一账户每天的最大发送量;
PHP对接验证码短信接口DEMO示例 本文为您提供了PHP语言版本的验证码短信接口对接DEMO示例
?* 接口类型:触发短信接口,支持发送验证码短信、订单通知短信,节日祝福等。 ?* 账户注册:请通过该地址开通账户 http://user.ihuyi.com/?exClaO
更多精彩内容请查看:新用户注册手机认证解决方案_
//开启SESSION
session_start();
header("Content-type:text/html; charset=UTF-8");
//请求数据到短信接口,检查环境是否 开启 curl init。
function Post($curlPost,$url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
$return_str = curl_exec($curl);
curl_close($curl);
return $return_str;
}
//将 xml数据转换为数组格式。
function xml_to_array($xml){
$reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";
if(preg_match_all($reg, $xml, $matches)){
$count = count($matches[0]);
for($i = 0; $i < $count; $i++){
$subxml= $matches[2][$i];
$key = $matches[1][$i];
if(preg_match( $reg, $subxml )){
$arr[$key] = xml_to_array( $subxml );
}else{
$arr[$key] = $subxml;
}
}
}
return $arr;
}
//random() 函数返回随机整数。
function random($length = 6 , $numeric = 0) {
PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
if($numeric) {
$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
} else {
$hash = '';
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';
$max = strlen($chars) - 1;
for($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];
}
}
return $hash;
}
//短信接口地址
$target = "http://106.ihuyi.com/webservice/sms.php?method=Submit";
//获取手机号
$mobile = $_POST['mobile'];
//获取验证码
$send_code = $_POST['send_code'];
//生成的随机数
$mobile_code = random(4,1);
if(empty($mobile)){
exit('手机号码不能为空');
}
//防用户恶意请求
if(empty($_SESSION['send_code']) or $send_code!=$_SESSION['send_code']){
exit('请求超时,请刷新页面后重试');
}
$post_data = "account=用户名&password=密码&mobile=".$mobile."&content=".rawurlencode("您的验证码是:".$mobile_code."。请不要把验证码泄露给其他人。");
//查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIID
//查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEY
$gets = xml_to_array(Post($post_data, $target));
if($gets['SubmitResult']['code']==2){
$_SESSION['mobile'] = $mobile;
$_SESSION['mobile_code'] = $mobile_code;
}
echo $gets['SubmitResult']['msg'];
———————————————— ?
|