先來(lái)看一下添加新用戶按鈕的前端頁(yè)面烟瞧,可以看到,繼承base.html這個(gè)父模板之后染簇,只要block內(nèi)為空参滴,就不會(huì)顯示相應(yīng)的內(nèi)容。
在這個(gè)添加新用戶的頁(yè)面中剖笙,底部直接上了jquery代碼
第一個(gè)注釋處卵洗,說(shuō)明只有當(dāng)表單中的數(shù)據(jù)發(fā)生改變,才會(huì)執(zhí)行移除提交按鈕的“不可用”狀態(tài)
第二處注釋就是當(dāng)鼠標(biāo)不在名字那一欄的時(shí)候,將請(qǐng)求數(shù)據(jù)提交到服務(wù)器的檢測(cè)重名的方法中去过蹂,并且檢查是否重名十绑,若結(jié)果返回成功,查看狀態(tài)信息酷勺,為1就成功本橙,否則失敗。具體是如何檢測(cè)重名的脆诉,并且返回什么提示信息甚亭,得看服務(wù)器端的腳本。
這樣的腳本現(xiàn)在看起來(lái)沒(méi)那么難了击胜。有進(jìn)步亏狰。。偶摔。
上面還只是一個(gè)添加新用戶的頁(yè)面的第一步而已暇唾,鼠標(biāo)才移動(dòng)到提交按鈕,下面是關(guān)于提交表單按鈕的功能腳本辰斋。(等等策州,上面鼠標(biāo)一旦移開(kāi),會(huì)向服務(wù)器發(fā)送請(qǐng)求宫仗,查是否重名够挂,如果我用burpsuite截獲數(shù)據(jù)包,中間將名字改為不重復(fù)的藕夫,但是我真正提交下面表單的時(shí)候孽糖,提交的卻是重復(fù)的名字,會(huì)怎樣汁胆?嗯梭姓,這可能是是一個(gè)很嚴(yán)重的邏輯漏洞霜幼,哈哈D勐搿)
下面是郵箱輸入框的jquery代碼
上面這兩幅圖是鼠標(biāo)移開(kāi)郵箱的時(shí)候,發(fā)送的請(qǐng)求罪既。原理和上面鼠標(biāo)從名字移開(kāi)是一樣的原理铸题。
下面到了最后的提交按鈕了
表單提交到服務(wù)器端的驗(yàn)證腳本,服務(wù)器腳本先提取出數(shù)據(jù)琢感,然后制定比對(duì)規(guī)則丢间,比如必須要填寫(xiě),最小字符長(zhǎng)度驹针,最大字符長(zhǎng)度烘挫,然后開(kāi)始根據(jù)規(guī)則比對(duì)。最后,如果都符合比對(duì)規(guī)則饮六,那么就創(chuàng)建用戶其垄。代碼邏輯不難。
以上內(nèi)容就是添加新用戶那個(gè)按鈕功能的全部實(shí)現(xiàn)卤橄!下面到了編輯按鈕的實(shí)現(xiàn)了绿满!
同理,還是先看html頁(yè)面窟扑,下面這個(gè)admin_edit.html頁(yè)面就是編輯頁(yè)面
哈哈喇颁,原來(lái)原理都是一樣的嘛!編輯頁(yè)面嚎货,還是一樣的操作橘霎,但是要區(qū)別的是,這個(gè)編輯頁(yè)面的前端樣式代碼中殖属,會(huì)利用eq結(jié)合sessionID來(lái)判斷你是不是超級(jí)管理員茎毁,然后才給你看一些修改頁(yè)面,否則就會(huì)給你隱蔽掉忱辅。
上面的代碼有點(diǎn)小問(wèn)題七蜘。他的$data被注釋掉了,按這個(gè)代碼的邏輯來(lái)看墙懂,不應(yīng)該注釋掉$data的橡卤。不注釋掉,代碼感覺(jué)也不對(duì)损搬。先停在這碧库。
繼續(xù)看軟刪除功能的實(shí)現(xiàn):
要做以下幾件事,第一在數(shù)據(jù)庫(kù)模型的User.php中巧勤,要引入軟刪除類嵌灰,并且導(dǎo)入軟刪除方法集。最后颅悉,將$deleteTime設(shè)置成數(shù)據(jù)表中的'delete_time'字段沽瞭。
用戶管理的界面,里面的刪除按鈕剩瓶,對(duì)應(yīng)的應(yīng)該是提交到這個(gè)方法里驹溃。還得自己去看源代碼。延曙。
再看一下將刪除過(guò)的信息全部恢復(fù)的操作豌鹤。下面這個(gè)腳本,將信息提交到上面的恢復(fù)刪除操作上枝缔。至于為什么上面的代碼那么寫(xiě)布疙,就能恢復(fù)成功,原理我還沒(méi)搞懂×榱伲可能和之前的Mode類里面的成員屬性設(shè)置有關(guān)系拣挪。