260 likes | 355 Views
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 N D
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 minuti Imponendo 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 qui Application.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 sub sub Application_OnEnd ''''some code end sub sub Session_OnStart ''''some code end sub sub 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 Sub Sub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1 Application.UnLock End Sub Sub 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>