PHP 板


LINE

看板 PHP  RSS
菜鳥碼農的我最近開發一個案子,為了防止重複送出有用到csrf 在codeigniter中,可以在application/views/errors/html/error_general.php 中自訂show_error()後的頁面,我想問的是,我如果override csrf_error()或是show_error()後,有辦法讓他跳到某個controller中 或是如同一般controller使用嗎? 因為我如果要override csrf_error()的話,繼承的不是CI_Controller ,就算用&get_interface()也無法調用controller的任何方法... 沒有辦法很好的說明真是不好意思:(,總之架構上來說就是在core裡有 A->繼承CI_Controller,存放了我在所有Controller要用到的所有方法 之後每一張Controller都是繼承了A,然後因為我的每個頁面的表頭表尾 都是一樣的,所以用了三個view組成一個畫面,現在我希望將錯誤訊息只 顯示在中間的view,但如果去改ci預設的那張php的話,雖然畫面上可以 達成,但因為我的頁面表頭有分成不同使用者有不同選單,沒靠controller 裡的方法無法判定,所以想問看看有沒有什麼方法可以辦到讓show_error() 或csrf_error()可以呼叫controller裡的東西呢? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.27.106.212
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1479865179.A.464.html
1F:→ MOONRAKER: 為什麼用到三個view會檢查三次 一頁有三個controller嗎 11/23 13:38
2F:→ MOONRAKER: 沒聽過There cannot be two tigers in one mountain嗎 11/23 13:38
並不是一次有三個controller...是在一個controller中使用了多個$this->load->view() 檢查三次??我有提到檢查三次嘛@@??
3F:→ xdraculax: 把自訂錯誤作成 A 裡的 function _show_error 裡面就 v 11/23 20:35
4F:→ xdraculax: iew 那頁,判斷錯誤的時候 return $this->_show_error( 11/23 20:35
5F:→ xdraculax: 'csrf') 11/23 20:35
6F:→ xdraculax: MY_Security protected $_csrf_error = FALSE; 11/23 21:38
7F:→ xdraculax: csrf_show_error() { $this->_csrf_error = TRUE; 11/23 21:39
8F:→ xdraculax: 加個 function 在 controler 去查 Security csrf_error 11/23 21:41
謝謝回答 不過我還是不太清楚,不過查了查,好像似乎沒辦法像我說那樣作,因為在載 入CI_Security之前,helper或是libraries都還沒被載入,所以只能夠用原始 的PHP代碼去建立東西:( 參考:http://stackoverflow.com/questions/14406922/prevent-from-displaying-the-default-csrf-error-page-in-codeigniter ※ 編輯: k80092 (61.27.106.212), 11/23/2016 22:19:57 ※ 編輯: k80092 (61.27.106.212), 11/23/2016 22:30:07 ※ 編輯: k80092 (61.27.106.212), 11/23/2016 22:30:50
9F:→ xdraculax: CI_Security 可以被 MY_Security 改寫 11/24 09:38
我有改寫了,只是因為沒辦法使用controller中的寫法,也沒辦法呼叫helper所以 沒辦法做出我要的東西,謝謝你的回答,我再研究看看:),有研究出來再來回文~
10F:→ MOONRAKER: 阿只有一個controller為什麼還會「希望錯誤訊息只顯示 11/24 13:07
11F:→ MOONRAKER: 在中間的view」描述模模糊糊還怪別人喔 11/24 13:08
我有提到說我一個畫面是用多個view組成,我想您應該會知道一個controller可 以載入多個view吧?我也沒有怪別人,我一開始就有說我也說不太清楚。總之謝 謝您的回答,耍嘴皮子既沒辦法改善問題,也不會讓世界更好。我就此打住。 ※ 編輯: k80092 (61.27.106.212), 11/24/2016 19:02:14
12F:→ xdraculax: 不需要在 Security 就把想要的頁面在裡面產生,只要把 11/24 19:26
13F:→ xdraculax: 結果記下,讓 controller 能去讀取後再跑 view 就可以 11/24 19:26
14F:→ xdraculax: 了,其實我上面的留言已把重點都留了 11/24 19:26
15F:→ k80092: 他跑完csrf_show_error()就停在錯誤訊息的頁面,沒有進任 11/24 19:55
16F:→ k80092: 何一個controller中的說...@_@ 11/24 19:56
17F:→ k80092: x大的意思是先把錯誤訊息保存起來後再進controller把他讀 11/24 19:57
18F:→ k80092: 出來沒錯吧? 11/24 19:57
19F:推 et69523820: 把錯誤訊息保存 在輸出到樣版變數即可 就可以顯示你 11/25 07:24
20F:→ et69523820: 指定的錯誤訊息顯示區域 11/25 07:25
21F:→ xdraculax: 如果你改過他還是被 csrf_show_error 帶去預設錯誤頁 11/25 11:22
22F:→ xdraculax: 表示你的 MY_Security 可能沒有改成功 11/25 11:26
23F:→ xdraculax: danny22.idv.tw/download/ci_csrf_test.zip 11/25 11:51
24F:→ k80092: 搞定了,謝謝x大,原來我一直以為進了csrf_show_error()後 11/28 12:07
25F:→ k80092: 就不會回到controller,結果自己寫了個exit耍笨了,抱歉:( 11/28 12:10







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP