PHP/FI 可以和數(shù)據(jù)庫(kù)連接,產(chǎn)生簡(jiǎn)單的動(dòng)態(tài)網(wǎng)頁(yè)程序。 PHP混合了C語(yǔ)言毫目、Java和Perl等的特點(diǎn);其 獨(dú)特的語(yǔ)法混合了C蔬啡、Java、Perl以及PHP自創(chuàng)的語(yǔ)法镀虐。如果你學(xué)過(guò)其中的任意一個(gè),你再來(lái)學(xué)php肯定是如魚(yú)得水箱蟆,下面我們說(shuō)下PHP怎么做注冊(cè)短信驗(yàn)證碼,代碼示例:
//接口類(lèi)型:互億無(wú)線觸發(fā)短信接口刮便,支持發(fā)送驗(yàn)證碼短信空猜、訂單通知短信等。
// 賬戶注冊(cè):請(qǐng)通過(guò)該地址開(kāi)通賬戶http://user.ihuyi.com/?9vXc7
// 注意事項(xiàng):
//(1)調(diào)試期間,請(qǐng)使用用系統(tǒng)默認(rèn)的短信內(nèi)容:您的驗(yàn)證碼是:【變量】辈毯。請(qǐng)不要把驗(yàn)證碼泄露給其他人坝疼。
//(2)請(qǐng)使用 APIID 及 APIKEY來(lái)調(diào)用接口,可在會(huì)員中心獲茸晃帧钝凶;
//(3)該代碼僅供接入互億無(wú)線短信接口參考使用,客戶可根據(jù)實(shí)際需要自行編寫(xiě)唁影;
//開(kāi)啟SESSION
session_start();
header("Content-type:text/html; charset=UTF-8");
//請(qǐng)求數(shù)據(jù)到短信接口腿椎,檢查環(huán)境是否 開(kāi)啟 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數(shù)據(jù)轉(zhuǎn)換為數(shù)組格式夭咬。
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() 函數(shù)返回隨機(jī)整數(shù)啃炸。
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";
//獲取手機(jī)號(hào)
$mobile = $_POST['mobile'];
//獲取驗(yàn)證碼
$send_code = $_POST['send_code'];
//生成的隨機(jī)數(shù)
$mobile_code = random(4,1);
if(empty($mobile)){
? ? exit('手機(jī)號(hào)碼不能為空');
}
//防用戶惡意請(qǐng)求
if(empty($_SESSION['send_code']) or $send_code!=$_SESSION['send_code']){
? ? exit('請(qǐng)求超時(shí),請(qǐng)刷新頁(yè)面后重試');
}
$post_data = "account=用戶名&password=密碼&mobile=".$mobile."&content=".rawurlencode("您的驗(yàn)證碼是:".$mobile_code."卓舵。請(qǐng)不要把驗(yàn)證碼泄露給其他人南用。");
//查看用戶名 登錄用戶中心->驗(yàn)證碼通知短信>產(chǎn)品總覽->API接口信息->APIID
//查看密碼 登錄用戶中心->驗(yàn)證碼通知短信>產(chǎn)品總覽->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'];