Casinos Not Affected By GamstopOnline Casinos

VoiceXML Italian User Group

Home page��VoiceXML Links��VoiceXML Tutorial��News dai Working Groups Voice Browser e Multimodal Interaction del World Wide Web Consortium��Articoli��Accessibilita' del web mediante la voce

Libri Voice & Speech technologies��La nostra Newsletter��Il nostro Forum��Contatti��Gli eventi a cui lo User Group ha partecipato o partecipera'��Parlano (speriamo bene:-)) di noi...



TUTORIAL VOICEXML e PHP

Lezione 2. Leggere i dati da un database.����Christian Lacetera����

<!-- INIZIO LEZIONE --!>
Nell'esempio precedente abbiamo mostrato com'� semplice integrare il codice del PHP con il VoiceXML.
L'uso di un linguaggio server side quale il PHP sembrerebbe pero' non essere giustificato, perch� nelle applicazioni vocali disponiamo gi� del JavaScript che ci permette di interagire all'interno del documento.
JavaScript non ci permette pero' di leggere o scrivere da un database. Questo il motivo per cui si utilizza un linguaggio di scripting quale il PHP in grado di generare pagine dinamiche, una modalit� questa ben conosciuta da molti webmaster.


login.php

<?php
header("Content-type: application/voicexml+xml");
$connection = mysql_connect("localhost", "utenza", "password");
mysql_select_db("database");
$result = mysql_query("SELECT username,name FROM VIUG_USERS WHERE pin = '" . $_POST["pin"]
. "'");
if (mysql_num_rows($result) > 0) {
�$rs�=�mysql_fetch_assoc($result);
�$auth="yes";
} else{
$auth="no";
}
?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
<var auth="'<?php =$auth;?>'">
<form�id="main">
��<if�cond="auth='yes'">
���<goto�src="#login">
��<else/>
���<goto�src='#nologin'>
��</if>
</form>�
<form�id="login">
�<block>
���<prompt>
������Benvenuto�<?php�=rs['name']:�?>�ora�puoi�accedere�alla�tua�pagina�personale
���</prompt>
���<goto�src="personal.php">
�</block>
</form>
<form�id="login">
�<block>
���<prompt>
������Mi�dispiace�il�codice�inserito�non��valido
���</prompt>
���<goto�src="index.php">
�</block>
</form>
</vxml>




Come l'esempio della prima Lezione (index.php) defininiamo i content type appropriato e scriviamo l'intestazione per il documento XML.

Dopo aver fatto tutto ci�, possiamo, attraverso le funzioni intergrate del PHP, leggere i dati da un database in questo caso MySQL e memorizzarle dentro delle variabili.

In questo esempio si � scelto di gestire all'interno dello stesso documento sia l'autenticazione andata a buon fine che quella errata, in modo di mostrare la possibilit� di integrazione tra logica del codice e VoiceXML, nulla vietava ad un utente pi� smaliziato di utilizzare un header http per il redirezionamento in base alla situazione:


<?php
$connection = mysql_connect("localhost", "utenza", "password");
mysql_select_db("database");
$result = mysql_query("SELECT username,name FROM VIUG_USERS WHERE pin = '" . $_POST["pin"]
. "'");
if (mysql_num_rows($result) > 0) {
header('Location:�login_ok.php');�
} else{
header('Location:�login_ko.php');�
}
?>


Questo perch� l'interprete VoiceXML si comporta come un browser e segue le specifiche per le richieste HTTP.

Tornando all'esempio, si vede che viene definita una variabile chiamata "auth" nel documento VoiceXML e attraverso il tag <if> viene scelto quale form eseguire.

Spesso in situazioni reali � consigliabile usare uno stesso documento per gestire le diverse situazioni, e utilizzare delle chiamate a subdocumenti per analizzare le risposte.

Cio' e' possibile attraverso il tag <submit> che permette di eseguire un post ad un subdocumento e di ritornare in maniera automatica al form di partenza senza doverlo ricaricare.
<!-- FINE LEZIONE --!>


Torna alla LEZIONE 1�����/�����Vai alla LEZIONE 3�����