Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

VoiceXML e ASP: connessione a DB

Condividere le informazioni del DB di una applicazione ASP
Condividere le informazioni del DB di una applicazione ASP
Link copiato negli appunti

Avevamo terminato la precedente lezione inviando alla pagina "vlogin.asp" le informazioni della userid e della password dell'utente in questa forma:

<submit next="vlogin.asp" method="get" namelist="loginname loginpw"/>

Ora pensiamo a come ricevere le informazioni inviate e fare una query sul database:

listato 4.6: Autenticazione utente

<% @Language=VBScript %>
<!--#include file="conessione.asp"-->
<%
strSQL = "SELECT * FROM Users WHERE Pwd='" & Request("loginpw") & "' AND UserID ='" & request.querystring("loginname")& "'"

set rsUsr = conn.Execute (strSQL)

If rsUsr.EOF AND rsUsr.BOF Then
  'Utente non valido
  Session("Logged") = False
Else
  Session("Name") = rsUsr("Name")
  Session("Logged") = true
End If

rsUsr.Close
set srUsr = Nothing
%>

<!--#include file="close_connessione.asp"-->

Dopo aver aperto una connessione con il db nel file connessione.asp, che non esaminiamo in quanto esula dalle finalità del nostro corso, eseguiamo una query sul database per vedere se esistono corrispondenze con i dati raccolti dai form voicexml dal file "login.asp".

Alla fine chiudiamo la connessione importando il file close_connessione.asp.

Se il risultato della nostra query è positivo impostiamo la variabile di sessione "logged" come true, altrimenti come false.

Creiamo i prompt per dire all'utente se è autenticato o meno. Per farlo il codice è simile a quello usato nella precedente lezione:

listato 4.7: Autenticazione utente con prompt

<%@ Language=VBScript %>
<!--#include file="conessione.asp"-->
<%
Response.ContentType = "text/xml"
Response.Write("<?xml version= ""1.0"" encoding=""ISO-8859-1""?>")
%>
<vxml version="2.0">

<%
strSQL = "SELECT * FROM Users WHERE Pwd = '" & Request("loginpw") & "' AND UserID = '" & Request.querystring("loginname")& "'"

set rsUsr = conn.Execute (strSQL)
%>

 <form id="welcome">
  <block>
  <prompt>
  
 <%
 If rsUsr.EOF AND rsUsr.BOF Then
 'Utente non valido
  Session("Logged") = False
 %>
   Ciao <%=rsUsr("Nome")%>, ora puoi accedere ai tuoi servizi personalizzati
  </prompt>
  </block>
 <%
 Else
  Session("Name") = rsUsr("Name")
  Session("Logged") = true
 %>
   Spiacente i dati da te forniti non sono validi. 
  </prompt>
  </block>
 <%
 End If
 %>
 </form>
 <%
 rsUsr.Close
 set srUsr = nothing
%>
</vxml>
<!--#include file="close_connessione.asp"-->

In questo caso abbiamo generato un messaggio di errore, in caso di autenticazione fallita, ed un messaggio contenente il nome dell'utente preso dal database.

Ovviamente in entrambi i casi possiamo spostare il flusso dell'applicazione ad un altro file ASP, attraverso il redirect, o VoiceXML, utilizzando i tag "goto" o "sumbit".

Questo piccolo esempio può essere ampliato inserendo nel database ulteriori informazioni dell'utente, come per esempio le sue preferenze per l'interfaccia vocale; oppure, ancora è possibile utilizzare il dato del numero di telefono dell'utente per riconoscerlo e velocizzarne l'autenticazione.

Ti consigliamo anche