歡迎光臨, 訪客. 請先 登入註冊一個帳號.
三月 29, 2024, 06:58:38 上午
19595 文章 在 3865 主題 由 4580 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  開發  |  核心補強  |  修正 LifeType 1.2 中, 打開 magic_quotes_gpc 後, 無法儲存 backslash [\] 字元的問題 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: 修正 LifeType 1.2 中, 打開 magic_quotes_gpc 後, 無法儲存 backslash [\] 字元的問題  (閱讀 19809 次)
twu2
初級會員
**
文章: 61



檢視個人資料 個人網站
« 於: 四月 09, 2007, 11:06:44 上午 »

轉自: http://blog.teatime.com.tw/1/post/228

在 LifeType 1.0.3 的時候, 我修正過一次 backslash 無法儲存的問題, 不過, 最近發現又有人反應這類的問題, 查了一下, 發現原本的修正, 在 magic_quotes_gpc 關閉時, 可以正確的儲存 backslash. 但是如果將 magic_quotes_gpc 打開之後, 就無法儲存 backslash 了.

下面這個 patch, 應該可以解決這一個問題了:
程式碼:
diff -Nur class.orig/data/kses.class.php class/data/kses.class.php
--- class.orig/data/kses.class.php 2007-03-20 20:40:22.000000000 +0800
+++ class/data/kses.class.php 2007-04-10 10:42:10.601863738 +0800
@@ -76,10 +76,13 @@
 
  function Parse($string = "")
  {
+/* we already handle magic_quotes_gpc in class/net/request.class.php
+   so don't do it again.
  if (get_magic_quotes_gpc())
  {
    $string = stripslashes($string);
  }
+*/
  $string = $this->_no_null($string);
  $string = $this->_js_entities($string);
  $string = $this->_normalize_entities($string);
@@ -759,4 +762,4 @@
  return '0.0.2 (OOP fork of kses 0.2.1)';
  } # function _version
  }
-?>
\ No newline at end of file
+?>
diff -Nur class.orig/database/db.class.php class/database/db.class.php
--- class.orig/database/db.class.php 2007-03-20 20:40:21.000000000 +0800
+++ class/database/db.class.php 2007-04-10 10:42:13.009975865 +0800
@@ -156,6 +156,8 @@
  */
  function qstr($string) {
 
+/* we already handle magic_quotes_gpc in class/net/request.class.php
+   so don't do it again.
  if (get_magic_quotes_gpc()) {
  $string = stripslashes($string);
  //$string = stripslashes($string);
@@ -163,6 +165,7 @@
                  $string = str_replace("\\'", "'", $string);
                  $string = str_replace('\\"', '"', $string);
  }
+*/
 
  $string = str_replace("\\", "\\\\", $string);
  $string = str_replace("'", "''", $string);
@@ -170,4 +173,4 @@
  return $string;
  }
     }
-?>
\ No newline at end of file
+?>
上面的 patch, 可以由這兒抓取: http://www.teatime.com.tw/~tommy/mypatch/lifetype_1.2_backslash.patch
Patch submit 到 Mantis: http://bugs.lifetype.net/view.php?id=1141 
« 最後編輯時間: 四月 10, 2007, 09:46:39 上午 由 twu2 » 已記錄

falldog
新手見習
*
文章: 18


檢視個人資料
« 回覆文章 #1 於: 四月 22, 2007, 03:03:22 下午 »

你好~
我用你的方法試過了ok

不過,還是存在一個問題
就是發表新文章後
「\\n」
秀出來的結果是
「\n」

然後再編輯這篇文章時
編輯器裡的文章會是
「\n」
所以如果沒有再自行加一個「\」的話
秀出來的結果就變成
「n」
已記錄
twu2
初級會員
**
文章: 61



檢視個人資料 個人網站
« 回覆文章 #2 於: 四月 22, 2007, 08:04:57 下午 »

也許 patch 有那邊您沒改到吧.
至少在我家的機器上頭, 不管 magic_quotes_gpc 打開或關閉, 都不會有您說的問題產生.
已記錄

falldog
新手見習
*
文章: 18


檢視個人資料
« 回覆文章 #3 於: 四月 23, 2007, 06:24:00 下午 »

呃...是喔...
為什麼我check過了還是一樣啊.... 疑惑

還是可以請你把這兩個修改的file
mail給我好嗎?
感謝~
falldog7@gmail.com
已記錄
twu2
初級會員
**
文章: 61



檢視個人資料 個人網站
« 回覆文章 #4 於: 四月 24, 2007, 09:16:47 上午 »

好像沒什麼好寄的. 把那兩個檔案有執行 stripslashes() 的部份刪除就可以了.
在別的文章看到你的環境是用  windows, 我不清楚是否在 windows 中要另外處理. 不過在 linux 上頭, 這個部份我並沒有碰到問題.

最簡單的做法, 是把 magic_quotes_gpc 設成 off 不就好了?
如果不想把 magic_quotes_gpc 設成 off (想不出有什麼不能的? 還是在 windows 下, 就算設成 off 也有問題?), 那就等官方的開發人員, 那天有空處理到這個問題再說吧. 我沒有 windows 的 web 環境, 也不想特地裝一個來測, 所以這部份我也不清楚為什麼在你的環境下會有問題.
已記錄

falldog
新手見習
*
文章: 18


檢視個人資料
« 回覆文章 #5 於: 四月 24, 2007, 10:46:55 上午 »

嗯嗯~
我也覺得我照著patch修正應該是沒問題
但是就是還有問題...Orz

那麼…請問一下magic_quotes_gpc 怎麼把它設off啊?
我在Admin介面找不到它的設定耶???
已記錄
twu2
初級會員
**
文章: 61



檢視個人資料 個人網站
« 回覆文章 #6 於: 四月 24, 2007, 11:22:41 上午 »

那是 php 的設定, 到 php.ini 中去改. 或用 .htaccess 來設定 (如果你用的是 apache 的話).
已記錄

頁: [1]
LifeType 中文開發論壇  |  開發  |  核心補強  |  修正 LifeType 1.2 中, 打開 magic_quotes_gpc 後, 無法儲存 backslash [\] 字元的問題 « 上篇主題 下篇主題 »
    前往: