使用ASP編程常見問題集

來源:互聯網
上載者:User
使用ASP編程常見問題集

  問題:如何保護自己的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功能。實現代碼如下:

  〈%<br />  set mail = server.createobject("cdonts.newmail")<br />  mail.to ="abc@xxx.com"<br />  mail.from ="yourmail@xxx.com"<br />  mail.subject ="主題"<br />  mail.body ="e-mail內容"<br />  mail.send<br />  %〉  問題:ASP與資料庫連接一定要在伺服器端設定dsn嗎?

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

  串連代碼如下:

  set conn=server.createobject("adodb.connection")<br />  connpath="dbq="&amp;server.mappath("yourtable.mdb")<br />  conn.open"driver={microsoft access driver (.mdb)};"&amp;connpath<br />  set rs=conn.execute("selectfrom authors")</p><p>  問題:如何從一頁到另一頁傳遞變數? </p><p>  答:用hidden表單類型來傳遞變數。</p><p>  〈form method="post"action="mynextpage.ASP"〉<br />  〈% for each item in request.form %〉<br />  〈input namee="〈%=item%〉"type="hidden"<br />  value="〈%=server.htmlencode(request.form(item)) %〉"〉<br />  〈% next %〉<br />  〈/form〉</p><p>  用session來儲存變數。</p><p>  〈%session("bh")= request.form ("bh")%〉</p><p>  用querystring儲存變數。</p><p>  〈a herf="action.ASP?bh=10"〉查詢〈/a〉<br />  〈%request. querystring ("bh")%〉  問題:如何用ASP實現線上人數統計?

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

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

  golobal.asa檔案</p><p>  〈script language="vbscript"runat="server"〉<br />  sub session—onstart<br />  application("online")=application("online")+1<br />  end sub<br />  sub session—onend<br />  application("online")=application("online")-1<br />  end sub<br />  sub application—onstard<br />  application("online")=0<br />  end sub<br />  sub application—onend<br />  application("online")=0<br />  end sub<br />  〈/script〉</p><p>  online.ASP檔案內容</p><p>  〈% tmp=application("online")<br />  tmp=cstr(tmp)<br />  dim disp(20)<br />  dim images(20)<br />  dbbits=len(tmp)<br />  for i= 1 to dbbits<br />  disp(i)=left(right(tmp,i),i-(i-1))<br />  next<br />  for i=dbbits to 1 step -1<br />  images(i)="〈img src="&amp;"http://xxxx.com.cn/pic"&amp;"/"&amp;disp(i)&amp;".gif〉"<br />  response.write"document.write(′"&amp;images(i)&amp;"′);"<br />  next %〉</p><p>  問題:ASP程式啟動並執行時間如何計算?</p><p>  答:確定ASP程式的執行時間的代碼如下所示:</p><p>  〈%<br />  dim t1,t2<br />  t1=now()</p><p>  ′被檢測的ASP代碼</p><p>  t2=now()<br />  response.write"運行這段ASP代碼用了"&amp;cstr(cdbl((t2-t1)*24*60*60))&amp;"秒"<br />  %〉
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.