LifeType 中文開發論壇

支援 => 安裝與設定 => 主題作者是: trevoryu 於 五月 28, 2005, 11:46:49 下午



主題: 1.0升級至1.0.1的問題
作者: trevoryu五月 28, 2005, 11:46:49 下午
我升級的方法是將原來1.0版已被我修改過的檔案備份,將1.0.1全部丟到主機上,再將已修改的1.0版備份檔覆蓋進去。

起先會出現sql error,後來我先備份sql database後,執行了wizard.php,但在database那一步因為我輸入的名稱與現有database同名,被拒絕而沒有繼續安裝。

此時再進入plog已無sql error,但文章內之中文全變成問號,換言之來自sql databse中的中文無法正確顯示。再進入sql檢查,舊文章的中文仍為正確。

進admin介面發表一篇新文章,英文正確但中文卻部份可顯示,部分仍為問號。

不知各位可否提供解決之道?


主題: 1.0升級至1.0.1的問題
作者: lss五月 29, 2005, 12:18:05 下午
hi trevoryu:

你修改過的檔案有那些?你能列出來嗎?

另外,請試試全用 1.0.1 版的程式碼來跑看看是不是有問題。

也許你修改過的部份在 1.0.1 版也有相關修改以致不相容。


主題: 補充
作者: trevoryu五月 29, 2005, 01:37:51 下午
我改過的檔案有

/.htaccess
/error.php
/class/dao/mylinks.class.php
/config/config.properties.php
/locale/locale_zh_TW.php
/templates/standard/footer.template, main.template, post.template, style.css

我又試了一次,發現剛用1.0.1覆蓋完後出現的sql error是因為config.properties.php尚未設定所引起。設定正確後首頁即可顯示,但文章的中文仍顯示為問號。(注意此時我只修改了config.properties.php而已,其他檔案尚未更動)

我有把/tmp內除了.htaccess的檔案全部清掉過。

我在另一個地方用wizard.php重新安裝1.0.1試用,除了月份顯示為亂碼外,中文顯示都沒有問題。


主題: 可能是1.0.1在處理中文上與1.0有所不同?
作者: trevoryu五月 29, 2005, 09:36:36 下午
我耐心地檢查過執行wizard.php前和後的所檔案差異,若以檔案時間區分的話,執行wizard.php後唯一有被動過的檔案就只有config.properties.php而已。我猜想會有中文顯示錯誤的問題,可能出自於1.0.1和1.0在處理中文上有所不同。

原來用1.0.1覆蓋後,我曾發表一篇含中文的文章,結果仍無法正確顯示。

然後再用先前備份的1.0覆蓋回去,舊文章的中文完好如初,但先前用1.0.1發表的中文文章居然也是亂碼。

感覺上很有可能是1.0.1和1.0在某個地方所用的encoding方法並不一致。(not UTF-8?)


主題: Re: 可能是1.0.1在處理中文上與1.0有所不同?
作者: 8282五月 29, 2005, 10:59:24 下午
引用自: trevoryu
我耐心地檢查過執行wizard.php前和後的所檔案差異,若以檔案時間區分的話,執行wizard.php後唯一有被動過的檔案就只有config.properties.php而已。我猜想會有中文顯示錯誤的問題,可能出自於1.0.1和1.0在處理中文上有所不同。

原來用1.0.1覆蓋後,我曾發表一篇含中文的文章,結果仍無法正確顯示。

然後再用先前備份的1.0覆蓋回去,舊文章的中文完好如初,但先前用1.0.1發表的中文文章居然也是亂碼。

感覺上很有可能是1.0.1和1.0在某個地方所用的encoding方法並不一致。(not UTF-8?)


我也有同樣的問題,因此我暫時放棄升級,還是改回來用1.0版。

希望有人能趕快取得解決的方式。 :-)


主題: 1.0升級至1.0.1的問題
作者: markwu五月 30, 2005, 11:09:41 上午
這問題我遇過。可是並非是 1.0->1.01 的問題。

1.0->1.0.1 並沒有作任何編碼上的變動,我遇到的情況是,我把 php 4.3 改到 php 5.0 遇到到的。

可以把你們的系統配置詳細的post 上來,才好來看是哪裡出問題。

Mark


主題: Re: 補充
作者: Eji五月 30, 2005, 07:44:38 下午
引用自: trevoryu
我有把/tmp內除了.htaccess的檔案全部清掉過。


抱歉問個題外話,我該怎樣把/tmp裡面的檔案清掉呢?
我這邊是使用虛擬主機的關係,我只能透過FTP去access它;
但是它一直給我一個Permission Denied,,然後就顯示在/tmp裡面的檔案有個parse error:

程式碼:
Parse error: parse error, unexpected T_ENDIF in /home/-----/public_html/blog/tmp/summary/%%-41^%%-41152182^index.template.php on line 139

諸如此類....


主題: 1.0升級至1.0.1的問題
作者: james五月 30, 2005, 09:24:14 下午
我的系統目前也已經升級到1.01但是並未出現如前文所說的中文顯示問題。

我的升級方式為:
1.將原先1.0的目錄整個壓一份起來做備份。
2.採用官方建議的方式,直接將1.0.1的檔案覆蓋掉1.0的檔案。
3.在手動將config.properties.php的值填入。
4.手動刪除tmp下的檔案。
5.完工。
到目前完全正常。

順便說明一下我的系統
OS:FC2
WEB SERVER:APACHE 2.0 + php 4.3.8
目前只有一個小小的問題就是 jupload外掛可以設定,但是在檔案中心中一直秀不出來。目前正在尋找原因中。

其它一切都正常喔  :-)


主題: 1.0升級至1.0.1的問題
作者: 8282五月 31, 2005, 11:23:47 上午
引用自: james
我的系統目前也已經升級到1.01但是並未出現如前文所說的中文顯示問題。

我的升級方式為:
1.將原先1.0的目錄整個壓一份起來做備份。
2.採用官方建議的方式,直接將1.0.1的檔案覆蓋掉1.0的檔案。
3.在手動將config.properties.php的值填入。
4.手動刪除tmp下的檔案。
5.完工。
到目前完全正常。

順便說明一下我的系統
OS:FC2
WEB SERVER:APACHE 2.0 + php 4.3.8
目前只有一個小小的問題就是 jupload外掛可以設定,但是在檔案中心中一直秀不出來。目前正在尋找原因中。

其它一切都正常喔  :-)


我用了您的方式又試過一次,還是不行。我的環境是 Win2000 Server,安裝 AppServ 2.4.1 套件。plog 1.0下 MySQL 的編碼採用 UTF-8。可否提供些建議!

    * PHP 4.3.8
    * Apache 1.3.31
    * MySQL 4.0.20
    * Zend Optimizer 2.5.3
    * phpMyAdmin 2.6.0-rc1
    * Perl 5.8.4


主題: 1.0升級至1.0.1的問題
作者: Eji五月 31, 2005, 11:39:02 上午
唔,我找到清掉tmp的方法了....
不過話說回來清掉還是卡在同樣的地方(Parse Error).....
所以目前還是先回到1.0final....


主題: Re: 補充
作者: markwu五月 31, 2005, 03:18:58 下午
引用自: Eji
引用自: trevoryu
我有把/tmp內除了.htaccess的檔案全部清掉過。


抱歉問個題外話,我該怎樣把/tmp裡面的檔案清掉呢?
我這邊是使用虛擬主機的關係,我只能透過FTP去access它;
但是它一直給我一個Permission Denied,,然後就顯示在/tmp裡面的檔案有個parse error:

程式碼:
Parse error: parse error, unexpected T_ENDIF in /home/-----/public_html/blog/tmp/summary/%%-41^%%-41152182^index.template.php on line 139

諸如此類....


你有改過 /templates/summary/index.template 嗎?他的意思是說你的 template 中有一個 {/if} 可是前面卻沒有相對應的 {if xxx}

所以他說 unexpected T_ENDIF  ..... 查查你的 index.template 吧!要不然就 post 上來看看。
 :-)
Mark


主題: 1.0升級至1.0.1的問題
作者: trevoryu六月 02, 2005, 08:33:51 下午
我重來一次,
1. zip the plog 1.0 to one file
2. unzip plog 1.0.1 to overwrite all files
3. 修改config.properties.php
4. tmp目錄清空

結果舊文章的中文依舊顯示為問號,目前仍無解?

我的主機商是powweb
apache 1.3.33
php 4.3.11
mysql 4.1.9
perl 5.006001


主題: 1.0升級至1.0.1的問題
作者: markwu六月 02, 2005, 10:58:04 下午
引用自: trevoryu
我重來一次,
1. zip the plog 1.0 to one file
2. unzip plog 1.0.1 to overwrite all files
3. 修改config.properties.php
4. tmp目錄清空

結果舊文章的中文依舊顯示為問號,目前仍無解?

我的主機商是powweb
apache 1.3.33
php 4.3.11
mysql 4.1.9
perl 5.006001


你的網站在哪,能讓我們看一下嗎?

Mark


主題: Re: 補充
作者: Eji六月 03, 2005, 06:37:45 下午
引用自: markwu
你有改過 /templates/summary/index.template 嗎?他的意思是說你的 template 中有一個 {/if} 可是前面卻沒有相對應的 {if xxx}

所以他說 unexpected T_ENDIF  ..... 查查你的 index.template 吧!要不然就 post 上來看看。
 :-)
Mark


唔,舊的我有改,但是傳上去之後,跑新的時候才出現這個error。(新的我沒改)
我覺得這可能和我沒清tmp有關,但是我清了之後還是維持這個狀況....
目前我還在1.0,把問題整理一遍我再上傳....

[EDIT]
我現在一個一個手動覆蓋....
結果在把/templates/summary/傳進去之後,有這樣的錯誤訊息:
其他單獨的帳號運作正常。

引用
Fatal error: Undefined class name 'sessionmanager' in /--------/blog/class/summary/action/summaryaction.class.php on line 48


可是我沒去改這個....orz
diff過一看,1.0和1.0.1的兩個summaryaction.class.php之間真的差很多....

/class/summary/
/templates/summary/
summary.php
維持1.0版之外,其他正常升級到1.0.1;找到問題之後再改過去....


主題: 1.0升級至1.0.1的問題
作者: trevoryu六月 04, 2005, 12:27:13 下午
我的網站在 http://blog.trevoryu.net

剛用1.0.1覆蓋,刪除wizard.php,修改config.properties.php後,未清tmp
(http://www.trevoryu.net/1.0.1-1.png)

清tmp,reload頁面後
(http://www.trevoryu.net/1.0.1-2.png)

進admin,編輯舊文章,中文仍為問號
(http://www.trevoryu.net/1.0.1-3.png)

用原備份檔案覆蓋,又恢復正常
(http://www.trevoryu.net/1.0.1-4.png)


主題: Re: 補充
作者: markwu六月 05, 2005, 09:39:42 上午
引用自: Eji
引用自: markwu
你有改過 /templates/summary/index.template 嗎?他的意思是說你的 template 中有一個 {/if} 可是前面卻沒有相對應的 {if xxx}

所以他說 unexpected T_ENDIF  ..... 查查你的 index.template 吧!要不然就 post 上來看看。
 :-)
Mark


唔,舊的我有改,但是傳上去之後,跑新的時候才出現這個error。(新的我沒改)
我覺得這可能和我沒清tmp有關,但是我清了之後還是維持這個狀況....
目前我還在1.0,把問題整理一遍我再上傳....

[EDIT]
我現在一個一個手動覆蓋....
結果在把/templates/summary/傳進去之後,有這樣的錯誤訊息:
其他單獨的帳號運作正常。

引用
Fatal error: Undefined class name 'sessionmanager' in /--------/blog/class/summary/action/summaryaction.class.php on line 48


可是我沒去改這個....orz
diff過一看,1.0和1.0.1的兩個summaryaction.class.php之間真的差很多....

/class/summary/
/templates/summary/
summary.php
維持1.0版之外,其他正常升級到1.0.1;找到問題之後再改過去....


我大概知道原因了。在 1.01 的 summary新增一個功能,就是 summary 會依照你的 browser 語系來顯示不同語言。

所以他會去判斷 session 中的 summaryLang 這個 value ... 看起來是這個 value 不存在,或是 session 結構有問題。因為程式本身並沒問題。 :(

可是 pLog 的 session time out 是依照 browser 的 life time所以當關掉 browser 時,應該就會重新產生 session才對。

能請你把 session 都請掉試試看嗎? 如果還是不能,能把 $_SESSION 印出來看看嗎?

Mark


主題: 1.0升級至1.0.1的問題
作者: markwu六月 07, 2005, 02:11:07 下午
引用自: trevoryu
我的網站在 http://blog.trevoryu.net

剛用1.0.1覆蓋,刪除wizard.php,修改config.properties.php後,未清tmp

清tmp,reload頁面後

進admin,編輯舊文章,中文仍為問號

用原備份檔案覆蓋,又恢復正常


Hi trevoryu:

不好意思。我還是沒試出跟你一樣的情況,真不知該怎麼解決 :(

Mark


主題: 1.0升級至1.0.1的問題
作者: markwu六月 07, 2005, 02:14:57 下午
有一個可能的原因,請參考一下

http://forum.lifetype.org.tw/index.php?topic=288.0&highlight=set+names

應該是 mysql 中 set names 的問題。

Mark


主題: Re: 補充
作者: Eji六月 08, 2005, 04:26:29 下午
引用自: markwu
我大概知道原因了。在 1.01 的 summary新增一個功能,就是 summary 會依照你的 browser 語系來顯示不同語言。

所以他會去判斷 session 中的 summaryLang 這個 value ... 看起來是這個 value 不存在,或是 session 結構有問題。因為程式本身並沒問題。 :(

可是 pLog 的 session time out 是依照 browser 的 life time所以當關掉 browser 時,應該就會重新產生 session才對。

能請你把 session 都請掉試試看嗎? 如果還是不能,能把 $_SESSION 印出來看看嗎?

Mark


看到您的回應之後,我也猛然想到.... index.template裡面的歡迎字串我用中文打.....
結果果然是存成big5(死)

這次上傳上去就沒問題了。感謝!

----
我還真是粗心大意.....


主題: 1.0升級至1.0.1的問題
作者: markwu六月 10, 2005, 10:40:51 上午
引用自: markwu
有一個可能的原因,請參考一下

http://forum.lifetype.org.tw/index.php?topic=288.0&highlight=set+names

應該是 mysql 中 set names 的問題。

Mark


Hi Hi trevoryu:

解了嗎?你有去看這一篇了嗎?

Mark


主題: 1.0升級至1.0.1的問題
作者: trevoryu六月 13, 2005, 08:22:43 下午
我看過了,但我不解的是,最開始時我就已將MySQL charset設成UTF-8 Unicode (utf8), MySQL connection collation設成utf8_general_ci,plog 1.0安裝完後,用phpMyAdmin 2.6.1-pl3進入讀取,中文都能正確顯示,這代表database中的資料應該是以UTF-8存在的。

我的plog 1.0和1.01都選擇成UTF-8編碼,覆蓋1.0成1.01版,從mysql讀出來的中文還是變成問號。

另外,我曾用MS Word修改plog 1.0的部分檔案 (mylinks.class.php,config.properties.php,locale_zh_TW.php,footer.template,main.template,post.template,.htaccess,error.php),因為當時我沒有支援UTF-8的text editor,後來我才知道MS Word會將檔案存成UTF-8(BOM),也許會造成問題?

但我猜想造成上述問題的關鍵還是跟mysql比較有關係...


主題: 1.0升級至1.0.1的問題
作者: markwu六月 13, 2005, 11:21:45 下午
我在查了一下之前 pest 針對 utf-8 patch 過的程式,我發現『他』不見了。我在猜是因為 Oscar 還是 Ben 把 Adodb upgrade 後,忘了 patch 上去。傷腦筋。

你能試過在你的 connect 加上 set names utf-8 看看是否正常。 參考: http://forum.lifetype.org.tw/index.php?topic=47.0&highlight=set+names

 8o|  我要來查一下 code ... 真是粗心的錯誤!

Mark


主題: 1.0升級至1.0.1的問題
作者: trevoryu六月 14, 2005, 09:11:28 下午
修改\class\database\adodb\drivers\adodb-mysql.inc.php後果然就正常了。
我把1.0版中存在但1.0.1版消失的三段hacks全帶進來。

程式碼:

else if (ADODB_PHPVER >= 0x4200)
$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword,
$this->forceNewConnect);
else
$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword);

/** hack to adodb **/
if ($this->_isSupportUtf8() && $argDatabasename) {
$dbEncoding = $this->_getDbDefaultEncoding($argDatabasename);
if ($dbEncoding) {
mysql_query("SET NAMES $dbEncoding", $this->_connectionID);
}
}
/** end of hack **/

if ($this->_connectionID === false) return false;
if ($argDatabasename) return $this->SelectDB($argDatabasename);
return true;


程式碼:

if ($this->_connectionID === false) return false;
if ($this->autoRollback) $this->RollbackTrans();

/** hack to adodb **/
if ($this->_isSupportUtf8() && $argDatabasename) {
$dbEncoding = $this->_getDbDefaultEncoding($argDatabasename);
if ($dbEncoding) {
mysql_query("SET NAMES $dbEncoding", $this->_connectionID);
}
}
/** end of hack **/

if ($argDatabasename) return $this->SelectDB($argDatabasename);
return true;


程式碼:

$this->forceNewConnect = true;
return $this->_connect($argHostname, $argUsername, $argPassword, $argDatabasename);
}
/** start of adodb hack **/
function _isSupportUtf8() {

// check mysql version first. Version lower than 4.1 doesn't support utf8
$serverVersion = mysql_get_server_info($this->_connectionID);
$version = explode('.', $serverVersion);
if ($version[0] < 4) return false;
if ( ($version[0] == 4) && ($version[1] == 0) ) return false;

// check if utf8 support was compiled in
$result = mysql_query("SHOW CHARACTER SET like 'utf8'", $this->_connectionID);
if (mysql_num_rows($result) > 0) {
return true;
}
return false;
}

function _getDbDefaultEncoding($argDatabasename)
{

if (!$argDatabasename) {
return false;
}

// We use a SHOW CREATE DATABASE command to show the original
// SQL character set when DB was created.
$result = mysql_query("SHOW CREATE DATABASE $argDatabasename", $this->_connectionID);
if (mysql_num_rows($result) < 0 ) {
// The specified db name is wrong!
return false;
}
$dbInfo = mysql_fetch_row($result);
$pattern = '/40100 DEFAULT CHARACTER SET (\w+) /';
if ( (preg_match($pattern, $dbInfo[1], $match) > 0) ) {
return $match[1];
}
return false;
    }
    /** end of hack **/

  function &MetaColumns($table)


主題: 1.0升級至1.0.1的問題
作者: markwu六月 15, 2005, 11:03:18 上午
Hi trevoryu;

謝謝,我會再從新把他 patch 回 1.0.2,下一版釋出時應該就正確了。真是不好意思,造成你的不便。

Mark


主題: 1.0升級至1.0.1的問題
作者: pest六月 15, 2005, 01:21:53 下午
引用自: markwu
Hi trevoryu;

謝謝,我會再從新把他 patch 回 1.0.2,下一版釋出時應該就正確了。真是不好意思,造成你的不便。

Mark


好像是我的問題, 因為這個 bug 還掛在我頭上 XD


主題: 1.0升級至1.0.1的問題
作者: markwu六月 15, 2005, 01:39:07 下午
引用自: pest
引用自: markwu
Hi trevoryu;

謝謝,我會再從新把他 patch 回 1.0.2,下一版釋出時應該就正確了。真是不好意思,造成你的不便。

Mark


好像是我的問題, 因為這個 bug 還掛在我頭上 XD


可是這的確是 Oscar 還是 Ben 把 ADOdb upgrade 之後忘了做 Patch 所造成的。真是要命的錯誤,程式越大越難管,忘東忘西的  :-P

你可以做好修改後 upload 上 bugs.lifetype.net 嗎? 我會把他 commit 上去。我把 bug 590 (http://bugs.lifetype.net/view.php?id=590) assign ,如果你沒空,沒關係, assign 給我,我會來做。 :-D

Mark


主題: 1.0升級至1.0.1的問題
作者: Loaf六月 16, 2005, 03:10:05 上午
什麼時候會有1.0.2出來呢?

之前請Pest幫助把舊的MT資料匯出成MySQL的備份檔後,(Pest,真是太謝謝你了),在匯回MySQL時,也遇到了和trevoryu一樣的問題。
有趣的是,我照著trevoryu所說,把adodb-mysql.inc.php中的三段hacks貼回去後,首頁會變得白白一片,也沒有任何錯誤的訊息。Pest寄了一份adodb-mysql.inc.php給我參考,不一樣之處我是看得出來,但因為功力不夠,實在不知怎麼參考起。把它全部覆蓋上去,也沒有成功。(Pest,真是太對不起你了)
使用1.0.1雖然文字成為問號,但是頁面的架構是正常的,所有的連結也可以用。
我嘗試把資料倒在1.0中,問題就相反了。文字顯現正常,但是頁面的架構則變得不正常(模板的效果沒有出來,除了文字以外背景全變成白色,原來在右邊的導覽區會靠到左邊,文章被擠到下面。)所有的連結點選都失效,包括詳細閱讀。
因為懷疑是不是AppServ 2.4.3的問題,我也試了EasyPhp 1.8,結果一樣。

另外一個有趣的現象是,在把資料庫匯回MySQL,(此時是0.3.2的格式),使用pLog做昇級的動作時,執行wizard.php,它第一次會顯示「一般的安裝」,然後會告訴你資料庫內已存有資料(22個表格),先幫你加上另外4個表格,然後跟你說安裝失敗。不過只要把資料庫內的資料先刪除,再匯回資料,再執行wizard.php,它會顯示出「昇級」的頁面,而且之後的安裝也不會有問題。
我本來也只以為是某種意外,從頭安裝三次(使用不同的WAMP),發現這個意外還滿一致的,提出來給大家參考。

致於我自己的問題,我已不好意思再問Pest了,(他自己試過沒問題,我卻裝不起來,唉~~)。只要1.0.2早點出來,我想一切都會雨過天晴的了。


主題: 1.0升級至1.0.1的問題
作者: pest七月 02, 2005, 10:52:49 下午
引用自: markwu
引用自: pest
引用自: markwu
Hi trevoryu;

謝謝,我會再從新把他 patch 回 1.0.2,下一版釋出時應該就正確了。真是不好意思,造成你的不便。

Mark


好像是我的問題, 因為這個 bug 還掛在我頭上 XD


可是這的確是 Oscar 還是 Ben 把 ADOdb upgrade 之後忘了做 Patch 所造成的。真是要命的錯誤,程式越大越難管,忘東忘西的  :-P

你可以做好修改後 upload 上 bugs.lifetype.net 嗎? 我會把他 commit 上去。我把 bug 590 (http://bugs.lifetype.net/view.php?id=590) assign ,如果你沒空,沒關係, assign 給我,我會來做。 :-D

Mark


Hi Mark,

我已經放好很久了, 不過不知道是不是因為掛在我頭上所以你們沒收到通知?
可以幫我 commit 進去嗎? 謝謝。


主題: 1.0升級至1.0.1的問題
作者: pest七月 02, 2005, 10:55:51 下午
對那些目前用 1.0.1 的使用者:

把 1.0 版的 class/database/adodb/drivers/adodb-mysql.inc.php 蓋過 1.0.1 版相同檔案即可, 新舊版之間除了我的 patch 外沒有差異。


主題: 1.0升級至1.0.1的問題
作者: markwu七月 05, 2005, 11:41:44 上午
引用自: pest
對那些目前用 1.0.1 的使用者:

把 1.0 版的 class/database/adodb/drivers/adodb-mysql.inc.php 蓋過 1.0.1 版相同檔案即可, 新舊版之間除了我的 patch 外沒有差異。


Hi Pest

非常非常抱歉 :-$ ,我沒注意到。我馬上放。

Mark