Información general
Inicio
Quienes somos?
 
Áreas
JAVA MOVIL
WAP
MOVIL OS
TICA
 
Tutoriales
Tutorial General
Tutorial WML
 
AnteriorContenidoSiguiente

Aplicaciones para Dispositivos Móviles

Autores (2003)
María Fernanda Dulcey
Andrés Fernando Piamba
Javier Alexander Hurtado
2.5. Enviando datos desde WML

Una aplicación WAP es prácticamente idéntica a una aplicación WEB, y en cierta forma se le puede considerar como una "extensión" de esta puesto que logra la aplicación WEB este disponible en los dispositivos móviles.

Como toda aplicación, es necesario tener acceso a Bases de datos, y en terminos generales, esas capacidades van determinadas por las características del lenguaje de programación utilizado. En el caso de PHP, este cuenta con una cantidad de librerías para el manejo de operaciones con diversos SGBD (Sistemas de Gestión de Bases de Datos), tales como Oracle, Informox, SQL Server, Interbase o mySql. De igual manera también es posible utilizar ODBC (Open Data Base Conectivity) para aquellos SGBD que no tengan una librería definida, tal es el caso de Microsfot Access.

Si hablamos de JSP o Servlets, la tecnología utilizada para conseguir la conectividad a SGBD es JDBC, tema que merece un capítulo aparte.

Hablando en terminos generales, las operaciones con Bases de Datos se resumen a las siguientes:

  • Establecer una conexión con la Base de Datos
  • Seleccionar la Base de Datos con la cual se va a trabajar
  • Realizar las consultas SQL necesarias
  • Cerrar la conexión con la Base de Datos

Para algunos SGBD como mySQL y MS SQL Server estas operaciones tiene sus respectivas funciones en las librerías de PHP. En el caso de mysql tenemos:

  • mysql_connect(): realiza una conexión con mySql
  • mysql_close(): cierra una conexión con la base de datos
  • mysql_select_db(): selecciona la base de datos con la que se va a trabajar
  • mysql_query(): envía una consulta SQL a mySql
  • mysql_result(): extrae un campo de un resultado de consulta SQL
  • mysql_free_result(): libera la memoria utilizada por la consulta SQL
  • mysql_num_rows(): entrega el número de registros de un resultado

En el caso de MS SQL Server tenemos:

  • mssql_connect(): abre una conexión con MS SQL Server
  • mssql_close(): cierra una conexión con MS SQL Server
  • mssql_select_db(): selecciona una base de datos de MS SQL Server
  • mssql_query(): envía una consulta SQL a MS SQL Server
  • mssql_result(): obtiene un campo del resultado de la consulta SQL
  • mssql_free_result(): libera la memoria utilizada por la consulta SQL
  • mssql_num_rows(): entrega el número de registros de un resultado

Ahora realizaremos una pequeña demostración, para ello necesitamos un formulario WML como el siguiente: Descargar código

Archivo bd.php

<?php
header("Content-type: text/vnd.wap.wml");
print "<?xml version="1.0"?>";
print "<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">";
?>
<wml>
<card id="uno">
<do type="accept">
<go href="#dos">
</do>
<p align="center"><b>Nombre</b><br />
<input type="text" name="nom" />
</p>
</card>
<card id="dos">
<do type="accept">
<go href="#tres">
</do>
<p align="center"><b>Login</b><br />
<input type="text" name="log" />
</p>
</card>
<card id="tres">
<do type="accept">
<go href="rtabd.php" method="post">
<postfield name="nombre" value="$(nom)" />
<postfield name="login" value="$(log)" />
</go>
</do>
<p>
<b>Datos</b><br />
Listo para enviar: $(nom), $(log)
</p>
</card>
</wml>

En este formulario se solicita al usuario que escriba su nombre y un login, luego esos datos son enviados al servidor utilizando el método POST. Hay una diferencia en comparación con las aplicaciones web. En primer lugar, en WML cada definición de un control de formulario genera automáticamente una variabla cuyo nombre será el mismo del control, y además es conocido en todas las cards del documento WML. Para enviar ese dato al servidor, se debe utilizar un postfield que es algo asi como un sobre en el que empaquetamos datos para ser enviados. En le ejemplo, el cuadro de texto llamado nom recibe el nombre que digita el usuario en la card uno. En la card tres se empaqueta en el postfield llamado nombre. Las variables se acceden como variables globales dentro del documento de manera similar que en PHP empezando con el signo $. No se debe confundir con las variables en PHP. El resultado es:

Paso 1 de 5 Paso 2 de 5
Paso 3 de 5

El script PHP de respuesta es:

<?php
header("Content-type: text/vnd.wap.wml");
print "<?xml version="1.0"?>";
print "<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">";
?>
<wml>
<card id="uno">
<do type="accept">
<go href="#dos">
</do>
<p>
<?php
print "<b>Nombre:</b> $nombre<br />";
print "<b>Login:</b> $login<br />";
//Proceso de conexion a una base de datos mySql
$cx = mysql_connect("localhost","root","");
//Selección de la base de datos
mysql_select_db("misdatos");
//Sentencia SQL
$sql = "INSERT INTO usuario VALUES ('$nombre','$login')";
//Ejecución de la sentencia SQL
mysql_query($sql);
//Cierre de la conexión
mysql_close($cx);
print "Los datos fueron registrados con exito";
?>
</p>
</card>

Facultad de Ingeniería en Electrónica y Telecomunicaciones
Universidad del Cauca
Información: Webmaster
Copyright © - 2006