PHP:避免重復(fù)提交和檢查數(shù)據(jù)來路_PHP教程
推薦:php設(shè)計模式介紹之值對象模式在所有的最簡單的程序中,大多數(shù)對象都有一個標(biāo)識,一個重要的商業(yè)應(yīng)用對象,例如一個Customer或者一個SKU,有一個或者更多的屬性---id,name,email地址,這樣可以把它從同一個類的其他實例區(qū)分開來。此外,對象有一個恒定的標(biāo)識:它是貫穿于整個應(yīng)用程序的一個
PHP Token(令牌)設(shè)計
設(shè)計目標(biāo):
避免重復(fù)提交數(shù)據(jù).
檢查來路,是否是外部提交
匹配要執(zhí)行的動作(如果有多個邏輯在同一個頁面實現(xiàn),比如新增,刪除,修改放到一個PHP文件里操作)
這里所說的token是在頁面顯示的時候,寫到FORM的一個隱藏表單項(type=hidden).
token不可明文,如果是明文,那就太危險了,所以要采用一定的加密方式.密文要可逆.俺算法很白癡,所以采用了網(wǎng)上一個現(xiàn)成的方法.
如何達(dá)到目的:
怎樣避免重復(fù)提交?
在SESSION里要存一個數(shù)組,這個數(shù)組存放以經(jīng)成功提交的token.在后臺處理時,先判斷這個token是否在這個數(shù)組里,如果存在,說明是重復(fù)提交.
如何檢查來路?
可選項,這個token在生成的時候,加入了當(dāng)前的session_id.如果別人copy你的html(token一迸copy),在提交時,理論上token里包含的session_id不等于當(dāng)前session_id,就可以判斷這次提交是外部提交.
如何匹配要執(zhí)行的動作?
在token的時候,要把這個token的動作名稱寫進(jìn)這個token里,這樣,在處理的時候,把這個動作解出來進(jìn)行比較就行了.
我以前寫的GToken不能達(dá)到上面所說的第二條,今天修改了一下,把功能2加上了.個人感覺還行.
分享:談PHP程序開發(fā)中的中文編碼問題PHP程序設(shè)計中中文編碼問題曾經(jīng)困擾很多人,導(dǎo)致這個問題的原因其實很簡單,每個國家(或區(qū)域)都規(guī)定了計算機(jī)信息交換用的字符編碼集,如美國的擴(kuò)展 ASCII 碼, 中國的 GB2312-80,日本的 JIS 等。作為該國家/區(qū)域內(nèi)信息處理的基礎(chǔ),字符編碼集起著統(tǒng)一編碼的
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時間
- PHP中獎概率的抽獎算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運算符優(yōu)先級介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
- 教程說明:
PHP教程-PHP:避免重復(fù)提交和檢查數(shù)據(jù)來路
。