1、加驗證碼;
創(chuàng)新互聯(lián)公司專注于郴州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供郴州營銷型網(wǎng)站建設(shè),郴州網(wǎng)站制作、郴州網(wǎng)頁設(shè)計、郴州網(wǎng)站官網(wǎng)定制、小程序設(shè)計服務(wù),打造郴州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供郴州網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
2、加時間限制,間隔一定時間才能有效;
3、數(shù)據(jù)庫存儲手機(jī)發(fā)送情況,如手機(jī)號,時間,IP;
4、根據(jù)收集數(shù)據(jù),判斷是否刷機(jī),禁用IP或者手機(jī)號等等,設(shè)置禁用時間
5、根據(jù)實(shí)際情況,設(shè)置單天同個IP,手機(jī)號一天短信數(shù)量
每次進(jìn)入提交的頁面,給一個session,為了避免重復(fù),session的key可以是隨機(jī)的。
在表單填寫頁面
?php
session_start(); // 啟用session
$time = time();
$key = 'sess_' . $time; // 根據(jù)時間生成一個隨機(jī)的session key
$_SESSION[$key] = $time; // 設(shè)置session的值
?
!--{通過隱藏表單將 session 的 key傳遞到服務(wù)端處理}--
input type="hidden" name="session_key" value="?php echo $time;?" /
處理頁面
?php
session_start(); // 啟用session
$key = $_POST['session_key'];
if(!$key || $_SESSION[$key] != substr($key, 5)){
// 如果沒有傳 session_key 參數(shù)
// 或者 session_key 參數(shù)值截斷 sess_后的數(shù)字 與 session參數(shù)值不匹配
unset($_SESSION[$key]); // 刪除 session 值
// 然后考慮是否要提示錯誤,或者轉(zhuǎn)入另一個頁面
exit(); // 終止頁面代碼執(zhí)行
}
// 下面進(jìn)行數(shù)據(jù)寫操作
// 數(shù)據(jù)操作完成后,刪除session
unset($_SESSION[$key]);
// 后續(xù)操作
?
$########################
一個頁面也是一樣的,我給你的只是一個思維,
具體如何實(shí)現(xiàn),你要根據(jù)自己的實(shí)際情況去處理
很多東西都不是通用的
另外,不管多少個頁面,必然包含兩個部分,一部分是表單填寫,一部分是數(shù)據(jù)處理,這個跟多少個頁面無關(guān)~~就看你是否能夠理解這段代碼的意義,如果不理解的話,嵌套進(jìn)去也沒啥用,能夠理解的話,或許你能夠找出更適合自己的解決方案
可以采用ajax配合使用php可以防止刷新頁面重復(fù)提交
也可以使用框架同樣可以防止
你直接訪問數(shù)據(jù)處理頁面的時候,$_POST['title'],$_POST['num] 應(yīng)該是空值,所以你增加一個判斷,必須有具體的值,再進(jìn)行sql操作。
回答: 我也不太會php,我用asp.net 給你提供個思路你自己弄弄吧, 你可以建立一個 Click點(diǎn)表 用戶點(diǎn)擊表,里面就兩個字段 一個 ip(訪問者IP地址),articleID文章ID,viewDate訪問日期,比如說我訪問的時候,我的IP172.18.20.11,你就往數(shù)據(jù)庫里插入172.18.20.11,1,2010-2-9,然后我再點(diǎn)擊的時候你就查詢 select * from Click where ip = 172.18.20.11 if exist 如果存在了點(diǎn)擊數(shù)目就不加一了,如果不存在就+1... 這樣也不可能完全防止刷新。。。因為大多數(shù)家庭用戶ip都是動態(tài)的...可以考慮 ip 記錄和 cooike 結(jié)合使用 補(bǔ)充: 用session 是不實(shí)際的 比如說你有10000個用戶 有10000篇文章,你算算你得用多少session?