Asp
Asp objects
Выгрузка файла с окном Save As
Set fs = CreateObject("Scripting.FileSystemObject")
set f= fs.GetFile(filename): s=f.size
set f= fs.OpenTextFile(filename,1,false,-1)
sss= f.read(s)

response.ContentType = "application/octet-stream"
response.AddHeader "Content-Disposition", "attachment; filename=" & f1
response.binarywrite sss
Reference
Ary = Array("a","b","c")

Select Case MyVar
      Case "red"     document.bgColor = "red"
      Case "green"   document.bgColor = "green"
      Case "blue"    document.bgColor = "blue"
      Case Else      MsgBox "pick another color"
End Select

For Each f1 in fc
     s = s & f1.name 
Next

For counter = start To end [Step step]
    [Exit For]
    [statements]
Next
Типовой класс
Class clsField
  Private mFieldName
  Private mValue
  
  Public Property Get Name
	Name = mFieldName
  End Property
  
  Public Property Let Value(sValue)
    mValue = sValue 
  End Property

  Public Property Get Value
	Value = mValue
  End Property
  
  Public Sub ReadForm(frm)
  	...
  End Sub
  
  Public Function Cell(ByRef pg)
    ...
  	Cell = true
  End Function
  
  Private Sub Class_Initialize
  End sub

  Private Sub Class_Terminate
  End sub
  
End class
Отправка сообщений e-mail в кодировке KOI8-R
При использовании объекта CDONTS сообщения e-mail будут созданы и отправлены в той кодировке, которая была установлена для выполняемого ASP-скрипта (обычно Windows-1251). Для того, чтобы принудительно задать кодировку письма, добавьте к заголовку создаваемого сообщения строку с установкой charset в требуемое значение. Например, для отправки текстового сообщения в KOI8-R это будет выглядеть следующим образом:
Set objNewMail = Server.CreateObject("CDONTS.NewMail") 
objNewMail.Subject = "Тест" & Chr(10) & "Content-Type: text/plain; charset=""koi8-r"""
Отправка почты с использованием SMTP (CDOSYS)
Const cdoSendUsingPort = 2
Const cdoBasic As Integer = 1

myMsg = CreateObject("CDO.Message")
myConfig = CreateObject("CDO.Configuration")

Flds = myConfig.Fields
With Flds

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "your_smtp_server"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "c:\inetpub\mailroot\pickup"
.Item("urn:schemas:mailheader:content-type") = "text/plain; charset=Windows-1251"
.Item("urn:schemas:mailheader:content-transfer-encoding") = "8bit"
.Update()

End With


With myMsg
.Configuration = myConfig
.To = szTo
.From = szFrom
.Subject = szSubject
.HTMLBody = szBody
.Send()

.To = '"Получатель" <someone@rsdn.ru>';
.BCC="one@rsdn.ru; two@rsdn.ru";
.From='"Отправитель" <sender@rsdn.ru>';
.BodyPart.Charset="windows-1251";
.MimeFormatted=true;
.Subject="Тема";
.TextBody="Текст сообщения";
.TextBodyPart.Charset="windows-1251";
.HTMLBody = szBody
.AddAttachment szFileName
End With

Отправка почты с использованием SmartMail
Private Function Win2Koi(str)
	Dim koi, win, i, cs
	win = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
	koi = "бвчздеецъйклмнопртуфхжигюыэящшьасБВЧЗДЕЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС"
	Win2Koi	=	""
	for i=1 to len(str)
		cs	=	mid(str,i,1)
		if instr(win, cs) > 0 then
			Win2Koi	=	Win2Koi & mid(koi, instr(win, cs), 1)
		else
			Win2Koi	=	Win2Koi & cs
		end if
	next
End Function

Public Function SendMailToAdmin()
	Dim mail, subj
	Set mail= createObject("ASPSmartMail.SmartMail")
	mail.Recipients.Add "vlad@mail.ru"
	mail.Server			=	"172.16.16.5"
	mail.SenderAddress	=	"test@mail.ru"
	mail.Subject		=	"Test"
	mail.Body			=	Win2Koi("text")
	mail.Charset		=	"koi8-r"
	mail.ContentType	=	"text/plain"
	mail.SendMail
	set mail			=	nothing
End Function
Где найти хостинг Windows NT (ASP)

Бесплатный хостинг Windows NT (ASP):

  • Brinkster.com
  • WebSamba.com
  • 7host.com

    Коммерческий хостинг Windows NT (ASP) в России:

  • NevaHost.com
  • Parking.ru
  • Geomax.net
  • Highway.ru
  • Masterhost.ru

    Для поиска хостинг-провайдеров за рубежом можно воспользоваться многочисленными специализированными каталогами, например, Hostsearch.com.

  • Определение типа класса
    TypeName(mContent)="clsDummyOld"
    Подключение к БД MS Access (ADO)

    Если файл БД db.mdb находится в каталоге сервера database, то строка для подключения будет выглядеть следующим образом:

    Set Con=Server.CreateObject("ADODB.Connection")
    Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\database\db.mdb")
    Set RS=Server.CreateObject("ADODB.RecordSet")
    
    Как подменить имя ссылки при "Save As"?

    Если вы используете скрипт, который при вызове записывает в Response двоичные данные (например, картинку из БД), то для того, чтобы при вопросе браузера "Save As"? имя файла не выглядело в виде "download.asp?what=SomeFile", его можно "подменить" на более удобное, используя метод Response.AddHeader. Например:

    Response.AddHeader "content-disposition", "filename=SomeFile.zip"
    или
    
    Response.AddHeader "Content-Disposition", "attachment; filename=" & objFile.Name
    Response.AddHeader "Content-Length", objFile.Size
    Запуск файла из asp
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run ("%windir%\notepad" & WScript.ScriptFullName)
    
    Вставка иконки в адресную строку браузера
    Положить в корневую директорию сайта иконку, назвав ее favicon.ico. То есть, если сайт находится по адресу http://www.site.ru, то адрес иконки будет http://www.site.ru/favicon.ico. Если иконка лежит по другому адресу, то можно прописать ее адрес в самой страничке, используя тег <link rel="shortcut icon" href="путь">. В случае динамического формирования иконки можно написать <link rel="shortcut icon" href="http://www.site.com/cgi-bin/icon.pl">
    J2EE CAS COM Bridge
    Если понадобится использовать J2EE CAS COM Bridge (мост от Sun для использования EJB и обычных Java-классов через COM), то процесс создание объекта уже будет отличатся, и запишется так (JScript):
    _factory = Server.CreateObject("J2EECAS.JavaClassLoaderFactory");
    _classloader = _factory.CreateClassLoader();
    _class = _classloader.FindClass("java.lang.String");
    objJavaStr = _class.New();
    GetServerName
    Function Http()
      If  Request.ServerVariables("HTTPS").Item = "on" then
    	Http= "https://"
      Else
        Http= "http://"	
      End if  
    End Function
    
    Function GetServerName()
      GetServerName= Http() & Request.ServerVariables("SERVER_NAME").Item
    End Function
    
    Чтение бинарных данных из файла
    Dim cn, rs, objStream, sSQL 
    
    Set cn = Server.CreateObject("ADODB.Connection") 
    Set rs = Server.CreateObject("ADODB.Recordset")
    Set objStream = 
    
     Server.CreateObject("ADODB.Stream")cn.Open "Provider=SQLOLEDB.1;Initial Catalog=test;DataSource=localhost;UID=yura;PWD=yura;"
    
    sSQL = "SELECT * FROM blob WHERE blob_id=0"
    
    rs.Open sSQL, cn, 1, 3
    
    rs.AddNew
    
    objStream.Type = 1
    objStream.Open
    ' путь к файлу для загрузки
    objStream.LoadFromFile(Server.MapPath("./") & "\test.jpg" )
    rs.Fields("name").Value = "Тестовая картинка"
    rs.Fields("blob_file").Value = objStream.Read
    
    rs.Update
    
    rs.Close
    objStream.Close
    cn.Close
    
    Запись бинарных данных в файл
    Dim cn, rs, objStream, sSQL
    
    Set cn = Server.CreateObject("ADODB.Connection") 
    Set rs = Server.CreateObject("ADODB.Recordset")
    Set objStream = Server.CreateObject("ADODB.Stream")
    
    cn.Open "Provider=SQLOLEDB.1;Initial Catalog=test;Data Source=localhost;UID=yura;PWD=yura;"
    
    ' запрос однозначно получающий запись из таблицы
    ' в данном случае для примера blob_id = 1
    ' в Вашем случае это может быть другое число
    
    sSQL = "SELECT * FROM blob WHERE blob_id=1"
    rs.Open sSQL, cn, 1, 3
    
    objStream.Type = 1
    objStream.Open
    objStream.Write rs.Fields("blob_file").Value
    ' папка, где сохраняется файл, должна иметь NTFS права на чтение/запись для 
    ' интернет-пользователя (обычно IUSR_<имя_компьютера designtimesp=12591>)
    ' в данном случае - это текущая папка 
    objStream.SaveToFile Server.MapPath("./") & "\test_from_db.jpg", 2
    
    rs.Close
    objStream.Close
    cn.Close
    
    Проигрывание видео- и аудиоданных в режиме потока
    XML+XSL -> HTML
    Set oXslt = Server.CreateObject("Msxml2.XSLTemplate")
    Set oXmlDoc = Server.CreateObject("Msxml2.DOMDocument")
    Set oXslStylesheet = Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
    
    oXmlDoc.async = False
    oXmlDoc.load(Server.MapPath("index.xml"))
    oXmlDoc.preserveWhiteSpace = True
    Call oXmlDoc.setProperty("SelectionLanguage", "XPath")
    
    oXslStylesheet.async = False
    oXslStylesheet.load(Server.MapPath("index.xsl"))
    
    Set oXslt.stylesheet = oXslStylesheet
    Set oXslProc = oXslt.createProcessor()
    oXslProc.input = oXmlDoc
    Call oXslProc.addParameter("self-url", CStr(Request.ServerVariables("SCRIPT_NAME")))
    oXslProc.output = Response
    oXslProc.Transform
    Set oXslProc = Nothing
    
    Доступ из xsl к asp переменным
    Создаем класс
    Class ASPObjects
    	
    	'returns Request object variables
    	'QType here represents a collection (QueryString, Form or Server(ServerVariables))
    	Public Function GetRequestVariable(Key, QType)
    		Select Case lcase(QType)
    			Case "querystring"		GetRequestVariable = CStr(Request.QueryString(Key).Item)
    			Case "form"		GetRequestVariable = CStr(Request.Form(Key).Item)
    			Case "server"		GetRequestVariable = CStr(Request.ServerVariables(Key).Item)
    			Case Else			GetRequestVariable = CStr(Request(Key).Item)
    		End Select
    	End Function
    	
    	'returns Session object variables
    	Public Function GetSessionVariable(Key)
    		GetSessionVariable = Session(Key)
    	End Function
    	
    	'sets Session object variable
    	Public Function SetSessionVariable(Key, Value)
    		Session(Key) = Value
    		SetSessionVariable = ""
    	End Function
    End Class
    
    Создаем XSL
    set xslProc = xslt.CreateProcessor()
    
    set xasp = new ASPObjects	'creating our object
    call xslProc.addObject(xasp, "urn:asp-objects")	'adding it to XSL template
    
    call xslProc.Transform()
    TransformXML = xslProc.output
    Set xasp = Nothing	
    
    Получаем доступ
    <xsl:stylesheet version="1.0" 
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    	xmlns:xasp="urn:asp-objects">
    	
    	
    	<xsl:template match="/">
    		<xsl:value-of select="xasp:GetRequestVariable('hello','querystring')" />
    		
    		<xsl:value-of select="xasp:SetSessionVariable('username','Me!')" />
    	</xsl:template>
    	...
    </xsl:stylesheet>
    
    Вызов WEB-сервиса через Microsoft.XMLHTTP
    <!--#include virtual="/webservice.asp"-->
    <html>
    <head>
    <title>testws</title>
    </head>
    <body>
    <%
        dim ws
     
        set ws = new webservice
        ws.url = "http://localhost/yourwebservice.asmx"
        ws.method = "MethodName"
        ws.parameters.Add "ParamName1",1
        ws.parameters.Add "ParamName2",300
        ws.parameters.Add "ParamNameN",500
     
        ws.execute
        response.Write ws.response
     
        set ws = nothing
    %>
    </body>
    </html>
    <%
    option explicit

    class WebService
      public Url
      public Method
      public Response
      public Parameters
     
      public function execute()
        dim xmlhttp
        Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
        xmlhttp.open "POST", Url & "/" & Method, false
        xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        xmlhttp.send Parameters.toString
        response = xmlhttp.responseText
        set xmlhttp = nothing
      end function

      Private Sub Class_Initialize()
        Set Parameters = new wsParameters
      End Sub

      Private Sub Class_Terminate()
        Set Parameters = Nothing
      End Sub
    End class

    class wsParameters
      public mCol

      public function toString()
        dim nItem
        dim buffer
        buffer = ""
        for nItem = 1 to Count
          buffer = buffer & Item(nItem).toString & "&"
        next
        if right(buffer,1)="&" then
          buffer = left(buffer,len(buffer)-1)
        end if
        toString = buffer
      end function

      public sub Clear
        set mcol = nothing
        Set mCol = CreateObject("Scripting.Dictionary")
      end sub

      public sub Add(pKey,pValue)
        dim newParameter
     
        set newParameter = new wsParameter
        newParameter.Key = pKey
        newParameter.Value = pValue
        mCol.Add mCol.count+1, newParameter
     
        set newParameter = nothing
      end sub

      public function Item(nKey)
        set Item=mCol.Item(nKey)
      end function

      public function ExistsXKey(pKey)
        dim nItem
     
        for nItem = 1 to mcol.count
          if mCol.Item(nItem).key = pKey then
            ExistsXKeyword = true
            exit for
          end if
        next
      end function

      public sub Remove(nKey)
        mCol.Remove(nKey)
      end sub

      public function Count()
        Count=mCol.count
      end function

      Private Sub Class_Initialize()
        Set mCol = CreateObject("Scripting.Dictionary")
      End Sub

      Private Sub Class_Terminate()
        Set mCol = Nothing
      End Sub
    end class

    class wsParameter
       public Key
       public Value
       public function toString()
         toString = Key & "=" & Value
       end function
    end class
    %>
    Вызов WEB-сервиса через SOAP
    ' Создаём экземпляр объекта SoapClient
    Set sc = CreateObject("MSSOAP.SoapClient")
    ' Соединяемся с веб-службой и вызываем метод Authenticate
    sc.mssoapinit "http://localhost/AuthSrvc/AuthSrvc.asmx?WSDL"
    If sc.Authenticate ("John", "one", s) = True Then
    	MsgBox "Hello John", 64
    Else
    	MsgBox "Wrong data!!", 48
    End If
    
    ' Удаляем ссылку на объект
    Set sc = Nothing
    
    Работа с регулярными выражениями (RegExp)
    Dim sStr
    Set oRE = New RegExp' CreateObject("VBScript.RegExp")
    sStr = "klkl"
    With oRE
       .Global = True
       .IgnoreCase = True
       .Pattern = "k"
       sStr = .Replace(sStr,"")
    End With
    Set oRE = Nothing
    
    php.rinet.ru
    примеры
    Корректировка GUID
    Function GuidTrim(sGuid)
    Dim reg, ok, str
    GuidTrim = "{00000000-0000-0000-0000-000000000000}"
    If Not IsNull(sGuid) Then
    	str = Trim(sGuid)
    	If Len(str) > 0 Then
    		Set reg = New RegExp
    		With reg
    		    .Global = False
    		    .IgnoreCase = False
    .Pattern = "^({*)([0-9A-F]{8})-([0-9A-F]{4})-([0-9A-F]{4})-([0-9A-F]{4})-([0-9A-F]{12})(}*)$"
    		    If .Test(str) Then
    		         .Pattern = "^({*)"
    		         GuidTrim = .Replace(str, "{")
    		         .Pattern = "(}*)$"
    		         GuidTrim = .Replace(GuidTrim, "}")
    		    End if
    		End With
    		Set reg = Nothing
    	End if
    End if
    End Function
    Коннект к базе
    Dim cn
    set cn = Server.CreateObject("ADODB.Connection")
    cn.Provider = "SQLOLEDB"
    cn.Properties("Initial Catalog") = "pub"
    cn.Properties("Integrated Security").Value = "SSPI"
    cn.Properties("Data Source") = "(local)"
    cn.open
    -
    
    
    Hosted by uCoz