本文目錄一覽:
- 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-tw/n/129388.html