RicH and FamouS

       Home         Glosar IT                                                                                                                                                                                                              SUBSCRIBE NOW!
        
Se afișează postările cu eticheta ASP. Afișați toate postările
Se afișează postările cu eticheta ASP. Afișați toate postările

08.04.2009

Upload de fisiere doar cu ASP

Exista o varianta de uploadat fisiere implementata direct in AS, fara alte obiecte instalate pe server. Desigur, aceasta nu e varianta cea mai optima, insa poate functiona foarte bine acolo unde nu aveti acces la instalat ActiveX-uri. Exista componente ActiveX chiar gratuite pentru asa ceva, care sint de recomandat in locul acestei solutii, insa merge si asa.

Copiati codul de mai jos intr-un fisier, sa-i zicem upload.inc:

Cod:
<%
'***************************************
' File: Upload.asp
' Author: Radu "foster1"
' Email: foster1@xakep.ru
' Date: 05/04/2009
' Enjoy!
'****************************************

Class FileUploader
Public Files
Private mcolFormElem

Private Sub Class_Initialize()
Set Files = Server.CreateObject("Scripting.Dictionary")
Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
End Sub

Private Sub Class_Terminate()
If IsObject(Files) Then
Files.RemoveAll()
Set Files = Nothing
End If
If IsObject(mcolFormElem) Then
mcolFormElem.RemoveAll()
Set mcolFormElem = Nothing
End If
End Sub

Public Property Get Form(sIndex)
Form = ""
If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
End Property

Public Default Sub Upload()
Dim biData, sInputName
Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
Dim nPosFile, nPosBound

If Request.TotalBytes="0" then exit sub

biData = Request.BinaryRead(Request.TotalBytes)
nPosBegin = 1
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

If (nPosEnd-nPosBegin) <= 0 Then Exit Sub

vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
nDataBoundPos = InstrB(1, biData, vDataBounds)

Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))

nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
nPos = InstrB(nPos, biData, CByteString("name="))
nPosBegin = nPos + 6
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
nPosBound = InstrB(nPosEnd, biData, vDataBounds)

If nPosFile <> 0 And nPosFile < nPosBound Then
Dim oUploadFile, sFileName
Set oUploadFile = New UploadedFile

nPosBegin = nPosFile + 10
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, ""))
'oUploadFile.FileName="cici.jpg"

nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
nPosBegin = nPos + 14
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))

nPosBegin = nPosEnd+4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)

If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile
Else
nPos = InstrB(nPos, biData, CByteString(Chr(13)))
nPosBegin = nPos + 4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
If Not mcolFormElem.Exists(LCase(sInputName)) Then
mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin,
nPosEnd-nPosBegin))
End If

nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
Loop
End Sub

'String to byte string conversion
Private Function CByteString(sString)
Dim nIndex
For nIndex = 1 to Len(sString)
CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
Next
End Function

'Byte string to string conversion
Private Function CWideString(bsString)
Dim nIndex
CWideString =""
For nIndex = 1 to LenB(bsString)
CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1)))
Next
End Function
End Class

Class UploadedFile
Public ContentType
Public FileName
Public FileData

Public Property Get FileSize()
FileSize = LenB(FileData)
End Property

Public Sub SaveToDisk(sPath,sFileName)
Dim oFS, oFile
Dim nIndex

If sPath = "" Or FileName = "" Then Exit Sub
If Mid(sPath, Len(sPath)) <> "" Then sPath = sPath & ""

Set oFS = Server.CreateObject("Scripting.FileSystemObject")
If Not oFS.FolderExists(sPath) Then Exit Sub

If oFS.FileExists(sPath & sFileName) Then
oFS.DeleteFile sPath & sFileName,True
End If

Set oFile = oFS.CreateTextFile(sPath & sFileName, True)

For nIndex = 1 to LenB(FileData)
oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
Next

oFile.Close
End Sub

Public Sub SaveToDatabase(ByRef oField)
If LenB(FileData) = 0 Then Exit Sub

If IsObject(oField) Then
oField.AppendChunk FileData
End If
End Sub

End Class
%>

Apoi in orice pagina folositi asa:

Cod:
<!--#include file="upload.asp"-->
<%
Dim Uploader
Set Uploader = New FileUploader
Uploader.Upload()
If Uploader.Form("submit")<>"" Then
' sau puteti verifica if Uploader.Files.Exists("file") then
folder_unde_salvez=Server.MapPath("folder")
nume_fisier="ceva.tmp"
Uploader.Files("file").SaveToDisk folder_unde_salvez, nume_fisier
End if
Set Uploader = Nothing
%>
<form method="post" enctype="multipart/form-data">
<input name="file" type="file">
<input type="submit" name="submit" value="Upload">
</form>

Sint citeva lucruri importante:
- forma trebuie sa aiba enctype="multipart/form-data";
- nu se poate folosi deloc Request.Form() insa exista varianta
Uploader.Form() pentru a accesa alte variabile postate inapoi la forma;
- trebuie sa aveti drepturi in folderul unde va scrie.

07.04.2009

Lucrul cu imagini in ASP

Daca doriti sa lucrati cu imagini in ASP aveti nevoie de componente ActiveX specializate pe aceste lucruri. Exista multe comerciale dar si unele free. Una dintre cele mai bune free (dar si comercial in acelasi timp) este GLF SDK ce are o componenta ActiveX exact pt. ASP sau VB numita GFLAx. O gasiti pt. download la http://perso.orange.fr/pierre......flwin.html

Stie sa lucreze atit cu GIF, JPG cit si PNG si alte formate grafice, iar varianta comerciala are mult mai multe formate suportate (iar pretul componentei este oricum foarte mic).

Dupa instalare (care vine si cu help inclus) puteti s-o folositi foarte simplu din pagini ASP. Sa sau un exemplu de resize proportional a unor imagini GIF sau JPG a unor fisiere sa spunem pasate prin parametru (din folderul 'images'):

Cod:
Dim gfl
Set gfl=Server.CreateObject("GflAx.GflAx")

w=400 ' latimea maxima
h=400 ' inaltimea maxima

gfl.LoadBitmap Server.MapPath("images/' & Request.QueryString("img"))
if (gfl.Width>w or gfl.Height>h) and gfl.Width>0 and gfl.Height>0 then
if gfl.Width>gfl.Height then
px=w
py=Clng(gfl.Height*w/gfl.Width)
else
px=Clng(gfl.Width*h/gfl.Height)
py=h
end if
gfl.EnableLZW = true ' puteti pune asta chiar daca e JPG
gfl.Resize px,py
gfl.SaveBitmap Server.MapPath("images/' & Request.QueryString("img"))
end if

Set gfl=Nothing

Atentie, in acest caz fisierul original este suprascris.

Se apeleaza pagina de forma: pagina.asp?img=imagine.jpg sau pagina.asp?img=imagine.gif.

Alte operatiuni sint la fel de simple, inclusiv operatiuni de rotatie, decupare, etc. sau efecte aplicate imaginilor (blur / sharpen / soften / sepia/ emboss / etc.), sau chiar operatiuni de desenare peste o imagine incarcata sau imagine noua, atit cu text (fonturi) cit si linii.

Mi se pare foarte puternica aceasta componenta pentru imagini putind usura foarte mult munca.

Transmiterea unor valori de la o pagina la alta

Exista mai multe solutii pentru aceasta problema, fiecare cu avantajele ei. Sa le analizam pe rind:

1. Folosind Application sau Session - se initializeaza valoarea intr-o pagina care apoi va fi vizibila pe toata durata rularii aplicatiei sau sesiunii de lucru.
Exemplu:
- in test1.asp:
<%Session("val1")="orice valoare" %>
- in test2.asp sau in alta afisare a paginii test1.asp:
Valoare: <%= Session("val1") %>
Dezavantaje: trebuie sa fie activate cookies-urile in browserul client.
Folosind Cookies - se scrie valoarea de transmis intr-un cookie, care va fi citit in alta pagina. Exemplu:
- in test1.asp:
<% Response.Cookies("val1")="orice valoare" %>
- in test2.asp sau in alta afisare a paginii test1.asp:
Valoare: <%= Request.Cookies("val1") %>
Dezavantaje: trebuie sa fie activate cookies-urile in browserul client, iar setarea cookie-ului trebuie sa se faca inainte de <BODY>.

2. Folosind QueryString - valoarea se transmite in adresa paginii dupa caracterul &.
Exemplu:
- in test1.html (poate fi orice fel de pagina):
< a href="test2.asp?val1=string1&val2=string2">nume legatura
- in test2.asp:
Valoare: <% Response.Write Request.QueryString("val1") & "-" & Request.QueryString("val2") %> Valorile transmise trebuie sa fie in forma URL asa incit nu se pot transmite orice caractere (exemplu spatiu) decit daca sint codificate cu Server.URLEncode.
Dezavantaje: valorile transmise vor fi vizibile in istoricul browserului asa incit nu este indicat sa se foloseasca pentru parole sau date confidentiale.

3. Folosind cimpuri hidden in forme. Aceste valori sint transmise de la o pagina la alta folosind metoda POST de transmitere a valorilor dintr-un FORM.
Exemplu:
- in test1.html (poate fi orice fel de pagina):
<form action="test2.asp" method="post">
<input type="hidden" name="val1" value="orice valoare">
</form>
- in test2.asp:
Valoare: <% Response.Write Request.Form("val1") %>
Dezavantaje: intotdeauna trebuie folosit un FORM pentru postarea datelor.
Se poate folosi o combinatie a acestor metode sau chiar salvarea datelor temporar intr-un fisier sau intr-o baza de date.

Alte functii utile in ASP

Functie de eliminat tagurile HTML dintr-un text, bazat pe expresii regulare:

Cod:
Function RemoveHTML( strText )
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "<[^>]*>"
RegEx.Global = True
RemoveHTML = RegEx.Replace(strText & "", "")
End Function

O functie de afisat numerele cu 2 zecimale sau fara nici o zecimala daca sint intregi. De exemplu va afisa 2.34 sau doar 2 pentru 2.00:

Cod:
function FormatNumber2(x)
if x-int(x)=0 then
FormatNumber2=FormatNumber(x,0)
else
FormatNumber2=FormatNumber(x,2)
end if
end function

Functie de extras extensia unui fisier:

Cod:
Function GetExt(FileName)
Dim start
start=InstrRev(FileName,".")
GetExt=Mid(FileName,start+1)
End Function

Verificat daca un fisier exista:

Cod:
Function FileExist(FileName)
path=Server.MapPath("folder/" & FileName)
Set fso = CreateObject("Scripting.FileSystemObject")
FileExist=fso.FileExists(path)
Set fso = Nothing
End Function

Sters un fisier:

Cod:
Function DeleteFile(FileName)
path=Server.MapPath("folder/" & FileName)
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(path)
Set fso = Nothing
End Function

06.04.2009

Includeri de fisiere ASP

In codul paginilor ASP se pot include fisiere externe cu cod ASP sau de alta natura. Asta ajuta la organizarea mai bine a codului, pastrind lucruri comune intr-un fisier ce poate fi inclus in multe alte fisiere.

Aceasta se realizeaza simplu cu directiva #include:

<!--#include file="fisier1.asp"-->
<!--#include virtual="fisier2.asp"-->

Se vad deja 2 diferente: se foloseste file sau virtual? In principiu fac aceleasi lucruri, difera doar felul cum e specificat fisierul de inclus: fisierul e specificat absolut sau relativ fata de sistemul de fisiere sau e vorba de cai virtuale, relativ la radacina site-ului?

De exemplu:

<!--#include file="..director1fisier1.asp"-->
<!--#include virtual="/director2/fisier2.asp"-->

Primul exemplu include un fisier din directorul "director1" din parintele directorului curent, relativ la caile fisierelor de pe hard-disc.
In al 2-lea exemplu e vorbe de director2 aflat in radacina serverului web.

Sa prezentam un exemplu concret de includere:

In fisier.asp avem:

<html>
<body>
Fisier inclus:
<!--#include file="fisier_inc.asp"-->
</body>
</html>

In fisier_inc.asp avem:
<%
Response.Write "Exemplu inclus"
%>

Citeva explicatii se impun. Includerea este de fapt o inlocuire fizica a continutului in pagina originala, inainte de compilarea paginii de catre ASP. Asta inseamna ca nu se pot folosi variabile. De exemplu nu va functiona:

<%
fname="header.inc"
%>
<!--#include file="<%=fname%>"-->

Pentru a include un fisier in mijlocul unui cod ASP se scrie asa:

<% If x=1 Then %>
<!--#include file="count.inc" -->
<% End If%>

Nu va functiona:

<% If x=1 Then
<!--#include file="count.inc" -->
End If%>

Trebuie avut grija sa nu se includa recursiv un fisier in altul (erorare ce duce la blocarea paginilor):

In fisier1.asp:
<!--#include file="fisier2.asp"-->

In fisier2.asp:
<!--#include file="fisier1.asp"-->

Pe de alta parte, extensia fisierelor de inclus nu sint importante. Poate fi *.asp sau *.inc sau orice altceva. Sa aveti grija doar ca aceasta extensie sa nu fie accesibila direct prin browser, iar codul ASP sa fie afisat in clar (inclusiv cu date sensibile: parole, cod sensibile, etc.).

ASP nu are un echivalent al include_once() din PHP.

Exemplu de pagina ASP

Evident unele proprietati si metode ale obiectelor Request, Response, Server, Application, Session sint mai mult folosite decit altele.

Sa vedem un mic exemplu de pagina ASP:
<%
response.write "<HTML><BODY>" & _
"Aceasta este o pagina construita cu response.write" & vbcrlf
response.write "</BODY></HTML>"
%>

Exemplu de utilizare functii in pagina ASP:
<HTML><BODY>
Acum este: <% =ScrieDataOra() %>
</BODY></HTML>
<%
Function ScrieDataOra()
ScrieDataOra="data " & FormatDateTime(Now,vbShortDate) & " ora " & FormatDateTime(Now,vbShortTime)
End Function
%>

In acest caz s-au folosit 2 functii VBScript si anume FormatDateTime care formateaza o data intr-un anume fel specificat printr-o constanta (vbShortDate, vbShortTime), respectiv Now care returneaza data si ora curenta. In plus am folosit o functie creata in codul ASP numita ScrieDataOra.
Asemenea functiilor se pot crea in codul ASP si proceduri

Sub nume_proc()
...
End Sub

Foarte multe pagini ASP folosesc baze de date MS SQL Server sau Access pentru pastrarea unor diverse informatii. Sa vedem cum se poate face asta intr-un mic exemplu. Presupunem ca avem o baza de date numita "test.mdb" in directorul paginii "test.asp" care are table-ul "Users".

<html>
<body>
Toti userii inregistrati sint:<br>
<%
Dim con, rec
Set con=Server.CreateObject("ADODB.Connection")
Set rec=Server.CreateObject("ADODB.Recordset")
con.Open "DBQ=" & Server.MapPath(".") & "test.mdb;Driver={Microsoft Access Driver (*.mdb)};"
if request.Form("nume")<>"" then _
con.Execute "INSERT INTO Users(Nume) VALUES('" & request.Form("nume") & "')"
rec.Open "SELECT * FROM Users",con
while not rec.EOF
response.write rec.Fields("Nume") & "<br>" & vbcrlf
rec.MoveNext
wend
rec.Close
Set rec=Nothing
con.Close
Set con=Nothing %>
<form action="test.asp" method="post">
Numele: <input type=text name="nume">
<input type=submit value="Adauga">
</form>
</body>
</html>

Pentru deschiderea Recordset-ului am folosit valorile default pentru acesta si am adaugat valorile in baza de date folosind Connection. Dupa cum vedeti pagina in care vor fi POST-ate valorile la apasarea pe butonul Adauga este chiar pagina insasi (test.asp). Aceste valori se regasesc in Request.Form("numele_cimpului_din form"). Daca in FORM este un cimp checkbox valoarea lui este vida sau "on" dupa cum cimpul este marcat sau nu. ( exemplu: if request.Form("Checkbox1")="on" then ... ' este marcat)

Obiectele ASP-ului

In principal toata functionalitatea ASP-ului consta in citeva obiecte:
- Request
- Response
- Server
- Application
- Session
- ObjectContext

Vom analiza pe rind toate proprietatile, metodele si evenimentele acestor obiecte.

Request- este folosit pentru a manipula informatiile trimise de catre client la serverul de web.

Colectii:
ClientCertificate - folosit pentru certificate de securitate in comunicatia cu diverse site-uri folosind protocolul SSL (sau PCT).

Forma generala:
Request.ClientCertificate (Cheie[SubCheie] )
Toate valorile cheilor si subcheilor se pot afla in help.

Cookies - folosit pentru citirea cookies-urilor in paginile web.
Cookies-ul este o mica informatie salvata pe calculatorul client (nu pe server) care poate fi utilizata de paginile respective si care nu este vizibila altor site-uri. In cookies se pot pastra diverse informatii. S-a recurs la aceasta solutie deoarece protocolul HTTP folosit in comunicatia dintre client si server pe Internet este "stateless" (fara mentinerea unor stari de la o pagina la alta in cadrul aceluias site). Cookies-urile se pot activa sau dezactiva din browserul de internet. Este foarte important ca acestea sa fie activate atunci cind se folosesc obiectele Application sau Session. Prin intermediul acestei colectii se pot scrie sau citi informatiile pastrate in cookies-urile
asociate site-ului.

Forma generala:
Request.Cookies(nume_cookie)[(cheie)|.atribute]

Exemplu:
<%= Request.Cookies("myCookie") %>

Form - prin acest obiect avem acces la valorile cimpurilor postate dintr-un form.

Forma generala:

Request.Form(element)[(index)|.Count]
element - numele elementului din forma
index - incepe de la 1

Exemplu:
<HTML>
<BODY>
Salut <%= Request.Form("nume") %><p>
<FORM ACTION = "exemplu.asp" METHOD = "post">
Dati numele: <INPUT NAME = "nume"> <INPUT TYPE = SUBMIT>
</FORM>
</BODY></HTML>

Deoarece Form este colectia "default" a obiectului se putea scrie Request("nume").
QueryString - permite accesul la parametrii paginii transmisi in cererea HTTP dupa caracterul "?" (separati de "&").

Forma generala:
Request.QueryString(nume_variabila)[(index)|.Count]

Exemplu:
Pentru < A HREF= "exemplu.asp?string1=orice&string2=altceva">
Exemplu:
Request.QueryString("string1") o sa returneze "orice", iar Request.QueryString("string2") o sa fie "altceva".

ServerVariables - permite accesul la citiva parametri caracteristici ai serverului de web sau a cererii HTTP curente.
Exemplu:
<%= Request.ServerVariables("SERVER_NAME") %>
<%= Request.ServerVariables("REMOTE_HOST") %>

Lista completa a parametrilor poate fi gasita in help.

Proprietati:
TotalBytes - (read-only) contine numarul de biti din corpul cererii facute de client.

Metode:

BinaryRead - permite citirea binara a cererii trimisa de catre client la serverul de web prin metoda POST.

Response - este folosit pentru a manipula informatiile trimise de catre serverul de web la client.

Colectii:
Cookies - folosit pentru a scrie informatii in cookies asociate unui site.

Forma generala:
Response.Cookies(nume_cookie)[(cheie)|.atribute] = valoare

Exemplu:
<% Response.Cookies("myCookie") = "orice text" %>

Pentru aceste cookies se poate seta intervalul de timp cit sint functionale sau domeniul pentru care sint valabile. Este foarte important ca scrierea unui cookie sa se faca inainte body-ul documentului (<BODY>) deoarece este transmis clientului in HEAD-ul documentului.

Proprietati:
Buffer - este folosit pentru a pastra sau nu raspunsul catre client intr-un bufer pina cind se apeleaza metoda Flush sau End. In acest fel nu va fi afisat nimic in browser pina la terminarea prelucrarilor in pagina ASP.

Forma generala:
Response.Buffer [ TRUE | FALSE]

CacheControl- specifica daca paginile generate pot fi pastrate in diverse cache-uri pe parcursul drumului spre calculatorul client.

Forma generala:
Response.CacheControl [ Private | Public]

Charset - adauga in headerul raspunsului catre client si un alt set de caractere.
ContentType - tipul raspunsului trimis catre client. De obicei e "text/HTML" (sau "image/GIF" sau "image/JPEG" atunci cind se trimite spre browser o imagine).
Expires - numarul in minute dupa care pagina expira in cache-ul browserului.
ExpiresAsolute - data cind pagina expira in cache-ul browserului.
IsClientConnected - specifica daca clientul este conectat sau nu de la ultimul Response.Write.

PICS - adauga un comentariu PICS in headerul raspunsului
Status - starea raspunsului care poate fi trimisa catre browserul client.

Exemplu:
<% Response.Status = "401 Unauthorized" %>

Metode:
AddHeader - folosit pentru adaugarea unei variabile in headerul
transmis la client. Se poate folosi doar inainte de <BODY>.

Forma generala:
Response.AddHeader nume,valoare

AppendToLog - adauga un string la log-ul serverului web.
BinaryWrite - trimite cod binar la client.
Clear - sterge buferul paginii ASP
End - opreste prelucrarea paginii ASP si trimite pagina la browser in starea in care este.
Flush - trimite pagina la browser in starea in care este.
Redirect - redirecteaza pagina spre alta pagina. Se poate folosi doar inainte de <BODY> sau daca este dupa acesta pagina spre care este redirectata nu trebuie sa mai aiba <BODY>
Write - scrie un string care va fi trimis catre client.

Exemplu:
<HTML><BODY>
<%Response.Write "acesta este un test"%>
</HTML>"


Server - folosit in special pentru citeva functii foarte importante


Proprietati:
ScriptTimeout - intervalul de timp maxim in secunde cit poate rula pagina ASP inainte de a rezulta un mesaj de eroare.

Exemplu:
Server.ScriptTimeout = 30

Metode:
CreateObject - folosit pentru crearea unui obiect COM ce va putea fi utilizat de catre scriptul ASP. Aceste obiecte pot fi create cu orice limbaj care "stie" COM: Visual Basic, VC++, Delphi, etc. Ele pot implementa diverse functii privind functionalitatea site-ului.

Forma generala:
Server.CreateObject (ProgID)

Exemplu:
lt;% Set MyAd = Server.CreateObject("MSWC.AdRotator") %>

Distrugerea obiectului creat se poate face astfel: lt;% Set MyAd = Nothing %>
Probabil cel mai important obiect care este folosit este ADO (ActiveX Data Objects) pentru accesul la diverse baze de date: MS SQL Server, Access, Oracle, etc.

HTMLEncode - codifica un string in format HTML.

Exemplu:
<%= Server.HTMLEncode("Paragraf nou: <P>") %>
Va rezulta: Paragraf nou: &lt;P&gt;

MapPath - mapeaza o cale virtuala catre directorul aferent pe HDD.

Exemplu:
<%=Server.MapPath(Request.ServerVariables("PATH_INFO"))%>
Va rezulta (de exemplu): c:inetpubwwwrootscripttest.asp

URLEncode - codifica un string in format URL, pentru a putea fi transmis ca parametru dupa caracterul "?" din adresa.

Exemplu:
Server.URLEncode("http://www.microsoft.com")
Va rezulta: http%3A%2F%2Fwww%2Emicrosoft%2Ecom

Application - folosit pentru a pastra informatii pentru toti utilizatorii de la un moment dat al aplicatiei. Pentru a evita scrierea simultana a informatiilor din acest obiect de catre 2 utilizatori se folosesc metodete Lock / Unlock pentru blocarea/deblocarea accesului la aceste informatii.


Colectii:
Contents - cuprinde toate elementele adaugate pe baza unei chei sau
a elementelor create cu Server.CreateObject. Acestea se pot atit citi
cit si scrie.

Exemplu:
<% Application.Contents("strHello") = "Hello"
Set Application("objCustom") = Server.CreateObject("MyComponent")
Response.Write Application("strHello") %>

Aceasta e colectia default asa ca Application.Contents("strHello") respectiv Application("strHello") este acelasi lucru.

StaticObjects - reprezinta obiectele create cu <OBJECT> si este similat cu colectia Contents.

Metode:
Lock, Unlock - descris mai sus: pentru a impiedica modificarea simultana a unor valori de catre 2 useri.

Session - este asemanator cu Application dar este specific pentru fiecare user in parte. Poate fi utilizat pentru a pastra niste valori pe toata durata utilizarii aplicatiei de catre un user. Atit Session cit si Application pot fi utilizate doar daca userii au activat suportul pentru cookies in browserul de internet.
Colectiile Contents si StaticObjects sint asemenatoare cu cele de la Application.

Proprietati:
CodePage - codul paginii de caractere folosit
LCID - identificator local pentru formatarea numerelor si datei. Exemplu: Session.LCID=2057 va formata numerele si data in stil britanic.
SessionID - un identificator al sesiunii de lucru
Timeout - intervalul de timp in minute dupa care va expira obiectul Session, iar valorile continute se pierd.

Metode:
Abandon - abandoneaza o sesiune se lucru si distruge valorile continute.

ObjectContext - reprezinta contextul in care ruleaza obiectele COM care functioneaza sub Microsoft Transaction Server (MTS), context care poate stabili daca o tranzactie a fost incheiata cu succes sau nu. Are 2 metode: SetAbort - pentru a semnala ca o tranzactie a esuat, respectiv SetComplete - daca tranzactia a fost incheiata cu succes.

    Blog din Moldova    FastCounter 

 
Copyright © 2008-2010 Foster1. All rights reserved.