台灣最大程式設計社群網站
線上人數
1655
 
會員總數:240379
討論主題:186369
歡迎您免費加入會員
討論區列表 >> CSS/HTML5/Bootstarp >> 資料庫變數HTML顯示
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
資料庫變數HTML顯示
價值 : 20 QP  點閱數:326 回應數:4

樓主

CIx Xwon
門外漢
0 1
12 1
發送站內信

我想請問~
我用ckeditor的內容送到資料庫之後,
資料長這樣:


然後用RoR抓這項資料

結果會無法顯示...像這樣:



PHP的話用echo那個變數不是就會顯示了嗎?
為什麼我用Ruby顯示就無法呢?

HTML:


RUBY:



搜尋相關Tags的文章: [ 顯示為HTML的變數 ] ,
本篇文章發表於2016-11-06 22:54
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

CIx Xwon
檢舉此回應
補充一下
內容就是第15行的部分

現在有點困擾,不知道問題出在哪,希望可以幫忙解答感恩
本篇文章回覆於2016-11-06 23:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

彩虹
檢舉此回應
你加上html_safe試試看

將這個
<%= post.content%>
改成
<%= post.content.html_safe%>

這樣子才有辦法string設置成html
本篇文章回覆於2016-11-07 09:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

彩虹
檢舉此回應
哦對了 補充一下
使用html_safe會完全轉成html,就連<script>也會被允許,這會有被攻擊的問題

你可以使用sanitize這個方式會比較安全,如下
<%= sanitize( post.content ) %>

允許的html 標籤 (預設)
"strong", "em", "b", "i", "p", "hr", "br", "div", "span", "h1", "h2", "h3", "h4", "h5", "h6", ....等
預設的html 屬性 (預設)
"href", "src", "width", "height", "alt", "cite", "datetime", "title", "class", "name", "xml:lang", "abbr"...等

如果有其他需要允許的,可以另外設定

整體你可以參考這篇文章「如何安全地處理HTML逸出問題」
https://ihower.tw/rails/actionview-helpers.html#sec4
本篇文章回覆於2016-11-07 10:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
這堨i能會需要讓你了解一些觀念了。


雖然我對RUBY的相關並沒研究。
但像一般遇到這樣的情況。

最好是先查看有關轉換編碼及一些智能式轉碼的相關。
目前我推測的情況是

有可能 RUBY 在將資料讀進來時,就已經幫你將其相關的html做字元化的處理。
所以才會發生你這樣的情況。
這早期我在使用一些view相關框架或樣版系統時有碰過。
如果是用參數式的方式來載入的情況下。它的預設是會幫你將其參數給字元化。
我之前用的那套是需要再額外下 [no_html] 告知它,這個參數是不能字元化只能直接輸出的。
才能正常的跑html標簽出來。而非字串出來。

我會猜測你是碰到這樣的情況。因為字元化這東西並不會自動。
就如你所說的,就echo出來就一定可以跑。

但如果echo是字串化過的東西。那你是否要往更往上的源頭來查看看?
搞不好問題根本不在你說的15行。因為它也只不過是忠實的做輸出動作而已。

而是在於你的RUBY取參數的地方,檢查一下那邊吧。
#2的說明你可以參考一下
本篇文章回覆於2016-11-07 10:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.