%@LANGUAGE="VBSCRIPT"%>
<%
' Allowed files (extensions)
Const C_ALLOWED_EXTENSIONS = "('doc','pdf','xls')"
' Possible values are "CDOSYS", "CDONTS", "ASPEmail", "ASPMail", "Jmail"
Const C_MAIL_USE = "CDOSYS"
' If your email server is not the same that your web server, then enter the address in the following line
Const SMTP_SERVER = "corpexch01.rpmcsi.com"
' Send emails?
Const C_SEND_EMAILS = True
' Save Database file?
Const C_SAVE_DATABASE = false
' Exclude fields, add one AddExcludedField call for each excluded field
Dim excluded_fields(100), excluded_fields_count
excluded_fields_count = 0
AddExcludedField "hdwemail"
AddExcludedField "hdwok"
AddExcludedField "hdwnook"
AddExcludedField "hdwuploadfolder"
AddExcludedField "hdwtablename"
' Include extra fieds? (country, IP, referer, etc...)
Const HDW_INCLUDE_EXTRA_FIELDS = True
' Set this param to true to resend the info as GET parameters to the "Thank You" page.
Const HOTDW_RESEND_PARAMS = False
' Some antivirus or firewalls prevents the execution of the filesystem object. In that case you can disable it
' NOTE: This object is required for the FormToDatabase feature!
Const USE_FILESYSTEM_OBJECT = True
' use HDW_ID autonumerical?
Const USE_AUTO_NUMERICAL = True
%>
<%
Server.ScriptTimeout = 1000000000
Response.Expires = 0
Response.Buffer = True
Const SMTP_PORT = 25
Const HDW_F2M_EMAIL = "hdwemail"
Const HDW_F2M_OK = "hdwok"
Const HDW_F2M_NO_OK = "hdwnook"
Const HDW_F2M_UPLOADFOLDER = "hdwuploadfolder"
Dim localpath, fixedColumns
fixedColumns = Array ("Country","IP","Referer","Server Time","Browser","User Agent")
localpath = Server.MapPath("Form2Mail.asp.mdb")
localpath = Left(localpath, Len(localpath)-Len("Form2Mail.asp.mdb") )
Dim fso, MyFile
Dim Attachments, globalbuffer
Attachments = False ' Do not modify this
Dim countryname(212)
Dim emailaddress, fromaddress, emailsubject, body, item, getStr, uploadfolder
Dim csvFile(100), postedFields(1000,2)
Dim cPostedFields, CSVString
cPostedFields = 0
uploadfolder= Request(HDW_F2M_UPLOADFOLDER)
Dim HDW_TABLENAME
Const HDW_TABLENAME_ITEM = "hdwtablename"
SetCountryNames
' To Email Address
If (InStr(1,Request.ServerVariables("CONTENT_TYPE"), "multipart/form-data", 1) <= 0) Then
emailaddress = Request(HDW_F2M_EMAIL)
HDW_TABLENAME = Request(HDW_TABLENAME_ITEM)
End If
emailaddress = Replace(emailaddress,"+","@")
' From Email Address
fromaddress = emailaddress
emailsubject= "Form sent from Insurance Certificate Request"
body ="SUBMITTED INFORMATION
" &_
"***************************
"
getStr = ""
If C_SAVE_DATABASE Then Set fso = CreateObject("Scripting.FileSystemObject")
If (InStr(1,Request.ServerVariables("CONTENT_TYPE"), "multipart/form-data", 1) <= 0) Then
Dim name
for i = 1 to Request.Form.Count
for each name in Request.Form
if (Request.Form(name) is Request.Form(i)) AND (notInThisArray(name)) then
body = body & ""&name&": "&Request.Form(name)&"
"
getStr = getStr & "&"&name&"="&Server.URLEncode(Request.Form(name))
AddPostedField name, Request.Form(name)
end if
next
next
for i = 1 to Request.QueryString.Count
for each name in Request.QueryString
if (Request.QueryString(name) is Request.QueryString(i)) AND (notInThisArray(name)) then
body = body & ""&name&": "&Request.QueryString(name)&"
"
getStr = getStr & "&"&name&"="&Server.URLEncode(Request.QueryString(name))
AddPostedField name, Request.QueryString(name)
end if
next
next
uploadfolder = localpath & "saved_forms\" & uploadfolder & "_" & Left(getHashOfString(Request.ServerVariables("SERVER_NAME")),4)
If C_SAVE_DATABASE Then CreateFiles
Else
Dim UploadRequest, byteCount, RequestBin, keys, i, shortuploadfolder, tfname
Set UploadRequest = CreateObject("Scripting.Dictionary")
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
BuildUploadRequest RequestBin
Attachments = True
keys = UploadRequest.Keys
uploadfolder = UploadRequest.Item(HDW_F2M_UPLOADFOLDER).Item("Value")
shortuploadfolder = uploadfolder & "_" & Left(getHashOfString(Request.ServerVariables("SERVER_NAME")),4)
uploadfolder = localpath & "saved_forms\" & shortuploadfolder
If C_SAVE_DATABASE Then CreateFiles
For i = 0 To UploadRequest.Count -1
If Not (UploadRequest.Item(keys(i)).Exists("FileName")) Then
If (keys(i) <> HDW_F2M_OK) And (keys(i) <> HDW_F2M_NO_OK) And (keys(i) <> HDW_F2M_EMAIL) And notInThisArray(keys(i)) Then
body = body & ""&keys(i)&": "&UploadRequest.Item(keys(i)).Item("Value")&"
"
getStr = getStr & "&"&keys(i)&"="&Server.URLEncode(UploadRequest.Item(keys(i)).Item("Value"))
AddPostedField keys(i), UploadRequest.Item(keys(i)).Item("Value")
End If
Else
If notInThisArray(keys(i)) Then
If (Not isValidFile(UploadRequest.Item(keys(i)).Item("FileName"))) And (UploadRequest.Item(keys(i)).Item("FileName") <> "") Then
Response.Redirect UploadRequest.Item(HDW_F2M_NO_OK).Item("Value")
Response.End
End If
tfname = Replace(CStr(Date),"/","-") & "_" & Replace(CStr(Time),":","_")&"-" & UploadRequest.Item(keys(i)).Item("FileName")
If UploadRequest.Item(keys(i)).Item("FileName") <> "" Then UploadRequest.Item(keys(i)).Item("Value").saveToFile ( uploadfolder & "\uploads\" & tfname)
body = body & ""&keys(i)&": "&UploadRequest.Item(keys(i)).Item("FileName")&"
"
getStr = getStr & "&"&keys(i)&"="&Server.URLEncode(UploadRequest.Item(keys(i)).Item("FileName"))
AddPostedField keys(i), "http://" & Request.ServerVariables("HTTP_HOST") & "/HDWASPForm2Database/saved_forms/" & shortuploadfolder & "/uploads/" & tfname
End If
End If
emailaddress = UploadRequest.Item(HDW_F2M_EMAIL).Item("Value")
HDW_TABLENAME = UploadRequest.Item(HDW_TABLENAME_ITEM).Item("Value")
emailaddress = Replace(emailaddress,"+","@")
fromaddress = emailaddress
Next
End If
getStr = "hdw=1" & getStr
If C_SAVE_DATABASE Then SaveToDatabase
If C_SEND_EMAILS Then
If HDW_INCLUDE_EXTRA_FIELDS Then
body = body & "SUPPORT INFORMATION
" &_
"***************************
" &_
"Country: " &getCountryID(Request.ServerVariables("REMOTE_HOST"))&"
" &_
"User IP: "&Request.ServerVariables("REMOTE_ADDR")&"
" &_
"User Host: "&Request.ServerVariables("REMOTE_HOST")&"
" &_
"Referer: "&Request.ServerVariables("HTTP_REFERER")&"
" &_
"Server Time: "&Date & " "& Time&"
" &_
"Browser: "&ckbrowser(Request.ServerVariables("HTTP_USER_AGENT"))&"
" &_
"User Agent: "&Request.ServerVariables("HTTP_USER_AGENT")&"
" &_
"
Delivered by HotDreamweaver Form 2 Database and Mail Script"
Else
body = body & _
"
Delivered by HotDreamweaver Form 2 Database and Mail Script"
End If
SendMail emailaddress, fromaddress, emailsubject, body
End If
If Attachments Then
If (InStr(UploadRequest.Item(HDW_F2M_OK).Item("Value"),"?") > 0) And (getStr <> "") Then getStr = "&" & getStr Else getStr = "?" & getStr
If Not HOTDW_RESEND_PARAMS Then getStr = ""
Response.Redirect UploadRequest.Item(HDW_F2M_OK).Item("Value") & getStr
Else
If (InStr(Request(HDW_F2M_OK),"?") > 0) And (getStr <> "") Then getStr = "&" & getStr Else getStr = "?" & getStr
If Not HOTDW_RESEND_PARAMS Then getStr = ""
Response.Redirect Request(HDW_F2M_OK) & getStr
End If
%>
<%
Function SendMail (var_ToAddress, var_FromAddress, var_Subject, var_Message)
Dim smtp, objMail, i, j, value, iBp, Flds, Binary
Dim objStream
Dim Stm
Dim buffer
' Send the email
If C_MAIL_USE = "CDOSYS" Then
Set objMail = Server.CreateObject("CDO.Message")
'objMail.MailFormat = 1
objMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTP_SERVER
objMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTP_PORT
'objMail.Configuration.Fields.Item _
' ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "YOUR-USERNAME"
'objMail.Configuration.Fields.Item _
' ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "YOUR-PASSWORD"
objMail.Configuration.Fields.Update
objMail.To = var_ToAddress
objMail.From = var_FromAddress
objMail.Subject = var_Subject
objMail.HTMLBody = var_Message
If Attachments Then
For i = 0 To UploadRequest.Count -1
If (UploadRequest.Item(keys(i)).Exists("FileName")) Then
Set iBp = objMail.Attachments.Add
Set Flds = iBp.Fields
With Flds
.Item("urn:schemas:mailheader:content-type") = "binary; name="&UploadRequest.Item(keys(i)).Item("FileName")
.Item("urn:schemas:mailheader:content-transfer-encoding") = "base64"
.Update
End With
Set Stm = iBp.GetDecodedContentStream
Set value = UploadRequest.Item(keys(i)).Item("Value")
On Error Resume Next
Stm.Write (value.Read)
value.Position = 0
Stm.Flush
Set Stm = Nothing
End If
Next
End If
On Error Resume Next
objMail.Send
Set objMail = Nothing
SendMail = True
End If
If (C_MAIL_USE = "CDONTS") Or ((C_MAIL_USE = "CDOSYS") AND (Err.Number <> 0)) Then
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.MailFormat = 0
objMail.BodyFormat = 0
objMail.To = var_ToAddress
objMail.From = var_FromAddress
objMail.Subject = var_Subject
objMail.Body = var_Message
If Attachments Then
For i = 0 To UploadRequest.Count -1
If (UploadRequest.Item(keys(i)).Exists("FileName")) Then
UploadRequest.Item(keys(i)).Item("Value").saveToFile (localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName"))
objMail.AttachFile localpath&"_uploadedfile-"&UploadRequest.Item(keys(i)).Item("FileName"), UploadRequest.Item(keys(i)).Item("FileName")
End If
Next
End If
objMail.Send
Set objMail = Nothing
SendMail = True
If (Attachments) And (USE_FILESYSTEM_OBJECT) Then
For i = 0 To UploadRequest.Count -1
If (UploadRequest.Item(keys(i)).Exists("FileName")) Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.GetFile( localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName") )
MyFile.Delete
End If
Next
End If
ElseIf (C_MAIL_USE = "ASPEmail") Then
Set objMail = Server.CreateObject("Persits.MailSender")
objMail.Host = SMTP_SERVER
objMail.From = var_FromAddress
objMail.FromName = var_FromAddress
objMail.AddAddress var_ToAddress, var_ToAddress
If Attachments Then
For i = 0 To UploadRequest.Count -1
If (UploadRequest.Item(keys(i)).Exists("FileName")) Then
UploadRequest.Item(keys(i)).Item("Value").saveToFile (localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName"))
objMail.AddAttachment localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName")
End If
Next
End If
objMail.Subject = var_Subject
objMail.Body = var_Message
objMail.IsHTML = true
objMail.Send
If (Attachments) And (USE_FILESYSTEM_OBJECT) Then
For i = 0 To UploadRequest.Count -1
If (UploadRequest.Item(keys(i)).Exists("FileName")) Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.GetFile( localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName") )
MyFile.Delete
End If
Next
End If
SendMail = True
ElseIf (C_MAIL_USE = "ASPMail") Then
set objMail = Server.CreateObject("SMTPsvg.Mailer")
objMail.RemoteHost = SMTP_SERVER
objMail.FromAddress = var_FromAddress
objMail.FromName = var_FromAddress
objMail.AddRecipient var_ToAddress, var_ToAddress
If Attachments Then
For i = 0 To UploadRequest.Count -1
If (UploadRequest.Item(keys(i)).Exists("FileName")) Then
UploadRequest.Item(keys(i)).Item("Value").saveToFile (localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName"))
objMail.AddAttachment localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName")
End If
Next
End If
objMail.Subject = var_Subject
objMail.BodyText = var_Message
objMail.ContentType = "text/html"
objMail.SendMail
If (Attachments) And (USE_FILESYSTEM_OBJECT) Then
For i = 0 To UploadRequest.Count -1
If (UploadRequest.Item(keys(i)).Exists("FileName")) Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.GetFile( localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName") )
MyFile.Delete
End If
Next
End If
SendMail = True
ElseIf (C_MAIL_USE = "Jmail") Then
set objMail = Server.CreateObject("JMail.SMTPMail")
objMail.ServerAddress = SMTP_SERVER
objMail.Sender = var_FromAddress
objMail.AddRecipient var_ToAddress
If Attachments Then
For i = 0 To UploadRequest.Count -1
If (UploadRequest.Item(keys(i)).Exists("FileName")) Then
UploadRequest.Item(keys(i)).Item("Value").saveToFile (localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName"))
objMail.AddAttachment localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName")
End If
Next
End If
objMail.Subject = var_Subject
objMail.HTMLBody = var_Message
objMail.Execute
If (Attachments) And (USE_FILESYSTEM_OBJECT) Then
For i = 0 To UploadRequest.Count -1
If (UploadRequest.Item(keys(i)).Exists("FileName")) Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.GetFile( localpath&"saved_forms\"&UploadRequest.Item(keys(i)).Item("FileName") )
MyFile.Delete
End If
Next
End If
SendMail = True
End If
End Function
%>
<%
Sub BuildUploadRequest(RequestBin)
'Get the boundary
Dim PosBeg, PosEnd, boundary, boundaryPos, Pos, Name, PosFile, PosBound, FileName, i, Value, gd, tmp
Dim ContentType
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
'Get all data inside the boundaries
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
'Members variable of objects are put in a dictionary object
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
'Test if object is of file type
If PosFile<>0 AND (PosFile="&cip)
If rs.EOF Then getCountryID = "LOCAL; INTRANET OR UNKNOWN" Else getCountryID = countryname(rs.Fields.Item("country"))
End Function
Function IPAddress2IPNumber(IPaddress)
Dim i, pos, PrevPos, num
If IPaddress = "" Then
IPAddress2IPNumber = 0
Else
For i = 1 To 4
pos = InStr(PrevPos + 1, IPaddress, ".", 1)
If i = 4 Then pos = Len(IPaddress) + 1
num = Int(Mid(IPaddress, PrevPos + 1, pos - PrevPos - 1))
PrevPos = pos
IPAddress2IPNumber = ((num Mod 256) * (256 ^ (4 - i))) + IPAddress2IPNumber
Next
End If
End Function
Function ereg(find,str)
if Instr(1, str, find, 1) <> 0 Then
ereg = True
Else
ereg = False
End If
End Function
Function ckbrowser(user_agent)
Dim browser
if((ereg("Netscape", user_agent))) Then
browser = "Netscape"
elseif(ereg("Firefox", user_agent)) Then
browser = "Firefox"
elseif(ereg("Safari", user_agent)) Then
browser = "Safari"
elseif(ereg("SAFARI", user_agent)) Then
browser = "SAFARI"
elseif(ereg("MSIE", user_agent)) Then
browser = "MSIE"
elseif(ereg("Lynx", user_agent)) Then
browser = "Lynx"
elseif(ereg("Opera", user_agent)) Then
browser = "Opera"
elseif(ereg("Gecko", user_agent)) Then
browser = "Mozilla"
elseif(ereg("WebTV", user_agent)) Then
browser = "WebTV"
elseif(ereg("Konqueror", user_agent)) Then
browser = "Konqueror"
else
browser = "bot"
End If
ckbrowser = browser
End Function
' country list
Sub SetCountryNames
countryname(0) = "UNKNOWN"
countryname(1) = "AFGHANISTAN"
countryname(2) = "ALBANIA"
countryname(3) = "ALGERIA"
countryname(4) = "AMERICAN SAMOA"
countryname(5) = "ANDORRA"
countryname(6) = "ANGOLA"
countryname(7) = "ANTIGUA AND BARBUDA"
countryname(8) = "ARGENTINA"
countryname(9) = "ARMENIA"
countryname(10) = "AUSTRALIA"
countryname(11) = "AUSTRIA"
countryname(12) = "AZERBAIJAN"
countryname(13) = "BAHAMAS"
countryname(14) = "BAHRAIN"
countryname(15) = "BANGLADESH"
countryname(16) = "BARBADOS"
countryname(17) = "BELARUS"
countryname(18) = "BELGIUM"
countryname(19) = "BELIZE"
countryname(20) = "BENIN"
countryname(21) = "BERMUDA"
countryname(22) = "BHUTAN"
countryname(23) = "BOLIVIA"
countryname(24) = "BOSNIA AND HERZEGOVINA"
countryname(25) = "BOTSWANA"
countryname(26) = "BRAZIL"
countryname(27) = "BRITISH INDIAN OCEAN TERRITORY"
countryname(28) = "BRUNEI DARUSSALAM"
countryname(29) = "BULGARIA"
countryname(30) = "BURKINA FASO"
countryname(31) = "BURUNDI"
countryname(32) = "CAMBODIA"
countryname(33) = "CAMEROON"
countryname(34) = "CANADA"
countryname(35) = "CAPE VERDE"
countryname(36) = "CAYMAN ISLANDS"
countryname(37) = "CENTRAL AFRICAN REPUBLIC"
countryname(38) = "CHAD"
countryname(39) = "CHILE"
countryname(40) = "CHINA"
countryname(41) = "COLOMBIA"
countryname(42) = "COMOROS"
countryname(43) = "CONGO"
countryname(44) = "COOK ISLANDS"
countryname(45) = "COSTA RICA"
countryname(46) = "COTE D'IVOIRE"
countryname(47) = "CROATIA"
countryname(48) = "CUBA"
countryname(49) = "CYPRUS"
countryname(50) = "CZECH REPUBLIC"
countryname(51) = "DENMARK"
countryname(52) = "DJIBOUTI"
countryname(53) = "DOMINICAN REPUBLIC"
countryname(54) = "EAST TIMOR"
countryname(55) = "ECUADOR"
countryname(56) = "EGYPT"
countryname(57) = "EL SALVADOR"
countryname(58) = "EQUATORIAL GUINEA"
countryname(59) = "ERITREA"
countryname(60) = "ESTONIA"
countryname(61) = "ETHIOPIA"
countryname(62) = "FALKLAND ISLANDS (MALVINAS)"
countryname(63) = "FAROE ISLANDS"
countryname(64) = "FIJI"
countryname(65) = "FINLAND"
countryname(66) = "FRANCE"
countryname(67) = "FRENCH POLYNESIA"
countryname(68) = "GABON"
countryname(69) = "GAMBIA"
countryname(70) = "GEORGIA"
countryname(71) = "GERMANY"
countryname(72) = "GHANA"
countryname(73) = "GIBRALTAR"
countryname(74) = "GREECE"
countryname(75) = "GREENLAND"
countryname(76) = "GRENADA"
countryname(77) = "GUADELOUPE"
countryname(78) = "GUAM"
countryname(79) = "GUATEMALA"
countryname(80) = "GUINEA"
countryname(81) = "GUINEA-BISSAU"
countryname(82) = "HAITI"
countryname(83) = "HOLY SEE(VATICAN CITY STATE)"
countryname(84) = "HONDURAS"
countryname(85) = "HONG KONG"
countryname(86) = "HUNGARY"
countryname(87) = "ICELAND"
countryname(88) = "INDIA"
countryname(89) = "INDONESIA"
countryname(90) = "IRAQ"
countryname(91) = "IRELAND"
countryname(92) = "ISLAMIC REPUBLIC OF IRAN"
countryname(93) = "ISRAEL"
countryname(94) = "ITALY"
countryname(95) = "JAMAICA"
countryname(96) = "JAPAN"
countryname(97) = "JORDAN"
countryname(98) = "KAZAKHSTAN"
countryname(99) = "KENYA"
countryname(100) = "KIRIBATI"
countryname(101) = "KUWAIT"
countryname(102) = "KYRGYZSTAN"
countryname(103) = "LAO PEOPLE'S DEMOCRATIC REPUBLIC"
countryname(104) = "LATVIA"
countryname(105) = "LEBANON"
countryname(106) = "LESOTHO"
countryname(107) = "LIBERIA"
countryname(108) = "LIBYAN ARAB JAMAHIRIYA"
countryname(109) = "LIECHTENSTEIN"
countryname(110) = "LITHUANIA"
countryname(111) = "LUXEMBOURG"
countryname(112) = "MACAO"
countryname(113) = "MADAGASCAR"
countryname(114) = "MALAWI"
countryname(115) = "MALAYSIA"
countryname(116) = "MALDIVES"
countryname(117) = "MALI"
countryname(118) = "MALTA"
countryname(119) = "MARTINIQUE"
countryname(120) = "MAURITANIA"
countryname(121) = "MAURITIUS"
countryname(122) = "MEXICO"
countryname(123) = "MONACO"
countryname(124) = "MONGOLIA"
countryname(125) = "MOROCCO"
countryname(126) = "MOZAMBIQUE"
countryname(127) = "MYANMAR"
countryname(128) = "NAMIBIA"
countryname(129) = "NAURU"
countryname(130) = "NEPAL"
countryname(131) = "NETHERLANDS"
countryname(132) = "NETHERLANDS ANTILLES"
countryname(133) = "NEW CALEDONIA"
countryname(134) = "NEW ZEALAND"
countryname(135) = "NICARAGUA"
countryname(136) = "NIGER"
countryname(137) = "NIGERIA"
countryname(138) = "NORTHERN MARIANA ISLANDS"
countryname(139) = "NORWAY"
countryname(140) = "OMAN"
countryname(141) = "PAKISTAN"
countryname(142) = "PALAU"
countryname(143) = "PALESTINIAN TERRITORY"
countryname(144) = "PANAMA"
countryname(145) = "PAPUA NEW GUINEA"
countryname(146) = "PARAGUAY"
countryname(147) = "PERU"
countryname(148) = "PHILIPPINES"
countryname(149) = "POLAND"
countryname(150) = "PORTUGAL"
countryname(151) = "PUERTO RICO"
countryname(152) = "QATAR"
countryname(153) = "REPUBLIC OF KOREA"
countryname(154) = "REPUBLIC OF MOLDOVA"
countryname(155) = "REUNION"
countryname(156) = "ROMANIA"
countryname(157) = "RUSSIAN FEDERATION"
countryname(158) = "RWANDA"
countryname(159) = "SAMOA"
countryname(160) = "SAN MARINO"
countryname(161) = "SAO TOME AND PRINCIPE"
countryname(162) = "SAUDI ARABIA"
countryname(163) = "SENEGAL"
countryname(165) = "SERBIA AND MONTENEGRO"
countryname(166) = "SEYCHELLES"
countryname(167) = "SIERRA LEONE"
countryname(168) = "SINGAPORE"
countryname(169) = "SLOVAKIA"
countryname(170) = "SLOVENIA"
countryname(171) = "SOLOMON ISLANDS"
countryname(172) = "SOMALIA"
countryname(173) = "SOUTH AFRICA"
countryname(174) = "SPAIN"
countryname(175) = "SRI LANKA"
countryname(176) = "SUDAN"
countryname(177) = "SURINAME"
countryname(178) = "SWAZILAND"
countryname(179) = "SWEDEN"
countryname(180) = "SWITZERLAND"
countryname(181) = "SYRIAN ARAB REPUBLIC"
countryname(182) = "TAIWAN"
countryname(183) = "TAJIKISTAN"
countryname(184) = "THAILAND"
countryname(185) = "THE DEMOCRATIC REPUBLIC OF THE CONGO"
countryname(186) = "THE FORMER YUGOSLAV REPUBLIC OF MACEDONIA"
countryname(187) = "TOGO"
countryname(188) = "TOKELAU"
countryname(189) = "TONGA"
countryname(190) = "TRINIDAD AND TOBAGO"
countryname(191) = "TUNISIA"
countryname(192) = "TURKEY"
countryname(193) = "TURKMENISTAN"
countryname(194) = "TUVALU"
countryname(195) = "UGANDA"
countryname(196) = "UKRAINE"
countryname(197) = "UNITED ARAB EMIRATES"
countryname(198) = "UNITED KINGDOM"
countryname(199) = "UNITED REPUBLIC OF TANZANIA"
countryname(200) = "UNITED STATES"
countryname(201) = "URUGUAY"
countryname(202) = "UZBEKISTAN"
countryname(203) = "VANUATU"
countryname(204) = "VENEZUELA"
countryname(205) = "VIET NAM"
countryname(206) = "VIRGIN ISLANDS"
countryname(207) = "WESTERN SAHARA"
countryname(208) = "YEMEN"
countryname(209) = "ZAMBIA"
countryname(210) = "ZIMBABWE"
End Sub
Sub AddExcludedField(value)
excluded_fields_count = excluded_fields_count + 1
excluded_fields(excluded_fields_count) = value
End Sub
Function notInThisArray(value)
Dim i, found
found = False
For i = 1 To excluded_fields_count
If (excluded_fields(i)=value) Then found = True
Next
notInThisArray = Not found
End Function
Sub AddPostedField (name, value)
cPostedFields = cPostedFields + 1
postedFields(cPostedFields,1) = name
postedFields(cPostedFields,2) = value
End Sub
Sub CreateFiles
If Not fso.FolderExists(uploadfolder) Then fso.CreateFolder(uploadfolder)
If Not fso.FolderExists(uploadfolder&"\uploads") Then fso.CreateFolder(uploadfolder&"\uploads")
End Sub
Function FieldExists(tbl, field)
Dim k, fExists
k = 0
fExists = false
While (k < tbl.Columns.Count) And (Not fExists)
If (UCase(tbl.Columns.Item(k)) = UCase(field)) Then fExists = True
k = k + 1
WEnd
FieldExists = fExists
End Function
Sub SaveToDatabase
%><%
Dim cat, tbl
Set cat = Server.CreateObject ("ADOX.Catalog")
Set cat.ActiveConnection = DataC
' look for the table to know if it already exists
Dim i, FoundTable
i = 0
FoundTable = false
While (i < cat.Tables.Count) And (Not FoundTable)
If UCase(cat.Tables(i).Name) = UCase(HDW_TABLENAME) Then FoundTable = True
i = i + 1
WEnd
' create (if needed) and select table
If Not FoundTable Then
Set tbl = Server.CreateObject ("ADOX.Table")
With tbl
.Name = HDW_TABLENAME
Set .ParentCatalog = cat
.Columns.Append HDW_MAIN_FIELD, adInteger
If USE_AUTO_NUMERICAL Then .Columns(HDW_MAIN_FIELD).Properties("AutoIncrement") = True
End With
cat.Tables.Append tbl
Else
Set tbl = cat.Tables(HDW_TABLENAME)
End If
' if the main autoincrement field does not exists, then create it
If Not FieldExists(tbl, HDW_MAIN_FIELD) Then
tbl.Columns.Append HDW_MAIN_FIELD, adInteger
If USE_AUTO_NUMERICAL Then tbl.Columns(HDW_MAIN_FIELD).Properties("AutoIncrement") = True
End If
' Add the remaining posted fields
For i = 1 to cPostedFields
If Not FieldExists(tbl,postedFields(i,1)) Then
If (HDW_DATABASE_TYPE = "MSSQL") Then
DataC.Execute ("ALTER TABLE " & HDW_TABLENAME & " ADD " & postedFields(i,1) & " VARCHAR(1000) DEFAULT ''")
Else
tbl.Columns.Append postedFields(i,1), adLongVarWChar
End If
End If
Next
' Add the fixed fields
If (HDW_INCLUDE_EXTRA_FIELDS) Then
If (HDW_DATABASE_TYPE = "MSSQL") Then
If Not FieldExists(tbl, "hdw_Country") Then DataC.Execute ("ALTER TABLE " & HDW_TABLENAME & " ADD hdw_Country VARCHAR(1000) DEFAULT ''")
If Not FieldExists(tbl, "hdw_IP") Then DataC.Execute ("ALTER TABLE " & HDW_TABLENAME & " ADD hdw_IP VARCHAR(1000) DEFAULT ''")
If Not FieldExists(tbl, "hdw_ServerTime") Then DataC.Execute ("ALTER TABLE " & HDW_TABLENAME & " ADD hdw_ServerTime VARCHAR(1000) DEFAULT ''")
If Not FieldExists(tbl, "hdw_Referer") Then DataC.Execute ("ALTER TABLE " & HDW_TABLENAME & " ADD hdw_Referer VARCHAR(1000) DEFAULT ''")
If Not FieldExists(tbl, "hdw_Browser") Then DataC.Execute ("ALTER TABLE " & HDW_TABLENAME & " ADD hdw_Browser VARCHAR(1000) DEFAULT ''")
If Not FieldExists(tbl, "hdw_UserAgent") Then DataC.Execute ("ALTER TABLE " & HDW_TABLENAME & " ADD hdw_UserAgent VARCHAR(1000) DEFAULT ''")
Else
If Not FieldExists(tbl, "hdw_Country") Then tbl.Columns.Append "hdw_Country", adLongVarWChar
If Not FieldExists(tbl, "hdw_IP") Then tbl.Columns.Append "hdw_IP", adLongVarWChar
If Not FieldExists(tbl, "hdw_ServerTime") Then tbl.Columns.Append "hdw_ServerTime", adLongVarWChar
If Not FieldExists(tbl, "hdw_Referer") Then tbl.Columns.Append "hdw_Referer", adLongVarWChar
If Not FieldExists(tbl, "hdw_Browser") Then tbl.Columns.Append "hdw_Browser", adLongVarWChar
If Not FieldExists(tbl, "hdw_UserAgent") Then tbl.Columns.Append "hdw_UserAgent", adLongVarWChar
End If
End If
Set cat = Nothing
Set tbl = Nothing
Dim qFields, qValues
' generate and execute the insert query
For i = 1 to cPostedFields
' postedFields(i,1) contiene el field
qFields = qFields & "["&postedFields(i,1)&"],"
' postedFields(i,2) contiene el value
qValues = qValues & "'"&Replace(postedFields(i,2), "'", "''")&"',"
Next
' estos campos se salvan siempre:
' te da el country
' te da el IP
' te da el referer
' te da la fecha
' te da el useragent
' te da el browser
If (HDW_INCLUDE_EXTRA_FIELDS) Then
If Not USE_AUTO_NUMERICAL Then qFields = qFields & "HDW_ID,"
qFields = qFields & "hdw_Country,"
qFields = qFields & "hdw_IP,"
qFields = qFields & "hdw_ServerTime,"
qFields = qFields & "hdw_Referer,"
qFields = qFields & "hdw_Browser,"
qFields = qFields & "hdw_UserAgent,"
If Not USE_AUTO_NUMERICAL Then
Dim xd
xd = Date
Randomize
qValues = qValues & "" & Hour(Time) & Minute(Time) & Second(Time) & Int((999 - 100 + 1) * Rnd + 999) & ","
End If
qValues = qValues & "'"&Replace(getCountryID(Request.ServerVariables("REMOTE_HOST")),"''","''")&"',"
qValues = qValues & "'"&Replace(Request.ServerVariables("REMOTE_ADDR"),"''","''")&"',"
qValues = qValues & "'"&Replace(Request.ServerVariables("HTTP_REFERER"),"''","''")&"',"
qValues = qValues & "'"&Replace(Date & " "& Time,"''","''")&"',"
qValues = qValues & "'"&Replace(ckbrowser(Request.ServerVariables("HTTP_USER_AGENT")),"''","''")&"',"
qValues = qValues & "'"&Replace(Replace(Request.ServerVariables("HTTP_USER_AGENT"),",",";"),"''","''")&"',"
End If
qFields = Left(qFields, Len(qFields)-1)
qValues = Left(qValues, Len(qValues)-1)
DataC.Execute("INSERT INTO " & HDW_TABLENAME & " (" & qFields & ") VALUES(" & qValues & ")")
If IsObject(DataC) Then DataC.Close
End Sub
Function isValidFile (str)
Dim ext
ext = "'" & UCase(Right(str, Len(str)-InStrRev(str,"."))) & "'"
isValidFile = (InStr(UCase(C_ALLOWED_EXTENSIONS),ext) > 0)
End Function
%>