我試圖創建迷你CMS,用戶可以在其中創建新頁面,然後該頁面成爲菜單的一部分。將完整頁面插入數據庫是否明智或者有更好的方法可以這樣做?當我插入時,我也遇到了一些問題標籤。 代碼現在:Codeigniter 2.1 - 將HTML頁面插入數據庫
對於插入頁面到DB:
public function strana_insert()
{
$this->admin_login_check();
$clear = $this->str->clean_request();
$char = array('\n', '\n');
$strana = str_replace($char, '<br>', $clear['opis']);
$kljucna_rec = str_replace(' ', '_', mb_convert_case($clear['naziv'], MB_CASE_LOWER, "UTF-8"));
$data = array(
'naziv' => $clear['naziv'],
'strana' => htmlspecialchars($strana, ENT_QUOTES , "UTF-8"),
'kljucna_rec' => $kljucna_rec,
'datum_kreiranja' => date("Y-m-d H:i:s")
);
$this->str->save($data);
$this->save_routes();
redirect('admin');
}
代碼clean_request功能:
public function clean_request()
{
foreach($_POST as $key=>$value) :
$clean[$key]=mysql_real_escape_string(trim($value));
endforeach;
return $clean;
}
當我插入頁面標籤我得到以下結果:
<a href=\"http://www.example.com\" class=\"link_name\">www.example.com</a>
更新後pa ge * \ *之間的所有內容都將被刪除。這裏發生了什麼?
什麼是你的db字段? varchar或文本? – 2013-02-12 12:51:30
字段是longtext。 – Sasha 2013-02-12 12:52:04
不要使用mysql_real_escape_string,使用帶有綁定(或Active Record)的框架的DB類。反斜槓可以是服務器上的magic_quotes設置;把它們關掉 – 2013-02-12 12:53:25