wizard.asp
上传用户:saigedz
上传日期:2019-10-14
资源大小:997k
文件大小:23k
源码类别:

中间件编程

开发平台:

HTML/CSS

  1. <%@ CODEPAGE=65001 %>
  2. <%
  3. '///////////////////////////////////////////////////////////////////////////////
  4. '//              Z-Blog
  5. '// 作    者:    朱煊(zx.asd)
  6. '// 版权所有:    RainbowSoft Studio
  7. '// 技术支持:    rainbowsoft@163.com
  8. '// 程序名称:    
  9. '// 程序版本:    
  10. '// 单元名称:    wizard.asp
  11. '// 开始时间:    2006.08.12
  12. '// 最后修改:    
  13. '// 备    注:    第一次使用时的向导页
  14. '///////////////////////////////////////////////////////////////////////////////
  15. %>
  16. <% Option Explicit %>
  17. <% On Error Resume Next %>
  18. <% Response.Charset="UTF-8" %>
  19. <% Response.Buffer=True %>
  20. <%
  21. Const ZC_WD_MSG001="欢迎使用Z-Blog,在完成以下的设置后就可以开始你的BLOG之旅!"
  22. Const ZC_WD_MSG002="BLOG的网络地址"
  23. Const ZC_WD_MSG003="数据库的名称和地址"
  24. Const ZC_WD_MSG004="管理员的名称"
  25. Const ZC_WD_MSG005="密码"
  26. Const ZC_WD_MSG006="密码确认"
  27. Const ZC_WD_MSG007="BLOG唯一标识符"
  28. Const ZC_WD_MSG008="系统自动随机生成"
  29. Const ZC_WD_MSG009="Z-Blog安装向导"
  30. Const ZC_WD_MSG010="设置完成!"
  31. Const ZC_WD_MSG011="回到首页"
  32. Const ZC_WD_MSG012="提交"
  33. Const ZC_WD_MSG013="网址设置不正确"
  34. Const ZC_WD_MSG014="用户名设置不正确"
  35. Const ZC_WD_MSG015="密码为6位或更长"
  36. Const ZC_WD_MSG016="请确认密码"
  37. Const ZC_WD_MSG017="verify校验值不正确!"
  38. Const ZC_WD_MSG018="data/zblog.mdb数据库不存在!"
  39. Const ZC_WD_MSG019="或是"
  40. Const ZC_WD_MSG020="登陆后台"
  41. '--------------------------------------------------------------------
  42. Const adOpenForwardOnly=0
  43. Const adOpenKeyset=1
  44. Const adOpenDynamic=2
  45. Const adOpenStatic=3
  46. Const adLockReadOnly=1
  47. Const adLockPessimistic=2
  48. Const adLockOptimistic=3
  49. Const adLockBatchOptimistic=4
  50. Const ForReading=1
  51. Const ForWriting=2
  52. Const ForAppending=8
  53. Const adTypeBinary=1
  54. Const adTypeText=2
  55. Const adModeRead=1
  56. Const adModeReadWrite=3
  57. Const adSaveCreateNotExist=1
  58. Const adSaveCreateOverWrite=2
  59. '--------------------------------------------------------------------
  60. '/////////////////////////////////////////////////////////////////////////////////////////
  61. '*********************************************************
  62. ' 目的:    
  63. '*********************************************************
  64. Private Const BITS_TO_A_BYTE = 8
  65. Private Const BYTES_TO_A_WORD = 4
  66. Private Const BITS_TO_A_WORD = 32
  67. Private m_lOnBits(30)
  68. Private m_l2Power(30)
  69.  
  70.     m_lOnBits(0) = CLng(1)
  71.     m_lOnBits(1) = CLng(3)
  72.     m_lOnBits(2) = CLng(7)
  73.     m_lOnBits(3) = CLng(15)
  74.     m_lOnBits(4) = CLng(31)
  75.     m_lOnBits(5) = CLng(63)
  76.     m_lOnBits(6) = CLng(127)
  77.     m_lOnBits(7) = CLng(255)
  78.     m_lOnBits(8) = CLng(511)
  79.     m_lOnBits(9) = CLng(1023)
  80.     m_lOnBits(10) = CLng(2047)
  81.     m_lOnBits(11) = CLng(4095)
  82.     m_lOnBits(12) = CLng(8191)
  83.     m_lOnBits(13) = CLng(16383)
  84.     m_lOnBits(14) = CLng(32767)
  85.     m_lOnBits(15) = CLng(65535)
  86.     m_lOnBits(16) = CLng(131071)
  87.     m_lOnBits(17) = CLng(262143)
  88.     m_lOnBits(18) = CLng(524287)
  89.     m_lOnBits(19) = CLng(1048575)
  90.     m_lOnBits(20) = CLng(2097151)
  91.     m_lOnBits(21) = CLng(4194303)
  92.     m_lOnBits(22) = CLng(8388607)
  93.     m_lOnBits(23) = CLng(16777215)
  94.     m_lOnBits(24) = CLng(33554431)
  95.     m_lOnBits(25) = CLng(67108863)
  96.     m_lOnBits(26) = CLng(134217727)
  97.     m_lOnBits(27) = CLng(268435455)
  98.     m_lOnBits(28) = CLng(536870911)
  99.     m_lOnBits(29) = CLng(1073741823)
  100.     m_lOnBits(30) = CLng(2147483647)
  101.     
  102.     m_l2Power(0) = CLng(1)
  103.     m_l2Power(1) = CLng(2)
  104.     m_l2Power(2) = CLng(4)
  105.     m_l2Power(3) = CLng(8)
  106.     m_l2Power(4) = CLng(16)
  107.     m_l2Power(5) = CLng(32)
  108.     m_l2Power(6) = CLng(64)
  109.     m_l2Power(7) = CLng(128)
  110.     m_l2Power(8) = CLng(256)
  111.     m_l2Power(9) = CLng(512)
  112.     m_l2Power(10) = CLng(1024)
  113.     m_l2Power(11) = CLng(2048)
  114.     m_l2Power(12) = CLng(4096)
  115.     m_l2Power(13) = CLng(8192)
  116.     m_l2Power(14) = CLng(16384)
  117.     m_l2Power(15) = CLng(32768)
  118.     m_l2Power(16) = CLng(65536)
  119.     m_l2Power(17) = CLng(131072)
  120.     m_l2Power(18) = CLng(262144)
  121.     m_l2Power(19) = CLng(524288)
  122.     m_l2Power(20) = CLng(1048576)
  123.     m_l2Power(21) = CLng(2097152)
  124.     m_l2Power(22) = CLng(4194304)
  125.     m_l2Power(23) = CLng(8388608)
  126.     m_l2Power(24) = CLng(16777216)
  127.     m_l2Power(25) = CLng(33554432)
  128.     m_l2Power(26) = CLng(67108864)
  129.     m_l2Power(27) = CLng(134217728)
  130.     m_l2Power(28) = CLng(268435456)
  131.     m_l2Power(29) = CLng(536870912)
  132.     m_l2Power(30) = CLng(1073741824)
  133. Private Function LShift(lValue, iShiftBits)
  134.     If iShiftBits = 0 Then
  135.         LShift = lValue
  136.         Exit Function
  137.     ElseIf iShiftBits = 31 Then
  138.         If lValue And 1 Then
  139.             LShift = &H80000000
  140.         Else
  141.             LShift = 0
  142.         End If
  143.         Exit Function
  144.     ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
  145.         Err.Raise 6
  146.     End If
  147.     If (lValue And m_l2Power(31 - iShiftBits)) Then
  148.         LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000
  149.     Else
  150.         LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))
  151.     End If
  152. End Function
  153. Private Function RShift(lValue, iShiftBits)
  154.     If iShiftBits = 0 Then
  155.         RShift = lValue
  156.         Exit Function
  157.     ElseIf iShiftBits = 31 Then
  158.         If lValue And &H80000000 Then
  159.             RShift = 1
  160.         Else
  161.             RShift = 0
  162.         End If
  163.         Exit Function
  164.     ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
  165.         Err.Raise 6
  166.     End If
  167.     
  168.     RShift = (lValue And &H7FFFFFFE)  m_l2Power(iShiftBits)
  169.     If (lValue And &H80000000) Then
  170.         RShift = (RShift Or (&H40000000  m_l2Power(iShiftBits - 1)))
  171.     End If
  172. End Function
  173. Private Function RotateLeft(lValue, iShiftBits)
  174.     RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))
  175. End Function
  176. Private Function AddUnsigned(lX, lY)
  177.     Dim lX4
  178.     Dim lY4
  179.     Dim lX8
  180.     Dim lY8
  181.     Dim lResult
  182.  
  183.     lX8 = lX And &H80000000
  184.     lY8 = lY And &H80000000
  185.     lX4 = lX And &H40000000
  186.     lY4 = lY And &H40000000
  187.  
  188.     lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)
  189.  
  190.     If lX4 And lY4 Then
  191.         lResult = lResult Xor &H80000000 Xor lX8 Xor lY8
  192.     ElseIf lX4 Or lY4 Then
  193.         If lResult And &H40000000 Then
  194.             lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8
  195.         Else
  196.             lResult = lResult Xor &H40000000 Xor lX8 Xor lY8
  197.         End If
  198.     Else
  199.         lResult = lResult Xor lX8 Xor lY8
  200.     End If
  201.  
  202.     AddUnsigned = lResult
  203. End Function
  204. Private Function F(x, y, z)
  205.     F = (x And y) Or ((Not x) And z)
  206. End Function
  207. Private Function G(x, y, z)
  208.     G = (x And z) Or (y And (Not z))
  209. End Function
  210. Private Function H(x, y, z)
  211.     H = (x Xor y Xor z)
  212. End Function
  213. Private Function I(x, y, z)
  214.     I = (y Xor (x Or (Not z)))
  215. End Function
  216. Private Sub FF(a, b, c, d, x, s, ac)
  217.     a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac))
  218.     a = RotateLeft(a, s)
  219.     a = AddUnsigned(a, b)
  220. End Sub
  221. Private Sub GG(a, b, c, d, x, s, ac)
  222.     a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac))
  223.     a = RotateLeft(a, s)
  224.     a = AddUnsigned(a, b)
  225. End Sub
  226. Private Sub HH(a, b, c, d, x, s, ac)
  227.     a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac))
  228.     a = RotateLeft(a, s)
  229.     a = AddUnsigned(a, b)
  230. End Sub
  231. Private Sub II(a, b, c, d, x, s, ac)
  232.     a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac))
  233.     a = RotateLeft(a, s)
  234.     a = AddUnsigned(a, b)
  235. End Sub
  236. Private Function ConvertToWordArray(sMessage)
  237.     Dim lMessageLength
  238.     Dim lNumberOfWords
  239.     Dim lWordArray()
  240.     Dim lBytePosition
  241.     Dim lByteCount
  242.     Dim lWordCount
  243.     
  244.     Const MODULUS_BITS = 512
  245.     Const CONGRUENT_BITS = 448
  246.     
  247.     lMessageLength = Len(sMessage)
  248.     
  249.     lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS)  BITS_TO_A_BYTE))  (MODULUS_BITS  BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS  BITS_TO_A_WORD)
  250.     ReDim lWordArray(lNumberOfWords - 1)
  251.     
  252.     lBytePosition = 0
  253.     lByteCount = 0
  254.     Do Until lByteCount >= lMessageLength
  255.         lWordCount = lByteCount  BYTES_TO_A_WORD
  256.         lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE
  257.         lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)
  258.         lByteCount = lByteCount + 1
  259.     Loop
  260.     lWordCount = lByteCount  BYTES_TO_A_WORD
  261.     lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE
  262.     lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)
  263.     lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)
  264.     lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)
  265.     
  266.     ConvertToWordArray = lWordArray
  267. End Function
  268. Private Function WordToHex(lValue)
  269.     Dim lByte
  270.     Dim lCount
  271.     
  272.     For lCount = 0 To 3
  273.         lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)
  274.         WordToHex = WordToHex & Right("0" & Hex(lByte), 2)
  275.     Next
  276. End Function
  277. Public Function MD5(sMessage)
  278.     Dim x
  279.     Dim k
  280.     Dim AA
  281.     Dim BB
  282.     Dim CC
  283.     Dim DD
  284.     Dim a
  285.     Dim b
  286.     Dim c
  287.     Dim d
  288.     
  289.     Const S11 = 7
  290.     Const S12 = 12
  291.     Const S13 = 17
  292.     Const S14 = 22
  293.     Const S21 = 5
  294.     Const S22 = 9
  295.     Const S23 = 14
  296.     Const S24 = 20
  297.     Const S31 = 4
  298.     Const S32 = 11
  299.     Const S33 = 16
  300.     Const S34 = 23
  301.     Const S41 = 6
  302.     Const S42 = 10
  303.     Const S43 = 15
  304.     Const S44 = 21
  305.     x = ConvertToWordArray(sMessage)
  306.     
  307.     a = &H67452301
  308.     b = &HEFCDAB89
  309.     c = &H98BADCFE
  310.     d = &H10325476
  311.     For k = 0 To UBound(x) Step 16
  312.         AA = a
  313.         BB = b
  314.         CC = c
  315.         DD = d
  316.     
  317.         FF a, b, c, d, x(k + 0), S11, &HD76AA478
  318.         FF d, a, b, c, x(k + 1), S12, &HE8C7B756
  319.         FF c, d, a, b, x(k + 2), S13, &H242070DB
  320.         FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE
  321.         FF a, b, c, d, x(k + 4), S11, &HF57C0FAF
  322.         FF d, a, b, c, x(k + 5), S12, &H4787C62A
  323.         FF c, d, a, b, x(k + 6), S13, &HA8304613
  324.         FF b, c, d, a, x(k + 7), S14, &HFD469501
  325.         FF a, b, c, d, x(k + 8), S11, &H698098D8
  326.         FF d, a, b, c, x(k + 9), S12, &H8B44F7AF
  327.         FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1
  328.         FF b, c, d, a, x(k + 11), S14, &H895CD7BE
  329.         FF a, b, c, d, x(k + 12), S11, &H6B901122
  330.         FF d, a, b, c, x(k + 13), S12, &HFD987193
  331.         FF c, d, a, b, x(k + 14), S13, &HA679438E
  332.         FF b, c, d, a, x(k + 15), S14, &H49B40821
  333.     
  334.         GG a, b, c, d, x(k + 1), S21, &HF61E2562
  335.         GG d, a, b, c, x(k + 6), S22, &HC040B340
  336.         GG c, d, a, b, x(k + 11), S23, &H265E5A51
  337.         GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA
  338.         GG a, b, c, d, x(k + 5), S21, &HD62F105D
  339.         GG d, a, b, c, x(k + 10), S22, &H2441453
  340.         GG c, d, a, b, x(k + 15), S23, &HD8A1E681
  341.         GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8
  342.         GG a, b, c, d, x(k + 9), S21, &H21E1CDE6
  343.         GG d, a, b, c, x(k + 14), S22, &HC33707D6
  344.         GG c, d, a, b, x(k + 3), S23, &HF4D50D87
  345.         GG b, c, d, a, x(k + 8), S24, &H455A14ED
  346.         GG a, b, c, d, x(k + 13), S21, &HA9E3E905
  347.         GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8
  348.         GG c, d, a, b, x(k + 7), S23, &H676F02D9
  349.         GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A
  350.             
  351.         HH a, b, c, d, x(k + 5), S31, &HFFFA3942
  352.         HH d, a, b, c, x(k + 8), S32, &H8771F681
  353.         HH c, d, a, b, x(k + 11), S33, &H6D9D6122
  354.         HH b, c, d, a, x(k + 14), S34, &HFDE5380C
  355.         HH a, b, c, d, x(k + 1), S31, &HA4BEEA44
  356.         HH d, a, b, c, x(k + 4), S32, &H4BDECFA9
  357.         HH c, d, a, b, x(k + 7), S33, &HF6BB4B60
  358.         HH b, c, d, a, x(k + 10), S34, &HBEBFBC70
  359.         HH a, b, c, d, x(k + 13), S31, &H289B7EC6
  360.         HH d, a, b, c, x(k + 0), S32, &HEAA127FA
  361.         HH c, d, a, b, x(k + 3), S33, &HD4EF3085
  362.         HH b, c, d, a, x(k + 6), S34, &H4881D05
  363.         HH a, b, c, d, x(k + 9), S31, &HD9D4D039
  364.         HH d, a, b, c, x(k + 12), S32, &HE6DB99E5
  365.         HH c, d, a, b, x(k + 15), S33, &H1FA27CF8
  366.         HH b, c, d, a, x(k + 2), S34, &HC4AC5665
  367.     
  368.         II a, b, c, d, x(k + 0), S41, &HF4292244
  369.         II d, a, b, c, x(k + 7), S42, &H432AFF97
  370.         II c, d, a, b, x(k + 14), S43, &HAB9423A7
  371.         II b, c, d, a, x(k + 5), S44, &HFC93A039
  372.         II a, b, c, d, x(k + 12), S41, &H655B59C3
  373.         II d, a, b, c, x(k + 3), S42, &H8F0CCC92
  374.         II c, d, a, b, x(k + 10), S43, &HFFEFF47D
  375.         II b, c, d, a, x(k + 1), S44, &H85845DD1
  376.         II a, b, c, d, x(k + 8), S41, &H6FA87E4F
  377.         II d, a, b, c, x(k + 15), S42, &HFE2CE6E0
  378.         II c, d, a, b, x(k + 6), S43, &HA3014314
  379.         II b, c, d, a, x(k + 13), S44, &H4E0811A1
  380.         II a, b, c, d, x(k + 4), S41, &HF7537E82
  381.         II d, a, b, c, x(k + 11), S42, &HBD3AF235
  382.         II c, d, a, b, x(k + 2), S43, &H2AD7D2BB
  383.         II b, c, d, a, x(k + 9), S44, &HEB86D391
  384.     
  385.         a = AddUnsigned(a, AA)
  386.         b = AddUnsigned(b, BB)
  387.         c = AddUnsigned(c, CC)
  388.         d = AddUnsigned(d, DD)
  389.     Next
  390.     
  391.     MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))
  392. End Function
  393. '*********************************************************
  394. '*********************************************************
  395. ' 目的:    Save Text to File
  396. ' 输入:    
  397. ' 输入:    
  398. ' 返回:    
  399. '*********************************************************
  400. Function SaveToFile(strFullName,strContent,strCharset,bolRemoveBOM)
  401. On Error Resume Next
  402. Dim objStream
  403. Set objStream = Server.CreateObject("ADODB.Stream")
  404. With objStream
  405. .Type = adTypeText
  406. .Mode = adModeReadWrite
  407. .Open
  408. .Charset = strCharset
  409. .Position = objStream.Size
  410. .WriteText = strContent
  411. .SaveToFile strFullName,adSaveCreateOverWrite
  412. .Close
  413. End With
  414. Set objStream = Nothing
  415. If bolRemoveBOM Then
  416. End If
  417. Err.Clear
  418. End Function
  419. '*********************************************************
  420. '*********************************************************
  421. ' 目的:    Load Text form File
  422. ' 输入:    
  423. ' 输入:    
  424. ' 返回:    
  425. '*********************************************************
  426. Function LoadFromFile(strFullName,strCharset)
  427. On Error Resume Next
  428. Dim objStream
  429. Set objStream = Server.CreateObject("ADODB.Stream")
  430. With objStream
  431. .Type = adTypeText
  432. .Mode = adModeReadWrite
  433. .Open
  434. .Charset = strCharset
  435. .Position = objStream.Size
  436. .LoadFromFile strFullName
  437. LoadFromFile=.ReadText
  438. .Close
  439. End With
  440. Set objStream = Nothing
  441. Err.Clear
  442. End Function
  443. '*********************************************************
  444. '*********************************************************
  445. ' 目的:    Save Value For Setting
  446. '*********************************************************
  447. Function SaveValueForSetting(ByRef strContent,bolConst,strTypeVar,strItem,ByVal strValue)
  448. Dim i,j,s,t
  449. Dim strConst
  450. Dim objRegExp
  451. If bolConst=True Then strConst="Const"
  452. Set objRegExp=New RegExp
  453. objRegExp.IgnoreCase =True
  454. objRegExp.Global=True
  455. If strTypeVar="String" Then
  456. strValue=Replace(strValue,"""","""""")
  457. strValue=""""& strValue &""""
  458. objRegExp.Pattern="(^|rn|n)(( *)" & strConst & "( *)" & strItem & "( *)=( *))(.+?)(rn|n|$)"
  459. If objRegExp.Test(strContent)=True Then
  460. strContent=objRegExp.Replace(strContent,"$1$2"& strValue &"$8")
  461. SaveValueForSetting=True
  462. Exit Function
  463. End If
  464. End If
  465. If strTypeVar="Boolean" Then
  466. strValue=Trim(strValue)
  467. If LCase(strValue)="true" Then
  468. strValue=True
  469. Else
  470. strValue=False
  471. End If
  472. If objRegExp.Test(strContent)=True Then
  473. objRegExp.Pattern="(^|rn|n)(( *)" & strConst & "( *)" & strItem & "( *)=( *))([a-z]+)( *)(rn|n|$)"
  474. strContent=objRegExp.Replace(strContent,"$1$2"& strValue &"$9")
  475. SaveValueForSetting=True
  476. Exit Function
  477. End If
  478. End If
  479. If strTypeVar="Numeric" Then
  480. strValue=Trim(strValue)
  481. If IsNumeric(strValue)=False Then
  482. strValue=0
  483. End If
  484. If objRegExp.Test(strContent)=True Then
  485. objRegExp.Pattern="(^|rn|n)(( *)" & strConst & "( *)" & strItem & "( *)=( *))([0-9.]+)( *)(rn|n|$)"
  486. strContent=objRegExp.Replace(strContent,"$1$2"& strValue &"$9")
  487. SaveValueForSetting=True
  488. Exit Function
  489. End If
  490. End If
  491. SaveValueForSetting=False
  492. End Function
  493. '*********************************************************
  494. '*********************************************************
  495. ' 目的:    检查引用
  496. ' 输入:    SQL值(引用)
  497. ' 返回:    
  498. '*********************************************************
  499. Function FilterSQL(strSQL)
  500. FilterSQL=CStr(Replace(strSQL,chr(39),chr(39)&chr(39)))
  501. End Function
  502. '*********************************************************
  503. '/////////////////////////////////////////////////////////////////////////////////////////
  504. Dim objConn
  505. Dim BlogPath
  506. BlogPath=Server.MapPath("wizard.asp")
  507. BlogPath=Left(BlogPath,Len(BlogPath)-Len("wizard.asp"))
  508. Dim BlogHost
  509. Dim DataBasePath
  510. Dim AdminUserName
  511. Dim AdminPassWord
  512. Dim BlogClsid
  513. Dim DataBasePathOld
  514. DataBasePathOld="data/zblog.mdb"
  515. Dim ve,strVerify
  516. ve=Request.QueryString("verify")
  517. strVerify=MD5(DataBasePathOld & Replace(LCase(Request.ServerVariables("PATH_TRANSLATED")),"wizard.asp",""))
  518. If Not ve=strVerify Then
  519. Response.Write ZC_WD_MSG017
  520. Response.End
  521. End If
  522. '如果没有data/zblog.mdb则停止输出
  523. Dim fs
  524. Set fs = CreateObject("Scripting.FileSystemObject")
  525. If Not fs.FileExists(BlogPath & DataBasePathOld) Then
  526. Response.Write ZC_WD_MSG018
  527. Response.End
  528. End If
  529. Set fs=Nothing
  530. Dim ok
  531. ok=Request.QueryString("ok")
  532. If TypeName(ok)<>"Empty" Then
  533. BlogHost=Request.Form("edtBlogHost")
  534. DataBasePath=Request.Form("edtDataBasePath")
  535. AdminUserName=Request.Form("edtAdminUserName")
  536. AdminPassWord=Request.Form("edtAdminPassWord")
  537. BlogClsid=Request.Form("edtBlogClsid")
  538. AdminPassWord=MD5(AdminPassWord)
  539. '转移数据库,改数据库名称
  540. Dim fso, file
  541. Set fso = CreateObject("Scripting.FileSystemObject")
  542. If fso.FileExists(BlogPath & DataBasePathOld) Then
  543. Set file = fso.GetFile(BlogPath & DataBasePathOld)
  544. DataBasePathOld=Mid(DataBasePath,6)
  545. file.Name=DataBasePathOld
  546. End If
  547. Set fso=Nothing
  548. '建立数据库连接,更改用户名和密码
  549. Set objConn = Server.CreateObject("ADODB.Connection")
  550. objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BlogPath & DataBasePath
  551. objConn.Execute("UPDATE [blog_Member] SET [mem_Name]='"&FilterSQL(AdminUserName)&"',[mem_PassWord]='"&FilterSQL(AdminPassWord)&"' WHERE [mem_Name]='zblogger'")
  552. objConn.Close
  553. Set objConn=Nothing
  554. '保存BlogHost,DataBasePath,BlogClsid
  555. Dim strContent
  556. strContent=LoadFromFile(BlogPath & "/c_custom.asp","utf-8")
  557. Call SaveValueForSetting(strContent,True,"String","ZC_BLOG_HOST",BlogHost)
  558. Call SaveValueForSetting(strContent,True,"String","ZC_DATABASE_PATH",DataBasePath)
  559. Call SaveValueForSetting(strContent,True,"String","ZC_BLOG_MASTER",AdminUserName)
  560. Call SaveToFile(BlogPath & "/c_custom.asp",strContent,"utf-8",False)
  561. strContent=LoadFromFile(BlogPath & "/c_option.asp","utf-8")
  562. Call SaveValueForSetting(strContent,True,"String","ZC_BLOG_CLSID",BlogClsid)
  563. Call SaveToFile(BlogPath & "/c_option.asp",strContent,"utf-8",False)
  564. '改写wizard.asp文件
  565. strContent=LoadFromFile(BlogPath & "/wizard.asp","utf-8")
  566. strContent=""
  567. Call SaveToFile(BlogPath & "/wizard.asp",strContent,"utf-8",False)
  568. '转到首页
  569. Response.Write "<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""><html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /><link rel=""stylesheet"" rev=""stylesheet"" href=""CSS/admin.css"" type=""text/css"" media=""screen"" /></head><body>"
  570. Response.Write "<div id=""divMain""><div class=""Header"">" & ZC_WD_MSG001 & "</div>"
  571. Response.Write "<div id=""divMain2""><form  name=""edit"" id=""edit"">"
  572. Response.Write "<p>" & ZC_WD_MSG010 &"</p>"
  573. Response.Write "<p><a href='"& BlogHost &"'>" & ZC_WD_MSG011 & "</a>,"& ZC_WD_MSG019  &"<a href='cmd.asp?act=login'>"& ZC_WD_MSG020 &"</a>.</p>"
  574. Response.Write "</form></div></div>"
  575. Response.Write "</body></html>"
  576. Response.End
  577. End If
  578. BlogHost="http://"  & Request.ServerVariables("HTTP_HOST") & Replace(Request.ServerVariables("PATH_INFO"),"wizard.asp","")
  579. DataBasePath="data/#%20"& Left(MD5(getGUID()),20) &".mdb"
  580. BlogClsid=getGUID()
  581. %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  582. <html>
  583. <head>
  584. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  585. <link rel="stylesheet" rev="stylesheet" href="CSS/admin.css" type="text/css" media="screen" />
  586. <script language="JavaScript" src="script/common.js" type="text/javascript"></script>
  587. <title><%=ZC_WD_MSG009%></title>
  588. </head>
  589. <body>
  590. <div id="divMain">
  591. <div class="Header"><%=ZC_WD_MSG001%></div>
  592. <div id="divMain2">
  593. <form id="edit" name="edit" method="post" action="wizard.asp?verify=<%=strVerify%>&ok">
  594. <p><b></b></p>
  595. <p>1.<%=ZC_WD_MSG002%>:</p>
  596. <p><input id="edtBlogHost" name="edtBlogHost" style="width:400px;" type="text" value="<%=BlogHost%>" /></p>
  597. <p><br/>2.<%=ZC_WD_MSG003%>(<%=ZC_WD_MSG008%>):</p>
  598. <p><input readonly id="edtDataBasePath" name="edtDataBasePath" style="width:400px;" type="text" value="<%=DataBasePath%>" /></p>
  599. <p><br/>3.<%=ZC_WD_MSG004%>:</p>
  600. <p><input id="edtAdminUserName" name="edtAdminUserName" style="width:250px;" type="text" value="" /></p>
  601. <p><%=ZC_WD_MSG005%>:</p>
  602. <p><input id="edtAdminPassWord" name="edtAdminPassWord" style="width:250px;" type="password" value="" /></p>
  603. <p><%=ZC_WD_MSG006%>:</p>
  604. <p><input id="edtAdminPassWord2" name="edtAdminPassWord2" style="width:250px;" type="password" value="" /></p>
  605. <div style="display:none;">
  606. <p><br/>4.<%=ZC_WD_MSG007%>(<%=ZC_WD_MSG008%>):</p>
  607. <p><input readonly id="edtBlogClsid" name="edtBlogClsid" style="width:400px;" type="text" value="<%=BlogClsid%>" /></p></div>
  608. <p><br/><input type="submit" class="button" value="<%=ZC_WD_MSG012%>" id="btnPost" onclick='' /></p>
  609. </form>
  610. </div>
  611. </div>
  612. </body>
  613. <script language="JavaScript" type="text/javascript">
  614. document.getElementById("edit").onsubmit=function(){
  615. if((!(document.getElementById("edtBlogHost").value).match('^[a-zA-Z]+://[a-zA-z0-9-./:]+?/$'))){
  616. alert("<%=ZC_WD_MSG013%>");
  617. return false;
  618. }
  619. if((document.getElementById("edtAdminUserName").value=="")||(!(document.getElementById("edtAdminUserName").value).match('^[.A-Za-z0-9u4e00-u9fa5]+$'))){
  620. alert("<%=ZC_WD_MSG014%>");
  621. return false;
  622. }
  623. if((document.getElementById("edtAdminPassWord").value).length<=5){
  624. alert("<%=ZC_WD_MSG015%>");
  625. return false;
  626. }
  627. if((document.getElementById("edtAdminPassWord").value!==document.getElementById("edtAdminPassWord2").value)){
  628. alert("<%=ZC_WD_MSG016%>");
  629. return false;
  630. }
  631. }
  632. </script>
  633. </html>
  634. <script language="javascript" runat="server">
  635. function getGUID(){
  636. var guid = "";
  637. for (var i = 1; i <= 32; i++){
  638. var n = Math.floor(Math.random() * 16.0).toString(16);
  639. guid += n;
  640. if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
  641. guid += "-";
  642. }
  643. guid += "";
  644. return guid.toUpperCase();
  645. }
  646. </script>