Wednesday, April 28, 2010

Win 7 更換序號

1. 用"以系統管理員身分執行" 打開 cmd 程式
2. 輸入 "slmgr.vbs -ipk "
3. 完後要 active window, 輸入 "slmgr.vbs -ato"

之後可用 slmgr.vbs /dli 查看是否有更換成功 (會顯示序號的某一部份)

Wednesday, March 24, 2010

XMLHttpRequest status == 0 ?

這是我在測試一個簡單的 Ajax 的 sample 測試出來的..

function RequstSend()
{
var XmlHttp = new XMLHttpRequst();

var url = "Test.cgi";
XmlHttp.open('GET', url, true);
XmlHttp.send(null);
XmlHttp.onreadystatechange = function() {
if (XmlHttp.readyState == 4)
{
if (XmlHttp.status == 200)
{
alert(XmlHttp.responseText);
}
}
};
}

在 XmlHttp.status 預期成功的話會收到 200 OK 的訊息, 而 XmlHttp.responseText 會收到 Server 傳過來的內容.
但是幾次的測試下, 發現 status 都回傳 "0", 而且 responseText 內容都是空的,
而用 firebug 查看了一下 XmlHttp 的 statusText property, 結果又是顯示 "OK" 的字樣
想說都已經 OK 了, 怎麼 status 不是預期的 200, 而內容又為何會空的呢 ?

後來我想是不是我連結 page 與我去 request 的 page (test.cgi) 所在的角色並不同呢 ?
結果就發現..因為我連結測試網頁, 在 browser 上所顯示的 url 是以檔案路徑的方式去拿取 (ex: file:///D:/www/index.html) 而對於 request 的 page 來說像是去要另外一個 server 上的 file 一樣.

所以若是 url = "http://youraddress/test.cgi" 所得到的 status == 0 , responseText 為空的; 若是 url = "test.cgi" 所得到的 status == 0, responseText 為整個檔案內容, 而不是我們預期出現的 response 內容.

所以我們若是連結我們的 page , 以 http://youraddress/index.html , 而 test.cgi 放置與 index.html 放置同一個 directory, 則以 http request 回來的 status 就是 200 OK, 而內容也是我們預期 server 回應的內容了.

Reference link : Using XMLHttpRequest

IIS7 + CGI , 讓cig程式執行

再上一篇有教學如何在 win7 中, 將 IIS 與 php 配合使用
而這裡要介紹如何將 cgi 程式能夠在 windows 上的 web server 作用..

首先你先要裝 ActivePerl

然後再 IIS server manager 的中間的功能檢視, 選擇 "處理常式對應"

在右邊選擇 "新增指令對應", 並鍵入

要求路徑 : *.cgi

執行檔 : C:\Perl\bin\perl.exe "%s" %s

名稱 : (自行取)

要求限制中的指令動詞 : GET,HEAD,POST

確認後會跳出, 是否允許ISAPI擴充成式 ?.... 按下"是"

接這就寫一個簡單的 cgi 程式來測試一下是否行

Link : cgi 範例程式

Tuesday, March 23, 2010

解決 IIS 7 + php in win 7 中, 設定 "處理常式對應" 的錯誤

網路上很多教學如何設定你的 web server :

IIS7 + ASP + PHP 安裝指南,Vista x32 版 2009/02 update
Doc : MigratingPHPApplicationstoIIS7


其中一步要設定指令碼 php5isapi.dll 路徑,

然而在 win 7 中, 路徑並沒有像在 xp 一樣點選站台右鍵內容, 在主選單中的 "應用程式設定" 中設定, 而是在功能檢式中的 "處理常式對應" , 再點選右鍵, 選擇 "新增指令碼對應" 設定

但是當我要點選 "處理常式對應" 此設定的時候, 會發生一個問題

如下圖所式 : 後來在網路上查了一下...

預設 handlers 的 overrideModeDefault 是 "Deny" 的

所以, 首先你要先找到 applicationHost.config 的位置 (在 "執行" 打上 "%windir%\system32\inetsrv\config\"), 然後更改檔案中,
<section name="handlers" overridemodedefault="Deny"> </section>
overrideModeDefault 的值 deny 改為 Allow, 然後就可以點選應用常式處理來作設定的動作了..

Saturday, March 06, 2010

將 source code 貼在你的 blog 上 - SyntaxHighliger 2.1

使用 Syntaxhighlighter 來將你的 source code 以整齊, 且有行號的方式來貼在你的 blog 上
ex :

<script type="text/javascript">
var test;
funciton foo()
{
alert('Hello world!');
}
</script>

目前版本 2.1

其實就是將 SyntaxHighlighter 所提供的 script 與 css 加入 blog 架構中

可以參照 SyntaxHighlighter/Usage

目前有支援到的 code 有這些 : SyntaxHighlighter/Brushes

而所需要的 script 和 css 檔案可以參照官網上的 ftp 檔案
ex :

<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" />

src 位置就是目前最新版本的 file

這邊有幾個蠻詳細的網站, 講的蠻詳細, 因此我就不需要再多解釋了
SyntaxHighlighter出2.1版了
在 Blogger 中插入美觀的程式碼 ~ 使用syntaxhighlighter 2.0 實戰

當然官網也可以逛一逛瞜..
SyntaxHighlighter

幾個需要注意的地方是...
在以

<pre class="brush:your_language">
... your content
</pre>

包起來的內容中,如果有需要以 tag 的方式呈現, 則你的左括號 "<" 需要以編碼的方式呈現 (&lt;), 右括號 ">" 就不需要, 不過要一起編碼也可以 (&gt;)

Thursday, March 04, 2010

[Javascript] call function

在javascript 中若要使用 var.foo() 的方式 call var 的 foo()
則可以這樣寫 :

Friday, January 29, 2010

Aptanan 使用心得

在用 Aptana 來撰寫 javascript
用 Firefox 開啟 sample 時, firebug 會出現一些 exception 如下...

[Exception... "'JavaScript component does not have a method named: "onLocationChange"' when calling method: [nsIWebProgressListener::onLocationChange]" nsresult: "0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED)" location: "JS frame :: file:///C:/Users/jack.yang/AppData/Roaming/Mozilla/Firefox/Profiles/y7waiq2b.default/extensions/firebug@software.joehewitt.com/components/firebug-channel-listener.js :: anonymous :: line 198" data: no]

[Exception... "'JavaScript component does not have a method named: "onLocationChange"' when calling method: [nsIWebProgressListener::onLocationChange]" nsresult: "0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED)" location: "JS frame :: file:///C:/Program%20Files/Mozilla%20Firefox/components/nsSessionStore.js :: sss_observe :: line 320" data: no]

[Exception... "'JavaScript component does not have a method named: "onLocationChange"' when calling method: [nsIWebProgressListener::onLocationChange]" nsresult: "0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED)" location: "" data: no]

而在網路上有人提供解決方案...

這是在 firefox add-ons 裡有裝 flashGot 這個 extension.

將他 disable 就不會有 exception message 出現了