當前位置:首頁 » 編程語言 » php隨機驗證碼

php隨機驗證碼

發布時間: 2022-08-02 00:47:12

『壹』 php實現手機驗證碼驗證注冊功能的邏輯是怎樣的

手機注冊驗證邏輯是這樣的:
首先要找簡訊服務商如:夢網、雲信使、互億無線等等申請簡訊發送介面。
網站實現流程如下:

第一步:用戶注冊時輸入手機號,網站首先要通過JS或者ajax+php驗證這個號碼是不是正確的手機號。
第二步:用戶點擊發送手機驗證碼,通過ajax把手機號傳到php,這時php生成一個隨機的驗證碼保存在session中,然後通過簡訊介面把這個驗證碼發送到這個手機號中。
第三步:用戶輸入手機收到的驗證碼注冊。網站用session中的驗證碼和用戶輸入的驗證碼比較。

『貳』 php如何使用隨機函數rand()生成一個數字驗證碼

參考這個
$code="";
//畫布
$image=imagecreatetruecolor(80, 25);
imagefill($image, 0, 0, imagecolorallocate($image, 255, 255, 255));

for($i=0;$i<4;$i++){
$rand_color=imagecolorallocate($image, rand(0,155), rand(0,155), rand(0,155));
$code_tmp=dechex(rand(1,15));
$code.=$code_tmp;
imagestring($image, rand(4,5), rand($i*20,$i*20+20-6), rand(0,13),$code_tmp , $rand_color);
//干擾線
imageline($image, rand($i*20,$i*20+20), rand(0,25), rand($i*20,$i*20+20), rand(0,25), $rand_color);
imageline($image, rand($i*20,$i*20+20), rand(0,25), rand($i*20,$i*20+20), rand(0,25), $rand_color);
}

//保存
session_start();
$_SESSION['yzm']=$code;
session_write_close();

header("content-type:image/png");

imagepng($image);
imagedestroy($image);

『叄』 php發送驗證碼後的驗證碼一般存放在哪裡的呢

一般有兩種做法

  1. 存session

  2. 資料庫緩存

『肆』 php用GD庫怎麼隨機產生彩色字母加數字的驗證碼

這個問題比較簡單,只講下原理,代碼如果你要的話我發給你,或者自己網上搜索下。
原理:
1、創建0-9a-zA-Z字元串
2、創建GD畫布,選擇相應的顏色
3、用for循環產生制定長度的【驗證碼】元素(使用隨機數函數來獲取不同的字元)
4、以驗證碼元素為內容創建圖像
5,如果需要對每個字元設置不同的顏色,只需要對每個字元單獨設置一個前景色即可

『伍』 php驗證碼怎麼使用

把以上代碼保存成code.php,上傳到相應目錄,如網站根目錄 調用的時候 <img src="code.php"> 即可

『陸』 怎麼讓php生成的驗證碼隨機數不重復

如果要生成四位數字的驗證碼,則可以用函數: $srand = rand(1000,9999); 會生成在1000到9999之間的隨機數字,如果要生成更多位數的數字,可以更改最孝最大值。

『柒』 PHP怎麼實現驗證碼中的字母是從a-z大小寫隨機包含。

代碼如下:
<?php
function createRandomStr($length){
$str = array_merge(range('a','z'),range('A','Z'));
shuffle($str);
$str = implode('',array_slice($str,0,$length));
return $str;
}
echo createRandomStr(4);
?>

『捌』 php中如何使用隨機函數rand()生成一個數字驗證碼

如果要生成四位數字的驗證碼,則可以用函數:

$srand = rand(1000,9999);

會生成在1000到9999之間的隨機數字,如果要生成更多位數的數字,可以更改最小、最大值。

『玖』 如何實現php手機簡訊驗證功能

現在網站在建設網站時為了保證用戶信息的真實性,往往會選擇發簡訊給用戶手機發驗證碼信息,只有通過驗證的用戶才可以注冊,這樣保證了用戶的聯系信息資料的100%的准確性。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >

<html xmlns>

<head>

<title></title>

<script src="js/jquery-1.4a2.min.js" type="text/javascript"></script>

<script type="text/javascript">

/*-------------------------------------------*/

var InterValObj; //timer變數,控制時間

var count = 60; //間隔函數,1秒執行

var curCount;//當前剩餘秒數

var code = ""; //驗證碼

var codeLength = 6;//驗證碼長度

function sendMessage() {

curCount = count;

var dealType; //驗證方式

tel = $(』#tel』).val();

if(tel!=』』){

//驗證手機有效性

var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+d{8})$/;

if(!myreg.test($(』#tel』).val()))

{

alert(』請輸入有效的手機號碼!』);

return false;

}

tel = $(』#tel』).val();

//產生驗證碼

for (var i = 0; i < codeLength; i++) {

code += parseInt(Math.random() * 9).toString();

}

//設置button效果,開始計時

$("#btnSendCode").attr("disabled", "true");

$("#btnSendCode").val("請在" + curCount + "秒內輸入驗證碼");

InterValObj = window.setInterval(SetRemainTime, 1000); //啟動計時器,1秒執行一次

//向後台發送處理數據

$.ajax({

type: "POST", //用POST方式傳輸

dataType: "text", //數據格式:JSON

url: 』yanzhengma.php』, //目標地址(根據實際地址)

data: "&tel=" + tel + "&code=" + code,

error: function (XMLHttpRequest, textStatus, errorThrown) { },

success: function (msg){ }

});

}else{

alert(』請填寫手機號碼』);

}

}

//timer處理函數

function SetRemainTime() {

if (curCount == 0) {

window.clearInterval(InterValObj);//停止計時器

$("#btnSendCode").removeAttr("disabled");//啟用按鈕

$("#btnSendCode").val("重新發送驗證碼");

code = ""; //清除驗證碼。如果不清除,過時間後,輸入收到的驗證碼依然有效

}

else {

curCount--;

$("#btnSendCode").val("請在" + curCount + "秒內輸入驗證碼");

}

}

</script>

</head>

<body>

<input name="tel" id=tel type="text" />

<input id="btnSendCode" type="button" value="發送驗證碼" onclick="sendMessage()" /></p>

</body>

</html>


第三、調用簡訊伺服器簡訊介面

整理的頁面是yanzhengma.php(具體根據服務商提供信息)

<?php //提交簡訊

$post_data = array();

$post_data[』userid』] =簡訊服務商提供ID;

$post_data[』account』] = 』簡訊服務商提供用戶名』;

$post_data[』password』] = 』簡訊服務商提供密碼』;

// Session保存路徑

$sessSavePath = dirname(__FILE__)."/../data/sessions/";

if(is_writeable($sessSavePath) && is_readable($sessSavePath)){

session_save_path($sessSavePath);

}

session_register(』mobliecode』);

$_SESSION[』mobilecode』] = $_POST["code"];

$content=』簡訊驗證碼:』.$_POST["code"].』【簡訊驗證】』;

$post_data[』content』] = mb_convert_encoding($content,』utf-8』, 』gb2312』); //簡訊內容需要用urlencode編碼下

$post_data[』mobile』] = $_POST["tel"];

$post_data[』sendtime』] = 』』; //不定時發送,值為0,定時發送,輸入格式YYYYMMDDHHmmss的日期值

$url=』http://IP:8888/sms.aspx?action=send』;

$o=』』;

foreach ($post_data as $k=>$v)

{

$o.="$k=".$v.』&』;

}

$post_data=substr($o,0,-1);

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要將結果直接返回到變數里,那加上這句。

$result = curl_exec($ch);

?>


第四:提交表單信息時對簡訊驗證碼驗證

//手機驗證碼開始

session_start();

$svalitel = $_SESSION[』mobilecode』];

$vdcodetel = empty($vdcodetel) ? 』』 : strtolower(trim($vdcodetel));

if(strtolower($vdcodetel)!=$svalitel || $svalitel==』』)

{

ResetVdValue();

//echo "Pageviews=".$vdcodetel;

ShowMsg("手機驗證碼錯誤!", 』-1』);

exit();

}

『拾』 用PHP寫一個介面,隨機生成6位數字,然後以簡訊的形式發送到對應的手機號上。從來沒寫過介面不知道如何寫

簡訊介面需要你有對應的簡訊服務商才行,通常是第三方簡訊服務商,這種服務往往是收費的,收取的費用越多,每天可以發送的簡訊數量越多。
你需要向他們申請簡訊介面,申請成功後會有介面文檔,按照文檔中的規定發送相應的數據即可,通常發送的數據包含:需要發送簡訊的手機號、簡訊內容。
介面寫法通常會在文檔中有寫,甚至有的文檔會附帶範例以供開發者參考。

熱點內容
上傳為防盜鏈圖片 發布:2025-01-23 14:57:11 瀏覽:301
伺服器essd什麼意思 發布:2025-01-23 14:51:24 瀏覽:268
spring上傳文件限制 發布:2025-01-23 14:50:30 瀏覽:310
奇亞幣p圖軟體存儲機 發布:2025-01-23 14:38:03 瀏覽:43
linux有用的命令 發布:2025-01-23 14:35:03 瀏覽:681
php顯示縮略圖 發布:2025-01-23 14:22:17 瀏覽:725
安卓哈利波特怎麼更換賬號 發布:2025-01-23 14:16:44 瀏覽:586
中國壓縮包 發布:2025-01-23 14:10:49 瀏覽:499
如果讓電腦訪問到公司伺服器 發布:2025-01-23 14:02:46 瀏覽:686
360瀏覽器腳本 發布:2025-01-23 13:54:42 瀏覽:565