使用ASP常見問題集(轉載)

來源:互聯網
上載者:User
解答|問題 本文:

(作者:林子 2000年06月07日 14:12)


  問題:如何保護自己的ASP原始碼不泄露?



  答:下載微軟的Windows Script Encoder,對ASP的指令碼和用戶端JavaScript、VBScript指令碼進行加密。用戶端指令碼加密後,只有IE5以上的版本才能執行,伺服器端指令碼加密後,只有伺服器上安裝有Script Engine 5(裝IE5即可)才能解釋執行。



  問題:為什麼Global.asa檔案總是不起作用?



  答:只有把Global.asa檔案放在Web發布目錄某個網站的根目錄下它才有效,放在發布目錄的某個子目錄下不起作用。另外,也可以使用IIS4的Internet Service Manager把某個子目錄設定為網站。



  問題:為什麼ASP檔案總不解釋執行?



  答:在IIS伺服器上沒有給ASP檔案以指令碼解釋的許可權,所以ASP檔案沒有被Web伺服器作為指令碼代碼進行解釋執行,而被當成一般分頁檔了。建議在Web發布目錄中建立一個ASP目錄,把所有ASP檔案存放在此目錄下,把ASP目錄賦予指令碼解釋許可權。



  問題:ASP檔案中使用Response.Redirect(url) 時導致錯誤“ The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content”,請問如何解決?



  答:此錯誤為HTTP 標題在寫入頁內容之後,寫到了客戶瀏覽器中。任何 HTTP 標題的修改必須在寫入頁內容之前進行,解決的方法為在ASP檔案最開頭加入Response.Buffer = True,在檔案的結尾加入Response.Flush。



  問題:為什麼Session 有時候會消失?



  答:Session很像臨時的Cookie,只是其資訊儲存在伺服器上(客戶機上儲存的是SessionID)。Session變數消失有幾種可能,如:使用者的瀏覽器不接受Cookie,因為Session依賴於Cookie才能跟蹤使用者;Session在一段時間後到期了,預設為20分鐘,如果希望更改,可以通過設定Microsoft Management Console的Web Directory→Properties→Virtual Directory→Application Settings→Configuration→App Options→Session Timeout選項來改變Session的逾時時間,也可以在ASP指令碼中設定, 如Session.Timeout=60,可設定逾時時間為60分鐘。



  問題:怎樣才能知道訪問者的一些資訊?



  答:通過Request.ServerVariables(″HTTP—USER—AGENT″)獲得訪問者瀏覽器的類型; Request.ServerVariables(″REMOTE—ADDR″)可獲得訪問者的IP地址;而訪問者的語言環境可通過Request.ServerVariables(″HTTP—ACCEPT—LANGUAGE″)來獲得。



  問題:怎樣才能將Query String從一個ASP檔案傳送到另一個ASP檔案?



  答:前一個ASP檔案加入下列代碼:Response.Redirect(″second.asp?″ & Request.ServerVariables(″QUERY—STRING″))即可。



  問題:ASP中如何控制Cookies?



  答:若想寫入Cookies可用:Response.Cookies(″待寫入的Coookies名稱″)=待寫入資料。讀取Cookies則使用:讀取資料=Request.Cookies(″待讀的Cookies名稱″)。

  注意,寫入Cookies的Response.Cookies程式段必須放在〈html〉標記之前,且不可以有任何的其它html代碼。另外,Cookies中必須使用Expires設定有效期間,Cookies才能真正地寫入用戶端硬碟中,否則只是臨時的。



  問題:怎樣實現用ASP發送郵件?



  答:使用者需裝上Windows NT Option pack的SMTP Service功能。實現代碼如下:〈%

  Set mail = Server.CreateObject(″CDONTS.NewMail″)

  mail.TO = ″abc@xxx.com″

  mail.From = ″yourmail@xxx.com″

  mail.Subject = ″主題″

  mail.Body = ″E-Mail內容″

  mail.Send

  %〉



  問題:ASP與資料庫連接一定要在伺服器端設定DSN嗎?



  答:不一定, ASP與伺服器的資料庫連接有兩種方法,一種為通過DSN建立串連,另一種不用DSN建立串連。通過DSN串連資料庫需要伺服器的系統管理員在伺服器的控制台中的ODBC中設定一個DSN。如果沒有在伺服器上設定DSN,只要知道資料庫檔案名(比如Access、Paradox、FoxPro的資料庫)或者資料來源名(如SQLserver的資料庫)就可以訪問資料庫,直接提供串連所需的參數即可。

  串連代碼如下:

  set conn=server.createobject(″adodb.connection″)

  connpath=″DBQ=″ & server.mappath(″yourtable.mdb″)

  conn.Open ″DRIVER={Microsoft Access Driver (.mdb)}; ″ & connpath

  set rs=conn.execute(″select from authors″)



  問題:如何從一頁到另一頁傳遞變數?



  答:用Hidden表單類型來傳遞變數。

  〈 form method=″post″ action=″mynextpage.asp″〉

  〈% for each item in request.form %〉

  〈input namee=″〈%=item%〉″ type=″Hidden″

  value=″〈%=server.HTMLEncode(Request.form(item)) %〉″〉

  〈% next %〉

  〈/form〉

  用Session來儲存變數。

  〈%Session(″bh″)= request.form (″bh″)%〉

  用QueryString儲存變數。

  〈a herf=″action.asp?bh=10″〉查詢〈/a〉

  〈%Request. QueryString (″bh″)%〉



  問題:如何用ASP實現線上人數統計?



  答:線上人數是指一個時段內的訪客人數統計,時間的長短是由設計者設定的。

  在這個時段內,各個不同IP訪問本網站的總數,就是當前的線上人數。在ASP中,使用Session對象來實現統計,實現代碼如下:

  Golobal.asa檔案

  〈SCRIPT LANGUAGE=″VBScript″ RUNAT=″Server″〉

  Sub Session—OnStart

  application(″online″)=application(″online″)+1

  End Sub

  Sub Session—OnEnd

  application(″online″)=application(″online″)-1

  End Sub

  sub Application—OnStard

  application(″online″)=0

  End Sub

  sub Application—OnEnd

  application(″online″)=0

  End Sub

  〈/SCRIPT〉

  Online.asp 檔案內容

  〈% tmp=application(″online″)

  tmp=Cstr(tmp)

  dim disp(20)

  dim images(20)

  dbbits=len(tmp)

  f



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.