2010年5月26日 星期三

以Asp實作Virtual Directory

原理:
透過自定 Http 的 404 - file not found, 來實作 Virtual Directory (虛擬目錄).


執行畫面:
把 max.jsp 設定成去執行某個 asp



設定方式:
1. 設定 IIS:
設定 404 的類型為 URL,
內容為 /inc/max.404Handler.asp


2. 設定 重導 URL 的 mapping 在 /public/404Handler/404.xml
3. 後台 Virtual Directory 的設定界面在 /admin/virtualDirectory/editact.asp


附件清單:
\web\inc\max.404Handler.asp
\admin\virtualDirectory
\admin\inc\max.404Handler.asp
\admin\inc\max.DB.Function.asp
\admin\inc\max.File.Function.asp
\admin\inc\max.String.Function.asp
\admin\virtualDirectory\editact.asp
\public\404handler\404.dtd
\public\404handler\404.xml


附件下載:



資料來源:

2010年4月29日 星期四

[JS].日曆元件更新.201004229

說明: 增加 "縮小/放大" 及 "今天 (Today)" 的這2個按鈕.

執行畫面:


相關設定值:
isWinHeader: true (是否要顯示標頭)
isWinDrag: false (是否可以托曳)
isYearEditable: true (年份是否可以下拉選擇)
isMonthEditable: true (月份是否可以下拉選擇)
headerText: '日曆' (標頭要顯示的文字)



附註: 官網的版本, 如果您在 IE6 去使用, 會遇到多跑出一個圖層的話(因為 iframe 的 top 值有錯), 請改用附件裡我修改的版本, 只有修改 dhtmlxcalendar.js 裡的一行指令.



2010年4月28日 星期三

[SQL].判斷未滿20歲的人數是否過半

SELECT
CASE (SELECT COUNT(ACCOUNT) FROM memberdata) WHEN 0 THEN 'No'
ELSE
CASE
Floor(
( SELECT CONVERT(DECIMAL(8, 2), (SELECT COUNT(ACCOUNT) FROM memberdata WHERE Datediff("d", birthday, Getdate()) < 365.25*20) )
/
CONVERT(DECIMAL(8, 2), (SELECT COUNT(ACCOUNT) FROM memberdata))
) + 0.5
)
WHEN 0 THEN 'No' ELSE 'Yes'
END
END AS 'moreThanHalf'

2010年4月12日 星期一

[SQL].取上下筆資料的Sample

分享 T-SQL 的句子, 可以用來取上/下一筆的資料.

附註: row_number() over(...) 這個指令, 要 sql server 2005 以上的版本才有支援.


--// 取上一筆
select top 1 * from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where rownum < (
select rownum from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where id=?
)
order by rownum desc

--// 取下一筆
select top 1 * from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where rownum > (
select rownum from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where id=?
)


--// 取自己 rownum
select rownum from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where id=?



特別感謝: 鈺鈞告訴我有這個指令.


2010年4月8日 星期四

[Tool].網頁debug工具--Fiddler2

檔案下載:

以下是轉貼的資料:


Fiddler算是微軟的一個「地下產品」。這軟體是免費的、也不推廣、不掛Micorsoft LOGO。

他是一套Debug軟體,會監測我們「看網站」的時候,究竟讀取了哪些網頁、程式、圖片、Flash、JavaScript、影片、CSS。除了Debug的功用之外,換個思路,就可以幫設計師做到一些怪怪的事情。

例如:
1. 抓Flash:
很多Load 來 Load去的Flash網站,你原本只能抓到一個最外層的swf,但現在可以把那些「看的到、但抓不到」的swf全部抓下來。

2. 抓JS,CSS:
不用看HTML原始碼,就知道某網站用了哪些JavaScript、CSS。

3. 抓FLV:
不用看原始碼,就把無名影音或是Youtube的影片(flv)抓回來。
4. 抓圖:
Flash裡頭Load的圖檔。

5. 輕鬆解決網頁設計時的「路徑問題」,尤其是跨網域或是目錄很多層,又有html又有flash的時候。

步驟是:
1. 打開IE。按下Fiddler的按鈕。(可以從Rules\ Hide Images選項,關掉gif,jpg等圖片的紀錄)
2. 進入你要監測的網站。
3. 視窗上面,會出現該網站全部的Session紀錄。(如下圖)
4. 無論你做什麼動作,IE讀取過哪些程式、flash,都會給你網址。

網路行銷參考案例左邊小圖示會告訴你相關的檔案類型,還有結果的http代碼(例如404是找不到檔案)

自己試試。http://www.fiddlertool.com/fiddler/


必須安裝.net framework才能啟動fiddler
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&DisplayLang=zh-TW

2010年4月4日 星期日

檢查 SQL Server 有哪些索引應該被重建

如果不能直接執行的話, 要到資料庫屬性 => 選項 => 資料庫相容性層級,會出錯的資料庫相容性層級本來是SQL SERVER 2000(80),改成SQL Server 2005(90)即可。

下面的文章由 will 發表於 2009/1/18:

讓 SQL Server 告訴你有哪些索引應該被重建或重組

我去年有一段時間睡覺前都在看 SQL Server 2005 證照的書(MCTS 70-431),從中學到許多資料庫實際運作的技術細節,例如: 索引的結構。當資料庫中的索引碎裂(index fragmentation)程度過高時,索引的效率就會大大降低,為了避免這個問題發生,就必須定時替資料庫健檢(維護資料庫),也就是進行索引重建(rebuild)或索引重組(reorganize)。

Microsoft SQL Server 2005 實作與維護 Ⅱ 此書的第12章有提到你可以透過 SELECT 指令搭配 sys.dm_db_index_physical_stats 這個動態管理函示(DMF, Dynamic Management Function) 可以查出資料庫中所有索引的碎裂狀態,如下 T-SQL 語法:

SELECT OBJECT_NAME(dt.object_id) ,

si.name ,

dt.avg_fragmentation_in_percent,

dt.avg_page_space_used_in_percent

FROM

(SELECT object_id ,

index_id ,

avg_fragmentation_in_percent,

avg_page_space_used_in_percent

FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, 'DETAILED')

WHERE index_id <> 0

) AS dt --does not return information about heaps

INNER JOIN sys.indexes si

ON si.object_id = dt.object_id

AND si.index_id = dt.index_id


執行後的結果長這樣:

查出資料庫中所有索引的碎裂狀態

但何時該做索引重建(ALTER INDEX…REBUILD)?又何時該做索引重組(ALTER INDEX…REORGANIZE)呢?此書也有提供一些建議值供資料庫管理員在進行索引維護時的參考。

索引重組的時機

  • 檢查 External fragmentation 部分
    • 當 avg_fragmentation_in_percent 的值介於 10 到 15 之間
  • 檢查 Internal fragmentation 部分
    • 當 avg_page_space_used_in_percent 的值介於 60 到 75 之間

索引重建的時機

  • 檢查 External fragmentation 部分
    • 當 avg_fragmentation_in_percent 的值大於 15
  • 檢查 Internal fragmentation 部分
    • 當 avg_page_space_used_in_percent 的值小於 60

由於索引的維護都是透過 ALTER INDEX 進行的,所以即便索引的數據分析出來後還是要人工下 ALTER INDEX 指令來重建或重組索引。最近看到一篇文章分享一個很實用的 T-SQL 指令,他可以自動幫你算出哪些索引需要被重建或重組,而且直接幫你把 ALTER INDEX 的 T-SQL 都寫好,程式碼如下:


SELECT 'ALTER INDEX [' + ix.name + '] ON [' + s.name + '].[' + t.name + '] ' +

CASE

WHEN ps.avg_fragmentation_in_percent > 15

THEN 'REBUILD'

ELSE 'REORGANIZE'

END +

CASE

WHEN pc.partition_count > 1

THEN ' PARTITION = ' + CAST(ps.partition_number AS nvarchar(MAX))

ELSE ''

END,

avg_fragmentation_in_percent

FROM sys.indexes AS ix

INNER JOIN sys.tables t

ON t.object_id = ix.object_id

INNER JOIN sys.schemas s

ON t.schema_id = s.schema_id

INNER JOIN

(SELECT object_id ,

index_id ,

avg_fragmentation_in_percent,

partition_number

FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL)

) ps

ON t.object_id = ps.object_id

AND ix.index_id = ps.index_id

INNER JOIN

(SELECT object_id,

index_id ,

COUNT(DISTINCT partition_number) AS partition_count

FROM sys.partitions

GROUP BY object_id,

index_id

) pc

ON t.object_id = pc.object_id

AND ix.index_id = pc.index_id

WHERE ps.avg_fragmentation_in_percent > 10

AND ix.name IS NOT NULL


這段 T-SQL 只有檢查 External fragmentation 部分而已,而且上面分享的這段 T-SQL 語法與原文的數值不太一樣,我有調整過,讓判斷的臨界值符合 Microsoft SQL Server 2005 實作與維護 Ⅱ 書中建議的數值。以下是執行結果的圖示:

自動幫你算出哪些索引需要被重建或重組的結果

你只要複製這些語法,並且執行一遍,就可以完成索引維護了。

相關連結



2010年3月26日 星期五

URL 排程小工具(maxGet v1.0)

程式目的:
執行某一個 URL.執行完後程式會自動關閉.


檔案下載:
maxURLTask.zip Download


執行畫面:
1. 由於執行的網址, 可能有安全性上考量,所以會被擋下來.


2. 請到 "安全性" 做設定, 把該 domain name 加到 "信任的網站" 中.



3. 設定完成後, 即可正常使用該程式, 如果有需要做測試, 就在該程式的參數加上 debug=1.



相關工具:
wget , ie

2010年3月19日 星期五

[Asp].資料複制的副程式

程式目的: 單筆資料做複制.

範例1, 主檔資料做 copy:

newMainID = insertIntoSameTableByWhere("mainTable","","mainID=" & mainID)

這個附程式會把 mainTable 的某筆資料 copy 到 mainTable 中, 而 newMainID 是 mainTable 新的流水號.


範例2, 第2層的副檔資料做 copy:
newDetailID = insertIntoSlaveTableByWhere("detailTable","","maindID=" & mainID & " and detailID=" & detailID,"mainID", newMainID)

這個附程式會把 detailTable 的某筆資料 copy 到 detailTable 中,
而 newMainID 是 mainTable 新的流水號, 透該副程式一併 insert 到新的資料中.
該副程式會取得插入資料到第2層副檔後的流水號 (newDetailID).



範例3, 第3層的副檔資料做 copy:
call insertIntoSlaveTableByWhere("detailItemTable","","mainID=" & mainID & " and detailID=" & detailID,"mainID,detailID", newMainID & "," & newDetailID)

這個附程式會把第3層的副檔(detailItemTable) 的某筆舊的 detailID 的資料 copy 到 detailTable 中,
而 newMainID 是 mainTable 新的流水號, 透該副程式一併 insert 到新的資料中.
而 newDetailID 是 detailTable 新的流水號, 透該副程式一併 insert 到新的資料中.
雖然該副程式會傳回插入資料到第3層副檔後的流水號, 由於不需要再做處理, 所以改用 call sub.


副件檔案:
max.DB.Function.asp

download:

2010年2月25日 星期四

IIS 7 允許檔案名稱有+ 號

解決方式:
使用 [以系統管理員身分執行] 選項開啟命令提示字元,並將目錄變更至 %windir%\system32\inetsrv
啟用雙重逸出,請在命令提示字元輸入下列命令,然後按 ENTER:

appcmd set config /section:requestfiltering /allowdoubleescaping:true

執行畫面:


相關文章:


IIS7 rejecting URLs containing + .

Here is the deal. The IIS7 request filter rejects URLs containing + characters. We do this because the + character is a dangerous choice. Some standards, e.g. the CGI standard require +'s to be converted into spaces. This can become a problem if you have code that implements name-based rules, for example urlauthorization rules that base their decisions on some part of the url.
Here is a cooked up example:
Let's suppose you have code that evaluates the following rule:



With the ambiguity of leaving +'s in place or converting +'s to spaces there is a possiblity that your rule engine allows access to a non-Admin, for example if the attacker enters http://myserver/my+vdir. The "my vdir" authorization rule won't match because your authorization code searches for the string "my+vdir" but your rule says "my vdir". Your rule won't apply and the attacker gets access.

If you absolutely want to have spaces you can simply turn off the doubleEscaping feature for your application, for your site or for the whole server. Here is an example:

%windir%\system32\inetsrv\appcmd set config "Default Web Site" -section:system.webServer/security/requestfiltering -allowDoubleEscaping:true



2010年2月24日 星期三

IIS 7掛載網芳的虛擬目錄

慢慢地, 用 windows 20008 + iis 7 的伺服器會愈來愈多, 可以先學起來, 以後可能可以用的到, 方法應該不只一個, 這只是解法的一種.

環境:

兩台 Windows Server 2008 + IIS 7 伺服器
主機1: 192.168.x.1
主機2: 192.168.x.2

網站共享的檔案都放在檔案伺服器上,網路分享的 UNC 路徑為 \\192.168.x.2\Public
我需要在192.168.x.1 網站根目錄下建立一個 Public 虛擬目錄,並且目錄需對應到 \\192.168.x.2\Public 分享目錄。


設定步驟:

1. 新增一個應用程式集區(Application Pool):
新增應用程式集區時,名稱自己取,但是 .Net Framework 版本務必選取「沒有 Managed 程式碼」!



2. 接著並不是新增「虛擬目錄」,而是要新增「應用程式」, 虛擬目錄按右鍵後, 也可以轉換成應用程式.

接著必須設定別名、選取正確的應用程式集區、設定實體路徑(UNC路徑)、設定連線身份設定「連線身份」時,記得在開放分享目錄的那台主機(192.168.x.2),與 WebFarm (192.168.x.1) 中的成員主機,都必須要有同樣一組帳號、密碼,才能正確透過 UNC 存取檔案,否則一樣會導致權限不足無法存取檔案的情況。


相關文章:

2010年2月11日 星期四

[SQL].列資料轉成欄資料

目的:
分享一個 T-Sql 句子, 把列裡的資料, 轉成欄位裡.

當有一筆資料, 某一個欄位是做一對多 (例如: checkbox), 想要把 的那些資料一口氣串在 的那一筆的某個欄位裡, 可以試看看這樣做.


執行畫面:

1. 原始資料如下:
SQL: select * from testTable



2. 把列資料轉成欄資料:
SQL:
select * from testTable
DECLARE @SQL Varchar(max)
select @SQL=''
SELECT @SQL=@SQL + '' + convert(varchar(20),id) + ','
FROM testTable
select @SQL


幫 function 整理及包裝一下後, 就可以用
SQL: select [dbo].[fn_getTestTitles]('1,3')
來取出第id=1及3 這2筆的資料.


包裝了2個 function 如下:
CREATE FUNCTION [dbo].[fn_getTestTitles](@myData varchar(200))
RETURNS nvarchar(2000)
AS
BEGIN
DECLARE @SQL Varchar(max)
select @SQL=''
SELECT @SQL=@SQL + '' + title + char(13) + char(10)
FROM testTable
where id in (select data from dbo.fn_slip_str(@myData,','))
RETURN (@SQL)
END


Create Function fn_slip_str( @InStr nvarchar(2000) , @s_char nvarchar(1) )
Returns @tb Table ( sno int , data nvarchar(100) )
As
Begin
Set @InStr = @s_char + @InStr + @s_char;
Declare @p1 Int , @p2 Int , @data nvarchar(100) , @sno int;
Set @p1 = -1 ; Set @p2 = -1 ; Set @data = '' ; Set @sno = 0;
While ( 0 Not In (@P1,@P2) ) Begin
Set @p1 = CharIndex(@s_char,@InStr,@p1+1);
Set @p2 = CharIndex(@s_char,@InStr,@p1+1);
If ( 0 In (@p1,@p2) )
Break;
Set @data = SubString(@InStr,@p1+1,@p2-@p1-1);
if ( @data <> '' ) Begin
Set @sno = @sno +1;
Insert Into @tb ( sno , data ) Values ( @sno , @data )
End
End
Return
End


相關文章:

2010年2月10日 星期三

[js].分享日曆元件


執行畫面:


使用方式:
step 1: 加入 include

step 2: 在產生出來的欄位後方, 加入這一段 javascript script:



附件: Download

2010年2月5日 星期五

[Asp].IIS7 上傳檔案大小限制

上傳檔案時遇到 執行錯誤: 'ASP 0101 : 80004005'
原因: 上傳的內容大小超過限制,預設是200K.


Windows 2003 (IIS 6.0) 解決辦法:
1.停止 IIS 服務,
2. 打開 C:\Windows\System32\Inetsrv 中的 metabase.XML, 並修改 AspMaxRequestEntityAllowed 為你需要的值(例如 1073741824, 1GB)。
如果還是不行的話, 修改看看 AspBufferingLimit 裡的值.
3. 啟動IIS服務。


Windows 2008 (IIS 7.0) 解決辦法:
1. 在iis 裡點選要修改的站台.




2. 修改 [Asp] -> [限制內容] -> [要求實體的上限], 改好後並按下 "套用".

附註:其實 200k 就夠用了說, 如果是分次從 user 的 client 端瀏覽器一次讀取200k 的做的話, 例如程式碼:

        dim myTotalBytes
        dim myReadBuffer
        dim myReadLimit
        myReadBuffer = 200000     '// 200KB
        myTotalBytes = Request.TotalBytes
        if myTotalBytes > 0 then
            do
                if myTotalBytes <= myReadBuffer then
                    '// read one time.
                    BinaryStream.write Request.BinaryRead(myTotalBytes)
                    myTotalBytes = 0
                else
                    '// read many time.
                    BinaryStream.write Request.BinaryRead(myReadBuffer)
                    myTotalBytes = myTotalBytes - myReadBuffer
                end if
                if myTotalBytes < 1 then
                    exit do
                end if
            loop
        end if



2010年2月3日 星期三

[Asp].建議避免用 Response.AddHeader 同時設定 contentType 及 charset.

測試主機 OS: Windows Server 2008 standard 版 service pack 1
測試主機 Web Server: Microsoft-IIS/7.0


(會有問題的) Asp Code:
Response.AddHeader "Content-Type", "text/xml; charset=utf-8"

(會有問題的) 執行結果:
Content-Type: text/xml; charset=utf-8,text/xml; Charset=utf-8

造成有問題的畫 面:



(建議的) Asp Code:
Response.CacheControl = "cache"
Response.AddHeader "Pragma", "cache"
Response.charset = "UTF-8"
response.contentType = "text/xml"

(建議的) 執行結果:
Content-Type: text/xml; Charset=UTF-8


2010年1月20日 星期三

[Asp].匯入欄位長度>255 的 excel 檔.

目的:
解決1: 有混合資料(文字&數字) 欄位時, asp 讀取該列時, 會讀出 NULL.
解決2: 匯入欄位長度可以 >255 個位元.

解決辦法:
1.修改 connection 的 connection string,
'// 舊的連線字串
'myExcelConnectionString = "DBQ=" & strExcelFileName & ";DRIVER={Microsoft Excel Driver (*.xls)};"
'// 新的連線字串
myExcelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strExcelFileName & ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
請參考附件的 import_act.asp

2. 修改 web server 上的 register.

1. 在 IIS server 的主機上, 點 "開始" -> "執行", 指令輸入框裡輸入 Regedit , 並按下 Enter.

2. 開啟下面這個項目,
Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/ImportMixedTypes
修改內容為 Text
3. 開啟下面這個項目,
Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRows
修改內容為 0

或直接執行附件 ExcelLargeDataSetting.reg

參考資料:


附註: 要被Asp 處理的 excel 的 sheet 要修改 sheet 名稱為 import.

2010年1月19日 星期二

[Bat].重新啟動 IIS 和 Database 用的批次檔

程式目的: 重新啟動 IIS 和 Database, 用來釋放被占用的系統記憶體.

建議用的檔名: restartIISandDB.bat

@echo off
net stop iisadmin /y
net start w3svc
net stop mssqlserver /y
net start mssqlserver
net start sqlserveragent
exit
附註: 可以設排程, 定時來啟動該批次檔.

2010年1月15日 星期五

程式目的:
showHideLayers 調整, 由原本的 visibility 改成 display.


使用方法:
直接取代舊的副程式即可.


source code 如下:
javascript 下載

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}


function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
if (v!='bool') {
obj.display=v;
}
else if (obj.display=='block') {
obj.display='none';
}
else if (obj.display=='none' || obj.display=='') {
obj.display='block';
}
}

2010年1月14日 星期四

[Asp].陣列加強版 2010.01.14

程式目的:
加強陣列的功能.

使用範例:
<!--#include Virtual = "/inc/max.Array.Object.asp" -->
<%
dim a2
Set a2 = New maxArrayObject


'// 把字串轉成陣列
a2.fromString("3,1")
'// or 用下面這行指令:
' a2.item = array("3","1")

'// sort asc
' a2.sort()
' response.write a2.toString()



'// sort desc
' a2.fromString("1,3")
' a2.sortDesc()
' response.write a2.toString()

'// check item exist (附註: 數字3 及 字串 "3" 是不相等的)
' response.write "<br/>isExist:" & a2.isExist("3")
' response.write "<br/>isExist:" & a2.isExist(3)
' response.write "<br/>isExist:" & a2.isExist("9")

'// find item. (附註: find 會傳回一個 index)
' response.write "<br/>find 1:" & a2.find("1")
' response.write "<br/>find 3:" & a2.find("3")

'// compre two array, is array equal.
' dim a4
' a4 = a2.getArray()
' response.write "<br/>is array equal:" & a2.equal(a4)



'// append new item.
a2.append("5")
' response.write a2.toString()

'// insert "2" before "3"
' a2.insert "2", 1
'// or
a2.insert "2", a2.find("3")

'// append array, a6 陣列加到 a2 陣列後面.
' dim a6
' a6 = a2.getArray
' a2.appendArray(a6)

'// count item. 查詢某個值在陣列裡出現的次數.
' response.write "<br/>count item 1: " & a2.countItem("1")

'// delete item,
'// 先查詢 "1" 出現在 a2陣列裡, 再使用 a2.deleteIndex 刪除該值.
a2.delete("1")

'// delete from array, 用來一次刪除一堆的值.
dim deleteResult
dim deleteArraySet
set deleteResult = new maxArrayObject
deleteArraySet = array("4","5","6")
deleteResult.setArray(a2.deleteFromArray(deleteArraySet))
response.write "<br/>deleteResult to string: " & deleteResult.toString()
'// 附註: { 2 ,3 ,5 } - { 4 ,5 ,6 } = { 2 ,3 }

'// 計算加總.

' response.write "<br/>sum: " & a2.sum



'// 計算平均.
' response.write "<br/>average: " & a2.average


'// 存取陣列某一筆.
response.write "<br/>item 1: " & a2.item(0)

'// 輸出陣列內容.
response.write "<br/>to string: " & a2.toString()
%>







附件列表: ArrayObject.zip

max.Array.Function.asp , 副程式.
max.Array.Object.asp , 物件化的程式.




附註:
如果您有在使用這個物件, 並有加強他的功能的話, 請再把您修改過的寄給我用, 謝謝.

2010年1月7日 星期四

[Asp].存取不同網站的 session 資料.


程式目的:
存取不同網站的 session 資料.


使用方法:
用 web serivce 去要資料.


附註:
可以把所有 "非" object 資料的 session 以文字方式傳回來, 網站間可以只傳1個變數(比較有效率), 也可以全部變數都傳回來.


  • \SiteA\caller.asp client 端的主程式, 這個範例是去要 server 端的 mem_userid 這個變數回來.
  • \SiteA\inc\WinHttp.asp client 端的副程式
  • \SiteB\xdGetSessionSet.asp server 端的主程式

Facebook 留言板