PHP經過長時間的發展,很多用戶都很了解PHP了,這裡我發表一下個人理解,和大家討論討論。我們在做網站時,常常為一些灌水文章而煩惱。有時,由於網絡狀況等原因用戶不知道提交是否成功,也會再次提交同一份表單,這就造成了PHP表單的重復提交不起。
有一個簡單的方法可以避免同一表單的重復提交。首先,先定義一個session變量用來保存一個PHP表單的提交序列號。這裡我定義為“$userLastAction”。然後在表單裡加入一個hidden 變量,把值設為
- $userLastAction+1:
- <input type=Hidden name=lastAction value=<? =$userLastAction+1 ?>>
最後,在處理提交之前判斷PHP表單是否已被提交過。
- if($lastAction>$userLastAction){
- $userLastAction++; // 序列號加1
- // 處理表單數據
- }
- ?>
先建一數據表download (後端用MySql)
- download表中含有下列兩個字段:
- id下載的文件的唯一標識
- downnum 下載次數,默認值為0
實現
假設已經從數據庫取出:描述文件名 五筆字型 ;下載文件名:wbzx.zip ;標識號id值為2處理後生成的超級鏈接代碼為:
- <a href="download.php?filename=wbzx.zip&id=2">五筆字型</a>
下面的代碼download.php處理下載次數累計及根據傳遞的文件名定位下載文件。
- //連接Mysql數據庫代碼略
- $res=mysql_query("update download set downnum=(downnum+1) where id='$id'" ,$db);
- header("location:$filename");
- ?>