September 30, 2004

[PHP] 惱人的 Warning: Cannot add header information - headers already sent by ....

寫過 PHP 的人一定看過這個訊息..

Warning: Cannot add header information - headers already sent by ..

有空再解釋原理及發生的原因,一般可以用 PHP 的 ob 系列函數來處理,但是比較簡單的方式也可以用打開 PHP Output buffer 的方式來解決。

打開的方法:

方法1.在 php.ini 裡面找到 output_buffering ,並改為1。

方法2.由於虛擬主機不可能改 php.ini ,因此只要在自己網站的根目錄新增一個 .htaccess 的檔案,並且加入下面這一行:

PHP_FLAG output_buffering On

這個方法跟 apache 的 .htaccess AllowOverride 權限有關,所以如果用 phpinfo(); 看還是沒有的話,就要先在 .htaccess 裡面改為:

AllowOverride Options
PHP_FLAG output_buffering On


AllowOverride All
PHP_FLAG output_buffering On

這樣看看有沒有 HTTP 500 Error 的錯誤訊息,如果有的話,就可能要請主機商打開 .htaccess AllowOverride 了。

Posted by Neo at 09:16 AM | Comments (15)

September 28, 2004

[Javascript] 請勿用保留字來取 HTML 的標籤名

剛剛查一個 javascript 的 bug ,原因是 document.form1.submit(); 不能動作。出現的錯誤訊息是「物件不支援此屬性或方法」。

這種 document.form1.submit(); 的 javascript 是再平常不過的指令,怎麼可能不支援呢?

後來才發現,是美編把 submit 的按鈕取名叫 submit,也就是在 HTML 裡面有一行是:

<input type="submit" name="submit" value="submit">

這樣 document.form1.submit(); 就無法執行了,因為 document.form1.submit 已經變成那個按鈕的物件了,自然 submit 的 method 也無法動作。

因為自己不會犯這種用保留字來取 HTML Tag name 的錯誤,不過遇到對程式不熟的美編,還是會遇到這種狀況,只能自求多福了。

Posted by Neo at 01:13 AM | Comments (10)

September 25, 2004

Tomcat 的 Context 設定檔可以拆開了

今天我的 NB 上面突然 Tomcat 不能跑了,後來就先裝到 Linux 環境,試了一整天,後來才發現原來 Context 設定可以移到 conf/Catalina 裡面。

conf/Catalina 內有一個預設 localhost 的本機資料夾,裡面就可以依照自己要放的程式目錄來各別放專案的 xml 檔。

如想要 http://localhost/box ,就在 localhost 放一個 box.xml ,裡面的 context 設定就延用原來 web.xml 的,這樣拆開的確很方便,只是自己玩了半天才發現,真是浪費時間。

Posted by Neo at 05:39 PM | Comments (0)

September 24, 2004

會吵的小孩有糖吃

今天收到中國信託的帳單,因為遲繳了一星期,白白被收了137元的循環利息。晚上馬上打電話去理論,他們的網路銀行到繳款截止日後一星期才發信通知沒繳錢,實在另人匪夷所思,馬上抓著這個把柄跟客服人員談。

雖然我的姿態很高,但是這次這個客服也不是省油的燈,還教訓起我來了,說為什麼不用自動扣繳,我跟他說「如果我被盜刷,還自動扣繳掉,不就變冤大頭了?」

而且我用卡也差不多八年了,除了念書有在用循環利息,出了社會早就沒在用了,今天才遲交一下子就給我收這個錢,實在不合情理。客服人員被我罵了一頓之後,還沒好氣的說,下次這種狀況就不能再取消循環利息了。

其實很多狀況該爭取的就不要吝嗇,以大哥大業者來說,遠傳的服務真的沒話說,我打電話去說我沒在用簡訊費率,三個月的沒用到費率馬上回扣。另外送的什麼特別網內優惠,我也說沒在用,晚了一個月更改回一般費率,馬上客服人員也立刻回扣上個月收的費用,真的是一級棒。

總之,會吵的小孩有糖吃,不要吝嗇花時間跟銀行或商家溝通,一個人多收100元,一萬個人就是100萬,實在不是小數目,真的別忘了自己的權益,肥了那些賺錢的商人。

Posted by Neo at 12:13 AM | Comments (3)

September 23, 2004

讓 Web Script 轉頁時自動指定 Frame

一般在用 ASP、PHP、JSP 等 Web scripts 轉頁時,有 frame 的狀況下都是轉在同一個 Frame ,變成如果有時要 refresh 整個 frame 時,就會變成這樣。

登入前:

20040923_01.gif

登入後:

20040923_02.gif

看到了嗎? 左邊的地方又重覆多了一層選單出來。

對於我這種不喜歡用 javascript 來搭配轉頁的人,利用 meta 的 <BASE>來指定動作的 Frame 是最好的方法,於是我在左邊 Frame 的 <head></head> 裡面加入 <BASE target="_top">,target 就是你要反應的 Frame名稱,如果指定 _top 即為頂層frame,也就是右邊視窗的所有動作,都會反應在整個畫面上 。

<head>
    :
    :
<BASE target="_top">
</head> 


果然 javascript 一行都不用寫,只要右邊轉頁,整個畫面都跟著變動,左邊的選單也不會重覆出現了。

20040923_03.gif

Posted by Neo at 09:47 PM | Comments (3)

商人的煩惱

今天忙到一個段落去吃飯,覺的自己有時真的很想回去上班族的工作。

我一直覺的很奇怪,為什麼每個人畢業後大部份都只能當上班族,往上爬到最後,人人都變商人。不想爬的就跑出來自已創業當商人,台灣似乎好像也沒有其它工作好作了。

看著路人,除了欠一屁股債的人,大概十之八九都是過著穩定的生活,想著自己手邊一堆事,簽了一個麻煩的合約又不能解,已經賠錢在做了,還有一堆客戶等著要我趕東西出來,想想短時間內要賺那麼多錢,幾乎已經是沒日沒夜的生活了。

這時又不禁羡慕起上班族來了...

昨天中午演習看雜誌上寫,東森老大王令麟說為了拚東森購物每天嗑維他命熬夜的日子我真的領教到了,如果只是純作工,累就算了,人的問題真的很難處理。

希望我的合約能早點解決掉...

Posted by Neo at 08:40 PM | Comments (3)

September 19, 2004

Microsoft SQL Server Enterprise Manager 無法開啟的解決方式

20040919_01.gif

Microsoft SQL Server Enterprise Manager 是用 MMC 來開啟管理的功能,依照捷徑來看是在:

C:\WINDOWS\system32\mmc.exe /s "C:\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC"

直接到指定路徑去執行 SQL Server Enterprise Manager.MSC 果然同樣出現錯誤的畫面。

這時最簡單的方法就是改名一下檔名,把 SQL Server Enterprise Manager.MSC 改成xxxx.MSC 即可。

若是問題太嚴重,可能還是不能執行,這時就只能拿出 SQL Server 的光碟片,找到:

x86\binn\SQLEM.msc

把這個檔案放到剛剛看到的路徑下面,並改名覆蓋掉原來的
SQL Server Enterprise Manager.MSC 就可以了。

若蓋掉還是不能執行,就再來改名一次,捷徑記得手動修改或重新再拉一個就可以了。

Posted by Neo at 10:10 AM | Comments (5)

September 17, 2004

Microsoft ADODB 邊讀邊刪注意事項

用 ADODB 寫過轉檔程式的人應該都知道,寫在這兒備忘一下好了。

原本邊讀邊刪的部份應該是長這樣:

Dim rs As New ADODB.Recordset
            :
Do Until rs.EOF 
            :
            :
      rs.Delete()
      rs.MoveNext()
Loop

但是刪到最後一筆的時候,就會出現參照到已刪除資料列的問題,這時只要加上紅字部份就可以了。

Dim rs As New ADODB.Recordset
            :
Do Until rs.EOF 
            :
            :
      rs.Delete()
      If Not rs.EOF Then  rs.MoveNext()
Loop
Posted by Neo at 08:59 PM | Comments (0)

September 15, 2004

為什麼網路銀行的字都那麼小?

大家看到這個標題,大概想到的原因不外乎是「功能多」「畫面美觀」等等。

20040915_02.gif

(上圖是土地銀行的畫面)

但是像我這種討厭小字的人,就會特別去注意這個問題。昨天到銀行裝機,又讓我發現一個原因。

銀行行員不論是新舊電腦,用的都是 800x600 的解析度,一些老行員還是在用 640x480,就算換了新液晶螢幕也一樣用非最佳解析度再看畫面。

因為 800x600 的畫面,一般 1024x768 看到很小的字,在他們那邊看起來字就很大了,而且也比較符合一些習慣這些解析度的使用者來瀏覽。

但是再小也不要小到像土地銀行跟玉山銀行這樣吧,真的不是很好看耶!

20040915_01.gif

(上圖是玉山銀行的畫面)

Posted by Neo at 12:22 AM | Comments (6)

September 14, 2004

本站 Google 關鍵字「msn 接龍」第一名

20040914_01.gif

可能很久之前就第一了,今天正好有篇迴響,去查一下果然是第一。

(Yahoo 則是排名第2,前五名就佔了三個,僅次於 MSN 官方網站)

20040914_02.gif


(考慮付費廣告業務中,呵呵~^^)

Posted by Neo at 07:25 PM | Comments (6)

September 12, 2004

ASP.Net 的 DataGrid Event 突然不會動作的原因

相信很多人都是用 Visual Studio 2003 寫 ASP.Net,可是明明替 DataGrid 寫好了分頁的功能,卻突然不能動作了?

原因在於Visual Studio 2003 在某些情況以會把 Handles 的 Envent 名稱給拿掉,才會導致事件無法觸發,其實只要加回去就好了,或是利用 Visual Studio 上面的物件及方法名稱清單來建一個新的就可以了。

20040912_01.gif

紅字是 Source Code 中可能會被拿掉的部份,也是導致不能動作的主因。

Private Sub DataGrid1_PageIndexChanged1(ByVal source As Object, 
ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs)
 Handles DataGrid1.PageIndexChanged

End Sub

Posted by Neo at 10:33 AM | Comments (1)

September 09, 2004

簡單,就是一種幸福

在非洲,人只要吃飽就很幸福了。

在台灣,有了名車、豪宅,卻一點幸福感覺都沒有的人卻比比皆是。

資本主義的社會,走到現在這個地步,虛榮跟幸福早就分不清楚了。

生活愈簡單,物慾愈少,才能真正感受到幸福的存在。

Posted by Neo at 09:24 PM | Comments (2)

September 06, 2004

Japonism 日本純手工眼鏡

20040906_02.jpg

上星期三終於拿到了配好的眼鏡,加上蔡司鏡片真的是棒的沒話說。

20040906_01.jpg

20040906_03.jpg

20040906_04.jpg

20040906_05.jpg

20040906_06.jpg

20040906_07.jpg

這陣子比較賺錢了,加上眼鏡是靈魂之窗,也值得奢侈一次。這個牌子在日本算是頂級名牌之一,只是很少有人知道,台灣的相關資訊也很少,不過台灣是有本書「流行時尚A~Z」有介紹這類少見的名牌。

流行時尚A~Z
作者:李性蓁/著
出版社:時報出版

博客來介紹此書:
http://www.books.com.tw/exep/prod/booksfile.php?item=0010244791

由於手工限量,非常稀少,連我去買的店家也只剩二支。奇摩拍賣也有人在賣,一支眼鏡的價位都差不多可以抵2~3支的 GUCCI、 Burberry、Dior 等名牌了。

以下為奇摩拍賣同一拍賣賣家的商品。

Japonism $7600
http://tw.f4.page.bid.yahoo.com/tw/auction/d7510696

Gucci 2004 藍色特別款 $2800
http://tw.f2.page.bid.yahoo.com/tw/auction/b15737175

Burberry 2004 最新流行款 $2800
http://tw.f2.page.bid.yahoo.com/tw/auction/b15737175

Dior 2004 黑框 $3800
http://tw.f4.page.bid.yahoo.com/tw/auction/d7508062

Posted by Neo at 01:18 AM | Comments (18)

September 05, 2004

Google 的「neo blog」關鍵字已升等至第三名

20040905_04.gif

開站到現在剛過半年,剛剛用 neo blog 在 Google 做搜尋,已經超過國外網站及www.blog.idv.tw 了。

只是 Sina 的免費 Blog 服務推出,Google PR 值拚不過 Sina 裡面的 Neo's Blog。(之前看都也沒這個 Blog,突然冒出來的)

說實在話,Neo's Blog 這個名字實在很芭樂,等想到更好的名字再來換。

Posted by Neo at 11:09 PM | Comments (2)

ImageMagick 與 GD Library 縮圖比較

很多人懶的換 ImageMagick 的原因大多是不知道好在哪裡,或是虛擬主機商並不支援。我現在把 ImageMagick 跟 GD Library 轉出來的圖貼在這邊供大家評估看看。

原圖:
20040905_01.jpg

GD2 Library 縮圖:
20040905_02.jpg

ImageMagick 縮圖:
20040905_03.jpg

ImageMagick 官方網站:
http://www.imagemagick.org/

Posted by Neo at 06:47 AM | Comments (6)

September 03, 2004

超臭的維他命

本來到屈臣氏是要買「素食寶」的,結果買了另一瓶 B12 較多的,沒想到一開味道很像狗食,但是卻又比狗食難聞上數倍。

幾天前 Sam 來我家的時候帶了一瓶番茄汁,沒想到拿出來喝之後,配這個維他命可以蓋掉那種難以入喉的氣味,真的是太棒了。

維他命屬於食品,應該沒有跟藥品一樣的加乘效應吧,自以為的啦,呵呵。

Posted by Neo at 11:59 PM | Comments (3)

September 02, 2004

三個免費的 DHTML 選單評比

曾幾何時,過去最多人使用的 HierMenus已經變成收費的版本了。(以下為範例)

20040902_04.gif

今天去 SourceForge 看了一下,介紹三個免費且各具特色的 DHTML 選單給大家。

第一個是PHP Layers Menu System ,下載之後解開發現檔案一大堆,似乎功能太多、設定太過複雜一點。不過由於特點是以 PHP 後端技術為主,Javascript 前端為輔,這跟一般純 DHTML 選單的作法倒是不太一樣。

不過他們的橫幅選單真的是蠻漂亮的,以下為橫幅畫面:

20040902_02.gif


另外一個xmenu最特別的就是橫幅下拉選單(畫面如下),這個可能很多人沒看過,可以到官方網站去看看。

20040902_03.gif


最後看到doiMenu,Demo 的網頁倒是沒什麼特別。抓下來一看,檔案才三個 Javascript 檔,而且樣式多又美觀,而且說明檔案也做的很漂亮。可說是簡單、漂亮、免費三才兼具,尤其是 XP Style 真的非常讚。

20040902_01.gif

附註: 以上三者皆不支援 Frame 外的 Popup 選單。也就是沒有點左 Frame,選單內容出現在右 Frame 的功能。

Posted by Neo at 08:38 PM | Comments (3)

September 01, 2004

特洛依:木馬屠城 TROY

20040901_01.jpg

昨天公休日,前一天晚上還沒睡覺做 MOTOROLA 跟新竹貨運的案子做到中午十二點才把案子交給客戶後,心情才放鬆起來。

布萊德彼特的肌肉真的太讚啦,只是鏡頭一拉遠真的蠻像人猿的。(海報這張照片也蠻像的)

演赫克托的男主角也就是「綠巨人浩克」的男主角在本片看起來就比綠巨人高很多,赫克托這個角色真的是家裡排行老大都有的悲哀,生下來註定要幫弟弟揹黑鍋,老爸不合理的要求也只能默默承擔。

記得某位財經記者說,只要董事長在股東會說到宗教,那家公司通常財務狀況都會變的很難看,也是出脫股票的警訊。

最有名的例子就是威盛,在股東會上說主會保佑,而實際上卻是員工皆忿忿不平,明明幫你賺錢的都是員工,卻什麼功勞都歸給主。

另外相反的例子就是張榮發,張榮發信的是一貫道,但是他的原則就是「企業就是合理化經營,無關宗教」

不論歷史的真實狀況如何,片中特洛依的國王就犯了這個大忌,除了相信太陽神會保佑,也違反孫子兵法的窮寇莫追的原則,最後還相信木馬是祭海神的禮物,加上貪念罩頂,最後才遭致滅城的命運。

另外節錄一篇關於阿基里斯的神話給大家看看:

美麗的女海神蕾蒂斯生下一個孩子,這孩子被預言將成為希臘最偉大的英雄,他的名字叫做阿基里斯。

母親蕾蒂斯為孩子阿基里斯打造金剛不壞之身:

蕾蒂斯乍聽這預言又驚又喜,她把新生兒帶到聖河,雙手緊緊握住阿基里斯的腳踝,將這孩子幾乎完全浸到聖河裡。經過聖河洗禮的阿基里斯,從此擁有一副與眾不同的金剛不壞之身。

長大後的阿基里斯果然驍勇善戰,他為希臘建立不少偉大的功勳。所以在他的生命中,只有勝利與榮耀,他是失敗、挫折、疾病、災難等的絕緣體。直到特洛伊戰爭改變了這一切。

蕾蒂斯求助宙斯支援阿基里斯以攻取特洛伊城:

特洛伊城的王子帕里斯劫走了希臘皇后海倫,阿基里斯奉命不計任何代價,必須救回皇后海倫。

一向戰無不克的阿基里斯,經過九年苦戰,卻依舊攻不下特洛伊城。這時愛子心切的蕾蒂斯心焦如焚,於是隻身前往奧林匹斯山,向眾神之王宙斯求助——以「自己」為代價。終於,在宙斯與眾神的協助下,眼看著阿基里斯就要拿下特洛伊城,不料.......

帕里斯射中阿基里斯的致命傷--腳踝:

阿波羅向帕里斯洩漏了阿基里斯的秘密,這個秘密就是:「腳踝!」

原來當年蕾蒂斯將阿基里斯浸入聖河時,她雙手緊緊握住阿基里斯的腳踝,這是唯一沒有浸到聖河的地方,如今卻成了阿基里斯的致命傷。

帕里斯毫不猶豫地舉起他的弓箭,射向阿基里斯的腳踝,同時也穿透了蕾蒂斯的心。

Posted by Neo at 11:47 PM | Comments (1)