LifeType 中文開發論壇

測試 => LifeType 1.0 測試 => 主題作者是: firer 於 三月 11, 2005, 10:16:20 下午



主題: 1.0版本后台发表文章时,文章预览有问题
作者: firer三月 11, 2005, 10:16:20 下午
http://intelblog.com/plog/index.php?op=ViewArticle&articleId=359&blogId=1

这篇文章预览时报错:

Exception message: Invalid argument supplied for foreach()
Error code: 2
-- Backtrace --
/www/users/zwww.net/plog/class/action/admin/adminpreviewpostaction.class.php(41): _loadarticlecategories
/www/users/zwww.net/plog/class/action/admin/adminpreviewpostaction.class.php(81): adminpreviewpostaction._loadarticlecategories
/www/users/zwww.net/plog/class/controller/controller.class.php(238): adminpreviewpostaction.perform
/www/users/zwww.net/plog/admin.php(36): admincontroller.process

Exception message: Cannot modify header information - headers already sent by (output started at /www/users/zwww.net/plog/class/object/exception.class.php:39)
Error code: 2
-- Backtrace --
/www/users/zwww.net/plog/class/view/view.class.php(150): header
/www/users/zwww.net/plog/class/view/view.class.php(284): viewarticleview.sendcontenttype
/www/users/zwww.net/plog/class/view/smartyview.class.php(158): view.render
/www/users/zwww.net/plog/class/view/blogview.class.php(216): smartyview.render
/www/users/zwww.net/plog/class/view/viewarticleview.class.php(70): blogview.render
/www/users/zwww.net/plog/class/controller/controller.class.php(258): viewarticleview.render
/www/users/zwww.net/plog/admin.php(36): admincontroller.process

This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please upgrade to a browser that supports web standards. It's free and painless.



---------------------------------------------------
http://intelblog.com/plog/index.php?op=ViewArticle&articleId=350&blogId=1

这篇文章预览,不弹出预览页面,原页面左下角显示黄色感叹号。

-------------------------------------------------------------

http://intelblog.com/plog/index.php?op=ViewArticle&articleId=355&blogId=1
这篇文章预览没有问题。看来不是我上传文件不完整的问题。 :'(  :'(  :-$


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 13, 2005, 10:25:48 上午
你能給我帳號,讓我試試嗎?請 PM 我。

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: cody三月 14, 2005, 03:44:23 上午
我也一樣出現這些訊息~
測試1 ==> 一般純文字,沒問題
測試2 ==>  大量文字,沒問題
測試3 ==>  一些語法或是字型定義,就會出現這些訊息


主題: 1.0版本后台发表文章时,文章预览有问题
作者: lurking三月 14, 2005, 08:05:44 上午
我也发现有这个问题,同意楼上的看法,
不过我发现在firefox中预览正常,但是在ie中预览会出现楼主所说的问题。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 14, 2005, 08:57:57 上午
我測了一個晚上的結果也是這樣。看來是 xmlHtppRequest 的問題。傷腦筋。有人熟 xmlhttprequest 的嗎?這個真的不知如何 debug 下去。 :-(

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 14, 2005, 01:55:52 下午
我錯了!不是 xmlHttpRequest 的問題,是 url 在傳遞時如果用 get 得方式有字串長度限制。我不會修,跟 Oscar 討論中 ... :-(

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: cody三月 14, 2005, 06:05:58 下午
可是我查過~
他是透過 post ~
並不是使用  get  所以不會有 1024 位元組問題

js/htmlarea/plugins/CharacterMap/popups/select_character.html:<form method="get" style="margin:2px; padding:2px" onSubmit="Set(document.getElementById('showCharacter').value); return false;">
js/htmlarea/popups/insert_image.html:<form action="" method="get">
js/htmlarea/popups/insert_table.html:<form action="" method="get">
js/htmlarea/popups/select_color.html:<form method="get" style="margin:0px; padding:0px" onSubmit="Set(document.getElementById('ColorHex').value); return false;">

這是目前有用 get 幾個地方...
其他都是使用 post 取值~
我還在看 code ....先去吃飯:D


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 14, 2005, 06:11:33 下午
你看一下 class/action/admin/adminnewpost.class.php ,注意 這兩行

引用
      {if $browser->has_feature("xmlhttpreq")}
      <input type="button" name="saveDraftAndContinue" value="{$locale->tr("save_draft_and_continue")}" onclick="javascript:saveDraft()" />
      {/if}   
      <input type="button" name="previewPost" value="{$locale->tr("preview")}" onclick="javascript:previewNewPost()" />


他並非 submit 而是 button,然後在 javacsript 中組成 url ,然後用 get方式送出。

請參考 /js/plogui/common.js 跟 /js/plogui/plogui.js.

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 17, 2005, 11:21:32 上午
用简体中文,在预览时是乱码,需要更改什么? 


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 17, 2005, 01:11:21 下午
现在发现问题是好像预览只支持 UTF-8的格式,我把local文件改成了gb2312就出问题了。

如何修改能让预览也不出现乱码?

谢谢。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 17, 2005, 01:46:19 下午
預覽的部分,我們作了一些 trick

當編碼是 UTF-8時
我們是用 encodeURIComponent 來作 url encode

當其他編碼時
我們用 escape 來作 urlencode

我在猜可能 big5/gb2312 也都得用 encodeURIComponent 來作 url encode

你可以看一下 /js/plogui/common.js 下的 getPostEditFormElements,把 GB2312 與 big5 的判斷加入試試看。

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 17, 2005, 06:10:26 下午
引用自: markwu
預覽的部分,我們作了一些 trick

當編碼是 UTF-8時
我們是用 encodeURIComponent 來作 url encode

當其他編碼時
我們用 escape 來作 urlencode

我在猜可能 big5/gb2312 也都得用 encodeURIComponent 來作 url encode

你可以看一下 /js/plogui/common.js 下的 getPostEditFormElements,把 GB2312 與 big5 的判斷加入試試看。

Mark


把GB2312 加入后,还是出现乱码,不过把enclodeURIComponent去掉,
直接用postExtendedTextEditor.getHTML(),到是显示正常了。不明白为什么这里要对传输的内容加密,目的是什么啊?

另外,encodeURIComponent和escape函数,我怎么没有找到定义?mark是否能告诉我,谢谢了。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: lss三月 17, 2005, 08:17:03 下午
引用自: noel

把GB2312 加入后,还是出现乱码,不过把enclodeURIComponent去掉,
直接用postExtendedTextEditor.getHTML(),到是显示正常了。不明白为什么这里要对传输的内容加密,目的是什么啊?

另外,encodeURIComponent和escape函数,我怎么没有找到定义?mark是否能告诉我,谢谢了。

這兩個函數不是 PHP 的函數,而是 Javascript 的 method 。
請參考 encodeuRIComponent (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsmthencodeuricomponent.asp) 和 escape (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsmthescape.asp) 。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 17, 2005, 11:40:35 下午
拿掉就 okay?

那完蛋了,這樣有三種情況:

有的必須用 encodeURIcomponent
有的只能用 escape
然後還有都不能用

 :-(

得在試試。

你能去 bugs.plogworld.org 回報一下嗎?

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 18, 2005, 04:41:38 下午
引用自: markwu
拿掉就 okay?

那完蛋了,這樣有三種情況:

有的必須用 encodeURIcomponent
有的只能用 escape
然後還有都不能用

 :-(

得在試試。

你能去 bugs.plogworld.org 回報一下嗎?

Mark


bugs.plogworld.org 我上不去啊!比较喜欢在这里讨论。要不mark去帮我提交bug report吧。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 18, 2005, 05:02:48 下午
引用自: lss
引用自: noel

把GB2312 加入后,还是出现乱码,不过把enclodeURIComponent去掉,
直接用postExtendedTextEditor.getHTML(),到是显示正常了。不明白为什么这里要对传输的内容加密,目的是什么啊?

另外,encodeURIComponent和escape函数,我怎么没有找到定义?mark是否能告诉我,谢谢了。

這兩個函數不是 PHP 的函數,而是 Javascript 的 method 。
請參考 encodeuRIComponent (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsmthencodeuricomponent.asp) 和 escape (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsmthescape.asp) 。


thx...


主題: 1.0版本后台发表文章时,文章预览有问题
作者: lss三月 18, 2005, 05:45:16 下午
引用自: markwu
預覽的部分,我們作了一些 trick

當編碼是 UTF-8時
我們是用 encodeURIComponent 來作 url encode

當其他編碼時
我們用 escape 來作 urlencode

我在猜可能 big5/gb2312 也都得用 encodeURIComponent 來作 url encode

你可以看一下 /js/plogui/common.js 下的 getPostEditFormElements,把 GB2312 與 big5 的判斷加入試試看。

Mark

hi mark:
忽然想起來,曾看過的這個:
引用
urlencode

(PHP 3, PHP 4 , PHP 5)
urlencode -- URL-encodes string
Description
string urlencode ( string str )

Returns a string in which all non-alphanumeric characters except -_. have been replaced with a percent (%) sign followed by two hex digits and spaces encoded as plus (+) signs. It is encoded the same way that the posted data from a WWW form is encoded, that is the same way as in application/x-www-form-urlencoded media type.

※來自 http://www.php.net/manual/en/function.urlencode.php

和這個:
引用
Returns a string in which all non-alphanumeric characters except -_. have been replaced with a percent (%) sign followed by two hex digits. This is the encoding described in RFC 1738 for protecting literal characters from being interpreted as special URL delimiters, and for protecting URL's from being mangled by transmission media with character conversions (like some email systems). For example, if you want to include a password in an FTP URL:
Or, if you pass information in a PATH_INFO component of the URL:

※來自 http://www.php.net/manual/en/function.rawurlencode.php

所以,我的認知是,用在 URL 後面的 Query 字串應該用 urlencode ;而用在 path_info (網址的一部份)的則是用 rawurlencode 。

相對於 JavaScript ,要用 encodeURIComponent 或 escape 應該是由字串在 path_info 還是 query string 來決定,而跟那一種語系編碼無關。

不知道有沒有錯,大家討論一下。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 19, 2005, 10:22:35 上午
Hi Lss:

這我就有一點不懂。其實我在看的時候想法跟你一樣,為什麼pLog 沒有用 urlencode,可是還真的不需要耶。你可以搜尋一下程式,在做資料傳遞時,完全沒用 :(

這也是我很納悶。

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 19, 2005, 10:23:07 上午
HI Noel:

預覽的 bug 已經修復,你可以是是看嗎?

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: lss三月 19, 2005, 11:02:52 下午
引用自: markwu
Hi Lss:

這我就有一點不懂。其實我在看的時候想法跟你一樣,為什麼pLog 沒有用 urlencode,可是還真的不需要耶。你可以搜尋一下程式,在做資料傳遞時,完全沒用 :(

這也是我很納悶。

Mark

hi mark:
pLog 有用 urlencode,在 class/net/rawrequestgenerator.class.php 裡面,有一個 getRequest 函數,就是專門為一般網址模式的 query string 做 urlencode。

說到這個,當初追這段程式的時候,對 Oscar 實在很佩服,不同網址模式竟然可以用這種方法來為。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 21, 2005, 12:15:09 下午
Hi lss:

那邊有用我知道。可是在前台資料傳回後台的部分,他完全沒用。所以這幾個函示用不到 preview 上面耶!

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: lss三月 21, 2005, 12:36:46 下午
引用自: markwu
Hi lss:

那邊有用我知道。可是在前台資料傳回後台的部分,他完全沒用。所以這幾個函示用不到 preview 上面耶!

Mark

其實這相當合理啦!因為前台的所有連結都是由 *requstgenerator 產生的,都已經處理過了,所以不需再另外考慮要不要處理 encode 的問題。
至於 preview ,其實不止是 preview ,在寫文章時插入的所有檔案中心資源,因為都是用 javascript 傳給 htmlarea/一般編輯模式 ,所以當初 0.3x 時都沒處理到,我才會去做這裡的 patch 。 後來升級 1.0 時,那個部份分離出來,又漏了我在 0.32 時做的 patch,所以前一陣子才又 report 一次。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 21, 2005, 12:41:03 下午
mmm..... 瞭解,可是不太懂耶! 從 forum submit 回來的部分不需要透過 urlencode 處理阿?他是透過 httvars.class.php 來處理,並不需要做 urlencode 或 decode。

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 21, 2005, 05:42:08 下午
引用自: markwu
HI Noel:

預覽的 bug 已經修復,你可以是是看嗎?

Mark


我下载了最新的code,覆盖了原来版本的/js 和 /class目录下的所有文件,可预览还是有问题。 是我没有更新完全吗?


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 21, 2005, 08:03:20 下午
什麼問題?是有亂碼?還是有錯誤是訊息在預覽畫面上呢?

如果室友亂碼?請先依照我上面說的先修正一下,就是你之前的方法把 escape 跟 encodeURIComponent 都拿掉。我還在跟 lss 討論中。

如果是有錯誤訊息讓我看一下你的錯誤訊息。

mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 22, 2005, 12:55:40 下午
引用自: markwu
什麼問題?是有亂碼?還是有錯誤是訊息在預覽畫面上呢?

如果室友亂碼?請先依照我上面說的先修正一下,就是你之前的方法把 escape 跟 encodeURIComponent 都拿掉。我還在跟 lss 討論中。

如果是有錯誤訊息讓我看一下你的錯誤訊息。

mark


是乱码。
另外,我按照以前的方法,把eascape和encodeURIComponent都拿掉了,也不行了。看来你们修改了class。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 22, 2005, 04:28:31 下午
瞭解!所以你是 GB2312 編碼?mmm.... 傷腦筋。可以麻煩你到 bugs.plogworld.org 報告這個 bug 嗎?


Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 22, 2005, 08:23:42 下午
引用自: markwu
瞭解!所以你是 GB2312 編碼?mmm.... 傷腦筋。可以麻煩你到 bugs.plogworld.org 報告這個 bug 嗎?


Mark


已经report了。

另外,老大,不是plogworld.org, 是lifetype.net,嘿。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 22, 2005, 08:28:54 下午
哈哈!抱歉,我每次都打錯,真是謝謝提醒!

Mark

** 另外,我看你上面的報告,你說只要去掉 escape 跟 encodeURIComponent 就正常。mmm...可是你不是說不正常嗎?  :-P


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 22, 2005, 09:35:34 下午
引用自: markwu
哈哈!抱歉,我每次都打錯,真是謝謝提醒!

Mark

** 另外,我看你上面的報告,你說只要去掉 escape 跟 encodeURIComponent 就正常。mmm...可是你不是說不正常嗎?  :-P


如果是20030317版本的,去掉函数就是正常的。但现在最新的这个20030321的,按照老方法做还是不正常。估计是不是更改class了,而不是简单更改了common.js  ???


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 22, 2005, 10:50:30 下午
Hi noel:

還是要你幫我測一下,當預覽出現亂碼後,你把 browser 的編碼改成 utf-8 來看看,是變正常了還是繼續是亂碼?

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 23, 2005, 10:52:58 上午
引用自: markwu
Hi noel:

還是要你幫我測一下,當預覽出現亂碼後,你把 browser 的編碼改成 utf-8 來看看,是變正常了還是繼續是亂碼?

Mark


预览出现乱码后,我更改UTF-8,不能显示网页,提示:无法显示网页,你查看的网页不可用。

就是说popup方式打开的窗口,好像没办法更换编码。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 23, 2005, 11:53:23 上午
Hi noel:

瞭解了!我得查查了。 Oscar 的確是改了整個 preview 的 implement 方式,跟之前有些不同。

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 23, 2005, 11:35:08 下午
引用自: markwu
Hi noel:

瞭解了!我得查查了。 Oscar 的確是改了整個 preview 的 implement 方式,跟之前有些不同。

Mark


我看了你们关于这个issue的讨论,Oscar好像还不了解,在内地,网站有90%使用的是GB2312,台湾有80%以上使用Big5。呵呵,他应该好好重视这个问题啊,毕竟大多数安装plog的用户,他们还有其他系统需要运行,是希望各系统之间能很好的数据交换的。


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu三月 24, 2005, 10:39:56 上午
其實不是他不瞭解!而是我們沒想到編碼的問題竟然遠超過我們想像。

我們滿後悔沒有一開始決定只支援 UTF-8。呵呵!

例如,我修了UTF-8 語系, 西歐語系就錯誤,然後西歐語系修了, GB2312 錯誤。你就知道為什麼我們那麼『討厭與訝異』這個問題。就像鬼影一樣,隨時出現。 :-(

我已經再看了,你就稍稍等等吧。

Mark


主題: 1.0版本后台发表文章时,文章预览有问题
作者: noel三月 24, 2005, 11:11:27 上午
引用自: markwu
其實不是他不瞭解!而是我們沒想到編碼的問題竟然遠超過我們想像。

我們滿後悔沒有一開始決定只支援 UTF-8。呵呵!

例如,我修了UTF-8 語系, 西歐語系就錯誤,然後西歐語系修了, GB2312 錯誤。你就知道為什麼我們那麼『討厭與訝異』這個問題。就像鬼影一樣,隨時出現。 :-(

我已經再看了,你就稍稍等等吧。

Mark


辛苦辛苦,其实编码是很头疼的事情。

如果仅仅只支持UTF8,那到是很简单了,不过会流失一部分用户噢。

编码标准就是这样,制定了但不见得大家都会遵守,UTF8是很好的支持多字节的国际编码,但到了local,就很少有人用,除非是迫不得已。


主題: 不知道是否有新进展?
作者: noel三月 28, 2005, 06:04:53 下午
等待ing    :-D   :-*


主題: 1.0版本后台发表文章时,文章预览有问题
作者: markwu四月 01, 2005, 01:51:58 下午
這個 bug 解了兩天,我解不出來!因為是 IE 的錯誤, sigh .... Firefox 下已經解決的。誰可以幫幫我阿!

Mark