Un sito con WML e ASP

In questo articolo diamo per scontato che si conoscagià il linguaggio ASP (Active Server Pages) e unpo' di WML (Wireless Markup Language) ed il protocolloWAP (Wireless Application Protocol).

Troppo ? No, niente paura in verità l'unica cosache bisogna conoscere un po' meglio è l'ASP,per il resto vedremo che non è niente di esoterico dacapire e da realizzare.

Qui vedremo due listati uno e' di un form di ricerca cheappare sul dispositivo WAP compatibile (es. Nokia 7110) dacompilare e che passa i dati ad un file ASP che li elabora epoi invia un output (sempre sul display del GSM) in WMLcosì da poterlo visionare.

Simuliamo la costruzione di un sito che permetta di cercaredei libri per TITOLO e per CASA EDITRICE.

Cominciamo col file default.asp:

DEFAULT.ASP:

Il file inizia con il Response.ContentType perchédobbiamo settare un nuovo tipo di MIME il text/vnd.wap.wmlper la trasmissione di dati in WML.

 

<%Response.ContentType = "text/vnd.wap.wml"

 

La routine che segue l'ho creata appositamenteperché mi sono accorto che se qualcuno vuole provare anavigare un sito in WML con i browser per HTML (InternetExplorer o Netscape), questi gli permettono di"salvare" il file, perché non ne riconosconoil formato, insomma come quando si clicca per fare ildownload di un file, a quel punto chiunque può"sgarffignare" il vostro prezioso codice. Ma questaroutine riconosce se il browser che si sta usando è ilNestcape o l'Explorer e in caso affermativo effettua unaredirezione su un sito web in html.

 

brow=request.servervariables("HTTP_USER_AGENT")k = InStr(brow, "Mozilla")If k > 0 Thenstrbuff = Mid(brow, 1, k - 1)lun_str = Len(brow)For k1 = k To lun_strcar = Mid(brow, k1, 7)If car = "Mozilla" Then response.redirect "http://www.giroscopio.com"NextEnd If%><?xml version="1.0"?><wml>

 

Dopi i tag standard per creare la pagina WML ecco che creiamola prima "card" , ossia la scheda che èvisualizzata sul display.

 

<card id="ricerc" title="Ricerca"><p>Titolo: <input name="titolo" title="titolo:"/><br/>

 

Abbiamo un'etichetta "Titolo:" ed un elementodi input che sarebbe una box di testo, chiamata"titolo" , nella quale adremo a scrivere un titolodi un libro.

In seguito abbaimo una menu a tendina, chiamato"selez" , dal quale possiamo selezionare due caseeditrici.

 

Casa Editrice:<select name="selez" title="Editrice" value="editrice"><option value="seleziona">-----</option><option value="Feltrinelli">Feltrinelli</option><option value="Mondadori">Mondadori</option></select><br/>

 

Infine creiamo il tasto "CERCA" che una voltacliccato, tramite il tag 
<go href="…. ci porta al sito (fittizio)http://www.provawml.com/wap e chiama il file lista.asppassandogli le variabili su linea di comando.

Le variabili selez e tit prendono rispettivamente i valoricontenuti nelle variabili WML "selez" e"titolo" , il codice "&#38;"rappresenta la "&" che in WML è uncarattere "proibito" , però ci serve percomporre la querystring che sarà letta dal filelista.asp.

 

 

<do type="accept" label="Cerca"><go href="http://www.provawml.com/wap/lista.asp?selez=$(selez)&#38;tit=$(titolo) "/></do></p></card></wml>

 

 

LISTA.ASP

 

<%Response.ContentType = "text/vnd.wap.wml"brow=request.servervariables("HTTP_USER_AGENT")k = InStr(brow, "Mozilla")If k > 0 Thenstrbuff = Mid(brow, 1, k - 1)lun_str = Len(brow)For k1 = k To lun_strcar = Mid(brow, k1, 7)If car = "Mozilla" Then response.redirect "http://www.giroscopio.com"NextEnd If%><?xml version="1.0"?><wml><%

 

Qui il c'è la lettura delle variabili selez e titprese dalla querystring.

 

selez2=request.querystring("selez")tit2=request.querystring("tit")In seguito si costruisce la query SQL e si connette il database in presente sul server.sql="select * from libri where titolo like '"&tit2&"' and selez like '"&selez&"'"Set OBJdbConnection = Server.CreateObject("ADODB.Connection")OBJdbConnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("/biblioteca.mdb")Set RS=OBJdbConnection.Execute(sql)%>

 

Ora si costruisce la card di output in WML, inserendoopportunamente i tag ASP (<% e %>) quando servono perl'estrazione dei campi dai records del database.

 

<card id="lista" title="lista"><p><%if not rs.eof then%><table columns="2"><%Do while NOT RS.EOF%><tr><td><%=rs("autore")%></td><td><%=rs("titolo")%></td><td><%=rs("editrice")%></td><td><%=rs("data")%></td></tr><%RS.MoveNextLoop%></table><% else%>Nessuno trovato !<%end ifRS.CloseOBJdbConnection.Close%><do type="accept" label="Indietro"><go href="http://www.provawml.com/wap/default.asp"/></do></p></card></wml>

 

Concludendo se si sa già programmare in ASP bastasoltanto modificare l'output fatto dai tag HTML con i tagWML, chiaramente questo discorso vale anche per chi usa ilPERL o il PHP, l'importante è chel'interfaccia utente (input ed output) sia in WMLaltrimenti il telefonino non visualizzeràalcunché… oppure… aspettatel'UMTS…ma questa è un'altra storia.



Ti potrebbe interessare anche

commenta la notizia