本文目錄一覽:
- 1、PHP網站短信驗證碼如何防止被刷
- 2、PHP+MYSQL 實現隊列 進行發送短信怎麼做
- 3、用PHP怎麼實現手機短信發送
- 4、求:php怎麼給手機發短信程序,最好能有簡單的注釋!
- 5、如何實現php手機短信驗證功能
- 6、PHP如何定時發送短信
PHP網站短信驗證碼如何防止被刷
1、加驗證碼;2、加時間限制,間隔一定時間才能有效;3、數據庫存儲手機發送情況,如手機號,時間,IP;4、根據收集數據,判斷是否刷機,禁用IP或者手機號等等,設置禁用時間5、根據實際情況,設置單天同個IP,手機號一天短信數量PHP網站短信驗證碼如何防止被刷
PHP+MYSQL 實現隊列 進行發送短信怎麼做
最近遇到一個批量發送短信的需求,短信接口是第三方提供的。剛開始想到,獲取到手機號之後,循環調用接口發送不就可以了嗎?
但很快發現問題:當短信數量很大時,不僅耗時,而且成功率很低。
於是想到,用PHP和MySQL實現一個消息隊列,一條一條的發送短信。下面介紹具體的實現方法:
首先,建立一個數據表sms,包含以下字段:
id,
phone, //手機號
content //短信內容
將需要發送的短信和手機號存入sms表中。
接下來,需要用PHP實現一個定時器,定時讀取一條記錄,並發送短信:
?php
$db = new Db();
$sms = new Sms();
while(true){
$item = $db-getFirstRecord(); //獲取數據表第一條記錄
if(!$item){
//如果隊列中沒有數據,則結束定時器
break;
}
$res = $sms-send($item[‘phone’],$item[‘content’]); //發送短信
if($res){
$db-deleteFristRecord(); //刪除發送成功的記錄
echo $item[‘phone’].’發送成功’;
}else{
echo $item[‘phone’].’發送失敗,稍後繼續嘗試’;
}
sleep(10); //每隔十秒循環一次
}
echo ‘發送完畢!’;
?
將代碼保存為timer_sms.php,打開命令行,執行定時器:
php timer_sms.php
好了,php定時器將會根據設定的時間間隔(這裡設的是10秒),自動完成發送短信的任務。任務完成後將自動退出定時器,不再佔用服務器資源。
根據我的測試,PHP定時器佔用資源並不多,不會對服務器造成壓力。而且是異步訪問數據庫,也不會影響數據庫的運行。
這種方式的優點是:
1、後台運行,前台無需等待
2、成功率高,失敗的記錄會自動重發,直到成功
用PHP怎麼實現手機短信發送
可以的,如果是在linux下,可以結合crontab定時任務實現,
如果是使用windows可以安裝win32service 這個擴展實現
如果我的回答沒能幫助您,請繼續追問。
求:php怎麼給手機發短信程序,最好能有簡單的注釋!
程序不可以隨便給人發短信的。
1.理論上需要你和移動或聯通談,拿到SP(服務提供商)營業執照,才可以使用手機短信的API。(比較困難)
2.如果你找到了一家SP,並談成合作,他會分給你接口的引用方法。一般是socket+xml或是http+xml的.用PHP的socket相關的函數可以很方便的去調用。
3.如果還有更簡單的方法,那就是通過一些免費/收費的短信發送服務商,他們提供發送短信的插件以及接口,有各種方式,大部分都有PHP可調用的HTTP方式和webservice方式的接口。如這個平台:
()
4.還有人使用PHP調用飛信的API發送,但不是官方提供的,所以不是很穩定,請搜索 飛信API PHP 了解詳細的情況。
如何實現php手機短信驗證功能
需要有短信接口,根據接口的開發文檔定義短信發送函數,然後在頁面上,填寫手機號,點擊發送驗證碼,就會調用發送方法,通過接口發送短信到用戶填寫的手機,發送的內容是自己生成的驗證碼,改驗證碼要在數據庫存一份,同時要添加創建時間用於控制驗證碼有效期,然後用戶填寫的驗證碼跟自己的數據庫驗證碼對比,並且判斷時間是否過期即可。
PHP如何定時發送短信
1、首先設置好服務器;
2、設置執行時間為無限制;
3、設置發送短信間隔為5分鐘;
4、打開存儲短信的文件,進行短信操作,關閉文件;
5、循環上面的過程;
6、具體設置代碼如下:
ignore_user_abort(); //即使Client斷開(如關掉瀏覽器),PHP腳本也可以繼續執行.
set_time_limit(0); // 執行時間為無限制,php默認的執行時間是30秒,通過set_time_limit(0)可以讓程序無限制的執行下去
$interval=60*5; // 每隔5分鐘運行
do{
$fp = fopen(‘test.txt’,’a’);
fwrite($fp,’test’);
fclose($fp);
sleep($interval); // 等待5分鐘
}while(true);
?
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129388.html