2014年12月8日 星期一

asp建立utf-8文字檔





<%
text = "good"
call create_utf8(text)

%>

<%
Sub create_utf8(text)
  const adTypeBinary = 1
  const adSaveCreateOverwrite = 2
  const adModeReadWrite = 3

  Set objStream = server.CreateObject("ADODB.Stream")
  objStream.Open
  objStream.CharSet = "UTF-8"
  'objStream.WriteText("your text goes here")
  objStream.WriteText(text)

  objStream.SaveToFile server.mappath(".") & "/fname.txt" , adSaveCreateOverWrite
  objStream.Close

End Sub


%>



完畢。

來源 : 這篇
http://gchandra.wordpress.com/2004/08/19/creating-utf-8-files-using-asp/











用javascript語法寫

Thank’s for this tip.

Here is hte translated version for JScript:

var adTypeBinary = 1;
var adSaveCreateOverWrite = 2;
var adModeReadWrite = 3;

var objStream = new ActiveXObject(“ADODB.Stream”);
objStream.Open();
objStream.CharSet = “UTF-8〃;
objStream.WriteText(content);

objStream.SaveToFile(filename, adSaveCreateOverWrite);
objStream.Close();



objStream.LoadFromFile filename
objStream.ReadText


if file exists to append data



補充:

Saving FileSystemObject as UTF
(來源:http://stackoverflow.com/questions/2907466/saving-filesystemobject-as-utf)


Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeText
objStream.Mode = adModeReadWrite
objStream.Open
objStream.Position = 0
objStream.Charset = "UTF-8"
objStream.WriteText strContent
objStream.SaveToFile strABSPath,adSaveCreateOverWrite
objStream.Close
Set objStream=nothing

2014年12月7日 星期日

VMware擴充磁區

(如果要 VMware新增磁碟,看這篇。)




VMware擴充磁區,將原有磁區加大。

原本有40G↑

再增加60G↓  ,最後變120G




VMware新增磁碟


(Ps.如果要 VMware擴充磁區,看這篇。)











2014年12月2日 星期二

字串補零 小技巧


例如抓月份和日期的時候,就不需要用if 來判斷比10小,前頭補零,

直接用right 來補零,簡單明瞭。

r_from_year+1911& right("00"&r_from_month,2) &right("00"&r_from_day,2)

2014年11月26日 星期三

[JavaScript] 呼叫function



把JavaScript的function放在<head>裡面。

return data  // 用 return 關鍵字傳回資料


<html>
<head>
<title></title>

<script language="javascript">
  function run_rss(sID){
window.open('rss.asp?sid='+sID);
  }
</script> 

</head>


if Rs("edit_group") = "68" then
sID= Rs("edit_group")
%>
<script> run_rss(this, <%=sID%> );</script>
<%
end if
<body>
</body>
</html>




參考 :
http://taiwantc.com/js/js_tut_a5.htm

2014年11月2日 星期日

連到遠端資料庫注意事項 (provider: SQL 網路介面, error: 25 - 連接字串無效)

錯誤訊息:

標題: 連接到伺服器
------------------------------

無法連接到 \\172.99.0.99。

------------------------------
其他資訊:

建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。
找不到或無法存取伺服器。確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: SQL 網路介面, error: 25 - 連接字串無效) (Microsoft SQL Server, 錯誤: 87)





總之,是個很烏龍的問題,
連線伺服器只要打ip就好,前面不要加反斜線




完畢。



其他要注意的事項 :


基本上設連接埠即可。

如果伺服器端 TCP Port 1433 有開,但還是連不到,那就有可能:
1. 資料庫不存在。
2. TCP/IP 協定未開啟 (如果 TCP Port 有換,那防火牆的 Port 也要換)。
3. 遠端存取未開啟。
4. 帳戶不存在。
5. 帳戶未授權存取指定的資料庫。



建議也先檢查資料庫主機上的 SQL 組態 (操作看這篇
1.開啟[SQL Server 網路組態]工具(Sql Server Configuration Manager) 
2.選擇[(執行個體名稱)的通訊協定] 
3.確定右方檢視窗格內[TCP/IP 已啟用]後,檢視其[內容] 
4.頁籤[通訊協定]是否設定[全部接聽] 
5.頁籤[IP 位址]內,檢查各 IP 的[TCP 動態通訊埠]與[TCP 通訊埠] 
6.如果[TCP 動態通訊埠]均為 0,請以 IPAll 的那一組通訊埠為主 

再依據上面查看到的[TCP 動態通訊埠]與[TCP 通訊埠]來設定防火牆允許開放的連接埠




另外,也請檢查一下 firewall 套用 policy 的順序,是否有相關的 deny rule 擋在 any rule 前面




參考:
防火牆 SQL 1433 PROT 打開 還是連不到資料庫
https://social.technet.microsoft.com/Forums/zh-TW/ef22cd8c-1561-4fb6-ae82-6ae435dd68fa/-sql-1433-

prot-?forum=sqlservermanagementzhcht

IE 10 youtube 發生錯誤,請稍後再試一次。

IE 10 youtube 發生錯誤,請稍後再試一次。




解決:

工具 > 勾選 "AxtiveX篩選"


完畢。

2014年10月25日 星期六

HTML表格欄位寬度,不受內文影響寬度

症狀 : 
無論怎麼設定 table 的width (欄位寬度) ,還是會被內容字串的長度影響。


醫治良帖 : 

<table style="word-break:break-all">


完畢。





參考 :
強制HTML表格內文不超出設定寬度 (強制斷行)

2014年10月6日 星期一

設定網頁編碼



在做檔案複製的時候,發現中文檔名response出來變亂碼,調整網頁編碼utf-8時,中文檔名顯示正常,但iis給的中文錯誤訊息變亂碼。

因此設定網頁編碼

<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">

2014年8月27日 星期三

下拉式選單 Select


<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
    <td bgcolor="#CAF2FF" width="20%" class="font" align="center">匯入年份</td>
        <td bgcolor="#FFFFFF" width="80%" class="font" align="left">
        <Select Name='sel_year'>
            <option value="" selected>---請選擇---</option>
<%
        For i=year(date) to year(date)+1
%>
<Option Value="<%=i%>"><%=i%></Option>
            <%
Next
%></Select>
           
        </td>
</tr>

2014年8月18日 星期一

sql injection






<%
Response.ExpiresAbsolute = Now() - 1
Response.Buffer = True
Response.Expires = 0
Response.cacheControl="no cache"
Function FRequest(ByVal ChkStr) 

Dim Str 
Str = Trim(Request(ChkStr)) 

If IsNull(Str) Then 
FRequest = "" 
Exit Function 
End If 

Dim re 
Set re = new RegExp 
re.IgnoreCase = True 
re.Global = True 
re.Pattern = "(\r\n){3,}" 
Str = re.Replace(Str,"$1$1$1") 
Set re = Nothing 

Str = Replace(Str,"'","''") 
Str = Replace(Str, "--", "&#45;&#45;")    
Str = Replace(Str, "/*", "&#47;&#42;")    
Str = Replace(Str, "*/", "&#42;&#47;")    
Str = Replace(Str, "select", "sel&#101;ct") 
Str = Replace(Str, "join", "jo&#105;n") 
Str = Replace(Str, "union", "un&#105;on") 
Str = Replace(Str, "where", "wh&#101;re") 
Str = Replace(Str, "insert", "ins&#101;rt") 
Str = Replace(Str, "delete", "del&#101;te") 
Str = Replace(Str, "update", "up&#100;ate") 
Str = Replace(Str, "like", "lik&#101;") 
Str = Replace(Str, "drop", "dro&#112;") 
Str = Replace(Str, "create", "cr&#101;ate") 
Str = Replace(Str, "modify", "mod&#105;fy") 
Str = Replace(Str, "rename", "ren&#097;me") 
Str = Replace(Str, "alter", "alt&#101;r") 
Str = Replace(Str, "cast", "ca&#115;t") 
Str = Replace(Str, "ASPSESSIONIDCCDDTASQ", "") 
Str = Replace(Str, "ASPSESSIONIDCACATBSQ", "") 
FRequest = Str 

End Function
on error resume next
%>
<!-- #include file="../admin/setting/conn.asp"-->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="zh-TW">
<head>




程式 : cat, pda ,timesheet01.asp

2014年8月14日 星期四

檔案複製 錯誤 '800a0046' 沒有使用權限





Set fs=Server.CreateObject("Scripting.FileSystemObject")
fs.CopyFile Src_fName,Des_fPath & "\"



Microsoft VBScript 執行階段錯誤 錯誤 '800a0046'

沒有使用權限

/admin/big5/fun/gen/trans.asp, 列53


使用 On filesystemobject的 .filecopy 方法,得到以下錯誤訊息,應該如何處理? 
Microsoft VBScript runtime error '800a0046' 
Permission denied 

答: 請確定最後的參數有包含一個反斜線(backslash) ,說明如下 
是 "c:\temp\" 
而不是 c:\temp" 

參考
http://big5.webasp.net/article/13/12027.htm




遇到另一個狀況,也是出現同樣的錯誤訊息。

狀況 : 有修改過windows使用者密碼

重開機之後就正常了。


檔案名稱太複雜也不允許,例:RR-ENR-2.1-en-TW.pdf 。





2014年7月26日 星期六

安裝網路印表機



網路上很多教學了

自己就當作紀錄




































完畢。

=========================================

2014年7月16日 星期三

搞定asp

搞定asp


這篇文章教你在一個小時裏如何搞定asp,非常實用,對於想學asp的同學可能有所幫助!!
一、語法
<1>語句
<%...........%>
<2>定義變數dim語句
<%
dim a,b
a=10
b=”ok!”
%>
注意:定義的變數可以是數值型,也可以是字元或者其他類型的
<3>簡單的控制流程語句
1. if 條件1 then
語句1
elseif 條件2 then
語句2
else
語句3
end if
2.while 條件
語句
wend
3.for count=1 to n step m
語句1
exit for
語句2
next
二.asp資料庫簡單*作教程
<1>.資料庫連接(用來單獨編制連接檔conn.asp)
<%
set conn = server.createobject(adodb.connection)
conn.open driver={microsoft access driver (*.mdb)}; dbq= & server.mappath(\bbs\db1\user.mdb)
%>
(用來連接bbs\db1\目錄下的user.mdb資料庫)
<2>顯示資料庫記錄
原理:將資料庫中的記錄一一顯示到用戶端流覽器,依次讀出資料庫中的每一條記錄
如果是從頭到尾:用迴圈並判斷指針是否到末 使用: not rs.eof
如果是從尾到頭:用迴圈並判斷指針是否到開始 使用:not rs.bof
 (包含conn.asp用來打開bbs\db1\目錄下的user.mdb資料庫)
<%
set rs=server.createobject(adodb.recordset) (建立recordset物件)
sqlstr=select * from message ---->(message為資料庫中的一個資料表,即你要顯示的資料所存放的資料表)
rs.open sqlstr,conn,1,3 ---->(表示打開資料庫的方式)
rs.movefirst ---->(將指標移到第一條記錄)
while not rs.eof ---->(判斷指針是否到末尾)
response.write(rs(name)) ---->(顯示資料表message中的name欄位)
rs.movenext ---->(將指標移動到下一條記錄)
wend ---->(迴圈結束)
rs.close
conn.close 這幾句是用來關閉資料庫
set rs=nothing
set conn=nothing
%>
其中response對象是<a rel="nofollow" target="_blank" href='http://school.enet.com.cn/eschool/includes/zhuanti/shuyu/info/1/02/1684.shtml' target='
>增加資料庫記錄
增加資料庫記錄用到rs.addnew,rs.update兩個函數
 (包含conn.asp用來打開bbs\db1\目錄下的user.mdb資料庫)
<%
set rs=server.createobject(adodb.recordset) (建立recordset物件)
sqlstr=select * from message ---->(message為資料庫中的一個資料表,即你要顯示的資料所存放的資料表)
rs.open sqlstr,conn,1,3 ---->(表示打開資料庫的方式)
rs.addnew 新增加一條記錄
rs(name)=xx 將xx的值傳給name欄位
rs.update 刷新資料庫
rs.close
conn.close 這幾句是用來關閉資料庫
set rs=nothing
set conn=nothing
%>
<4>刪除一條記錄
刪除資料庫記錄主要用到rs.delete,rs.update
 (包含conn.asp用來打開bbs\db1\目錄下的user.mdb資料庫)
<%
dim name
name=xx
set rs=server.createobject(adodb.recordset) (建立recordset物件)
sqlstr=select * from message ---->(message為資料庫中的一個資料表,即你要顯示的資料所存放的資料表)
rs.open sqlstr,conn,1,3 ---->(表示打開資料庫的方式)
while not rs.eof
if rs.(name)=name then
rs.delete
rs.update 查詢資料表中的name欄位的值是否等於變數name的值xx,如果符合就執行刪除,
else 否則繼續查詢,直到指針到末尾為止
rs.movenext
emd if
wend
rs.close
conn.close 這幾句是用來關閉資料庫
set rs=nothing
set conn=nothing
%>
<5>關於資料庫的查詢
(a) 查詢欄位為字元型
<%
dim user,pass,qq,mail,message
user=request.form(user)
pass=request.form(pass)
qq=request.form(qq)
mail=request.form(mail)
message=request.form(message)
if trim(user)&x=x or trim(pass)&x=x then (檢測user值和pass值是否為空,可以檢測到空格)
response.write(註冊資訊不能為空)
else
set rs=server.createobject(adodb.recordset)
sqlstr=select * from user where user='&user&' (查詢user資料表中的user欄位其中user欄位為字元型)
rs.open sqlstr,conn,1,3
if rs.eof then
rs.addnew
rs(user)=user
rs(pass)=pass
rs(qq)=qq
rs(mail)=mail
rs(message)=message
rs.update
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write(註冊成功)
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write(註冊重名)
%>
(b)查詢欄位為數字型
<%
dim num
num=request.form(num)
set rs=server.createobject(adodb.recordset)
sqlstr=select * from message where id=&num (查詢message資料表中id欄位的值是否與num相等,其中id為數字型)
rs.open sqlstr,conn,1,3
if not rs.eof then
rs.delete
rs.update
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write(刪除成功)
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write(刪除失敗)
%>
<6>幾個簡單的asp物件的講解
response物件:伺服器端向用戶端發送的資訊物件,包括直接發送資訊給流覽器,重新定向url,或設置cookie值
request對象:用戶端向伺服器提出的請求
session物件:作為一個總體變數,在整個站點都生效
server物件:提供對伺服器上方法和屬性的訪問
(a) response物件的一般使用方法
比如:
<%
resposne.write(hello, welcome to asp!)
%>
在用戶端流覽器就會看到 hello, welcome to asp! 這一段文字
<%
response.redirect(www.sohu.com)
%>
如果執行這一段,則流覽器就會自動連接到 “搜狐” 的網址
關於response物件的用法還有很多,大家可以研究研究
request物件的一般使用方法
比如用戶端向伺服器提出的請求就是通過request物件來傳遞的列如 :你在申請郵箱的所填寫的個人資訊就是通過該物件來將你所填寫的資訊傳遞給伺服器的
比如:這是一段表單的代碼,這是提供給客戶填寫資訊的,填寫完了按“提交”傳遞給request.asp檔處理後再存入伺服器資料庫
<form target="_blank" name="form1" method="post">
<p>
<input type="text" name="user">
</p>
<p>
<input type="text" name="pass">
</p>
<p>
<input type="submit" name="submit" value="提交">
</p>
</form>
那麼request.asp該如何將其中的資訊讀入,在寫入資料庫,在這裏就要用到
request物件了,下面我們就來分析request.asp的寫法
<%
dim name,password (定義user和password兩個變數)
name=request.form(“user”) (將表單中的user資訊傳給變數name)
password=request.form(“pass”) (將表單中的pass資訊傳給變數password)
%>
通過以上的幾句代碼我們就將表單中的資料讀進來了,接下來我們要做的就是將
資訊寫入資料庫了,寫入資料庫的方法上面都介紹了,這裏就不一一復述了。



原文出處:http://smilealin.pixnet.net/blog/post/27721174-%E6%90%9E%E5%AE%9Aasp

2014年6月16日 星期一

啟用瀏覽器的JavaScript


Internet Explorer 8/9
開啟IE瀏覽器。
按下功能表列的[工具],再選擇[網際網路選項];若功能表列並未出現,請先按下鍵盤的Alt鍵再進行操作。
選擇[安全性]標籤。
按下[自訂等級]按鈕。
捲動畫面直到你看到Scripting的字眼。
將Active scripting設定為[啟用]。
按下[確定]鈕儲存你的變更。



Firefox 3.6以上版本
開啟Firefox。
選擇功能表列的[工具],在選單中點選[選項]。
點選視窗上方的內容圖示。
勾選[啟用JavaScript]。
按下[確定]鈕保留變更。



Safari 4 & 5
選擇工具選項〈齒輪圖示〉。.
點選[偏好設定]。
選擇[安全性]標籤。
將[啟用JavaScript]選項打勾。
按下右上角的關閉。



Chrome 7
點選工具列的扳手圖示。
選擇[選項]。
點選[進階選項]標籤。
點選隱私權設定的內容設定鈕。
找到JavaScript的區塊。
勾選[允許所有網站執行 JavaScript (建議)]。
關閉視窗以完成設定。





資料來源:::
http://www.benchmarkemail.com/tw/help-FAQ/answer/how-do-i-enable-javascript-in-browser-on-a-pc

2014年5月18日 星期日

資料庫升級後,asp無法連到資料庫


舊系統 os : win2003  db : sql server 2000
新系統 os : win2008  db : sql server 2008 R2 Express

只是把ap環境升級,就出現下列訊息
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC SQL Server Driver][DBNETLIB]無效的連線。
/admin/index111.asp, 行21

(看不到錯誤訊息,或訊息顯示“網站無法顯示該網頁”,請參考網頁執行時"網站無法顯示該網頁")



新系統 db 升級改裝 : sql server 2008 R2 正式版,沒有錯誤訊息。




資料庫升級的關係
在連線字串IP後面,加上埠號。

   Set conn = Server.CreateObject("ADODB.Connection")
   ConnectString ="Driver={sql server};server=999.999.999.999,1433;uid=cat;pwd=cat;Database=CAT"
     conn.Open ConnectString


完畢。

網頁執行時出現網站無法顯示該網頁



IE > 工具 > 網際網路選項 >

進階 > 反勾選 顯示易懂的HTTP錯誤訊息

2014年5月14日 星期三

SQL Server 2008 R2 (三)遠端連線


遠端連線 資料庫
SQL Server組態管理員














啟用 Shared Memory 本機
啟用 具名管道 區網  (視情況啟用)
啟用 TCP/IP 網際網路




TCP通訊埠 : 1433





重新啟動,才會生效。
確保SQL Server, SQL Server Agent 這兩個有啟動。













防火牆要開1433 PORT

作業系統win2008,大多按下一步即可。

允許兩項服務通過防火牆;Sql Server、Sql Server Browser





(程式路徑選擇C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe)
如果要找程式路徑
1.執services.msc 開啟服務管理,
2.找出Sql Server、Sql Server Browser。查看服務內容。









以上設完就可以連到資料庫了。


完畢。





下方視需求使用:


增加登入帳號











參考:

http://blog.xuite.net/cphyllis/blog/28457403

http://blog.miniasp.com/post/2011/08/20/SQL-Server-Security-and-Unable-to-delete-database-user-problem.aspx

http://www.dotblogs.com.tw/terrychuang/archive/2012/07/10/73318.aspx

http://my-fish-it.blogspot.tw/2012/02/ss-sql-server.html