Upload
ezzelin-de-rosa
View
218
Download
1
Embed Size (px)
Citation preview
Active Server Pages ed ADO
Scrivere ASP
• Le pagine ASP possono contenere codice HTML o XML
• Le parti del documento che racchiudono codice script vanno racchiuse tra i delimitatori <% e %>
• Gli script vengono eseguiti sul lato server• E’ possibile usare sia vbscript che javascript (in
questo caso aggiungere in testa al documento: <%@ language="javascript"%> )
• per default il server assume script in vbscript
La mia prima ASP
<html><head><title>la mia prima
asp</title></head><body><% response.write("Hello World!") %> </body></html>• Il metodo di scrittura e’ response.write
Elementi della sintassi• Dichiarazione di variabili e loro uso:
<%dim namename=“Bond"response.write("My name is: " & name)%>
• Array:• <%
Dim cognome(5)cognome(0) = “bond"cognome(1) = “kravitz"cognome(2) = "Hegel"cognome(3) = "Stalin"cognome(4) = “Kim Jong Il"cognome(5) = "Borges"
For i = 0 to 5 response.write(cognome(i) & "<br />")Next%>
esempio
• <%dim hh=hour(now())
response.write("<p>" & now())response.write(" (Ora locale server) </p>")If h<12 then response.write("Good Morning!")else response.write("Good evening!")end if%>
Durata delle variabili
• Variabili in un file ASP sono accessibili all’interno dell’intero file.
• Le variabili dichiarate all’interno di procedure sono visibili solo all’interno delle stesse.
• Variabili che debbano essere accessibili da file diversi devono essere variabili di session (sessione di un unico utente) oppure di application (visibili a tutti gli utenti) .
Usare le procedure
• <html><head><%sub vbproc(num1,num2)response.write(num1*num2)end sub%></head><body><p>Risultato: <%call vbproc(3,4)%></p><p>Risultato: <%vbproc 3,4%></p></body></html>
Interagire con le ASP: usare le form
<html><body><form action="demo.asp" method="post">Your name: <input type="text" name="fname" size="20"><input type="submit" value="Submit"></form><%dim fnamefname=Request.Form("fname")If fname<>"" Then Response.Write("Hello " & fname & "!<br />") Response.Write("How are you today?")End If%></body></html>
• E’ anche possibile usare il metodo GET, ma e’ sconsigliato
Passare parametri ad una ASP mediante form
<html><body><form method="post"
action="welcome.asp"> First Name: <input type="text"
name="fname" value=""> Last Name: <input type="text"
name="lname" value=""> <input type="submit" value="Submit"> </form>
</body></html>
Passare parametri ad una ASP mediante form
<html><body>
<% fname=Request.form("fname") lname=Request.form("lname") response.write("<p>Hello " & fname & " " & lname & "!</p>") response.write("<grazie di esistere!</p>") %>
</body></html>
Usare i cookie con le ASP• <%
dim visiteresponse.cookies("visite").Expires=date+365 visite=request.cookies("visite")%><html><body><%if visite="" then response.cookies("visite")=1%> Welcome! This is the first time you are visiting this Web page.<%else response.cookies("visite")=visite+1 response.write("You have visited this ") response.write("Web page " & visite) if visite=1 then response.write " time before! Thanks for coming back" else response.write " times before! Thanks for coming back " end ifend if%></body></html>
Variabili di sessione
• Mantengono dati relativi ad un utente durante una sessione di lavoro
• Un oggetto Session viene instanziato sul server all’inizio di una sessione utente e distrutto alla fine della stessa
• Una sessione inizia quando:– un utente richiede una pagina asp e nel file denominato
Global.asa è presente una procedura Session_OnStart – Un valore viene immagazzinato in una variabile session
• Una sessione termina: Per default dopo 20 minutiImponendo un timeout <% Session.Timeout=5 %> Imponendo l’abbandono immediato <% Session.Abandon %>
Usare variabili di sessione
• Per inserirle:<% Session("username")=“Antonio"
Session("age")=27 %> • Per recuperarle: Welcome <
%Response.Write(Session("username"))%> • Per rimuoverle: <% If Session.Contents("age")<18 then
Session.Contents.Remove(“buy") End If %>
Usare variabili di application
• Una application è un set di file asp, tipicamente concepiti per essere usati insieme in sequenza.
• Una application consente di legare le variabili dei vari file insieme.
• La visibilità delle variabili è per tutti gli utenti della applicazione.
• Ciascuna variabile può esere bloccata e sbloccata
Usare variabili di application
• Nel file Global.asa scrivere qualcosa tipo:<script language="vbscript" runat="server"> Sub Application_OnStart application("vartime")="" application("users")=1 End Sub </script>• Per accedere: <% Response.Write(Application("users")) %> • Per bloccare/sbloccare<% Application.Lock ‘aggiungere il codice quiApplication.Unlock %>
Il file Global.asa• Può contenere dichiarazioni di oggetti, metodi e variabili accessibili da tutti i
file nella applicazione• Deve trovarsi nella root della pplicazione; ci può essere 1 solo file di questo
tipo nella applicazione• Un generico file:<script language="vbscript" runat="server">sub Application_OnStart ''''some code end subsub Application_OnEnd ''''some code end subsub Session_OnStart ''''some code end subsub Session_OnEnd ''''some code end sub</script>
Esempi:Inizializzare un contatore di sessione:<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>Aprire un nuovo documento: <script language="vbscript" runat="server"> sub Session_OnStart
Response.Redirect("newpage.asp") end sub </script>
Esempi:<script language="vbscript" runat="server">Sub Application_OnStart Application("visitors")=0 End SubSub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1
Application.UnLock End SubSub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1
Application.UnLock End Sub</script> Per mostrare i visitatori al momento:<%response.write(Application("visitors"))%>
Active Data Objects
• E’ una tecnologia Microsoft
• E’ un componente Active-X
• E’ concepita per accedere in maniera semplice a database via web
• E’ presente in IIS
• Usa ed estende l’accesso via ODBC
Connettersi ad un database
• Varie modalità:
Diretta:<% set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" %>
Via ODBC:<% set conn=Server.CreateObject("ADODB.Connection")
conn.Open "northwind" %>
Recuperare dati da un DB
• Creare un recordset:<%Set rs=Server.CreateObject("ADODB.recordset") rs.Open "Select * from Customers", conn %> Visualizzare i dati estratti:<%for each x in rs.fields
response.write(x.name) response.write(" = ") response.write(x.value)
next %>
Un esempio:<html><body><%set conn=Server.CreateObject("ADODB.Connection") conn.Open "northwind" set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT Companyname, Contactname FROM Customers"rs.Open sql, conn%>
<table border="1" width="100%"><tr>
<%for each x in rs.Fields response.write("<th>" & x.name & "</th>")next%></tr><%do until rs.EOF%> <tr> <%for each x in rs.Fields%> <td><%Response.Write(x.value)%></td> <%next rs.MoveNext%> </tr><%looprs.closeconn.close%></table></body></html>
Aggiungere un record: input file<html> <body><form method="post" action="demo_add.asp"> <table> <tr> <td>CustomerID:</td> <td><input name="custid"></td> </tr><tr> <td>Company Name:</td> <td><input name="compname"></td> </tr><tr> <td>Contact Name:</td> <td><input name="contname"></td> </tr><tr> <td>Address:</td> <td><input name="address"></td> </tr></table> <input type="submit" value="Add New"> </form></body> </html>
Aggiungere un record: asp<html> <body><% set conn=Server.CreateObject("ADODB.Connection") conn.Open "northwind" sql="INSERT INTO customers (customerID,companyname," sql=sql & "contactname,address)" sql=sql & " VALUES " sql=sql & "('" & Request.Form("custid") & "'," sql=sql & "'" & Request.Form("compname") & "'," sql=sql & "'" & Request.Form("contname") & "'," sql=sql & "'" & Request.Form("address") & "')“on error resume next conn.Execute sql,recaffected if err<>0 then Response.Write("No update permissions!") else Response.Write("<h3>" & recaffected & " record added</h3>") end if conn.close %> </body> </html>
Interrogare un db con dei valori
<html> <body><form method="post" action="demo_query.asp"> <table> <tr> <td>CustomerID:</td> <td><input name="custid"></td> </tr><tr> <td>Company Name:</td> <td><input name="compname"></td> </tr></table> <input type="submit" value=“Find data"> </form></body> </html>
<html> <body><% set conn=Server.CreateObject("ADODB.Connection") conn.Open "northwind" sql=“SELECT * FROM customers WHERE custid = & Request.Form("custid") & " AND “ Sql=sql & “compname =“ & Request.Form("compname") & "" rs.Open sql, conn
%><table border="1" width="100%">
<tr><%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")next%></tr><%do until rs.EOF%> <tr> <%for each x in rs.Fields%> <td><%Response.Write(x.value)%></td> <%next rs.MoveNext%> </tr><%looprs.closeconn.close%></table></body></html>