helyoWAP

PÁGINAS WML GERADAS DINAMICAMENTE EM AMBIENTE ASP
 
(05)
Programa comentado: wasp9.asp

Autores: Helio Fonseca Rosa e Andrea de Mello Rosa

Esta página contém 5 figuras grandes. Aguarde a carga se a conexão estiver lenta.


Enviando dados de um dispositivo WAP para uma página ASP

Inicialmente, vamos recordar como um usuário entra com um dado em seu dispositivo WAP (celular ou simulador).
A tag <input> da linguagem WML proporciona esta facilidade.
A listagem abaixo é um deck com dois cards. O primeiro card,  identificado com o nome de "entra_senha", realiza as seguintes ações: 
1. exibe uma mensagem para o usuário solicitando a senha, que deve ser digitada no local indicado pelo cursor; esta senha é armazenada na variável chamada "senha";  
2. ao término da digitação o usuário pressiona a tecla "Accept" (cujo label por omissão é "OK") e ocorre o desvio ( proporcionado pelas tags associadas do e go) para o card identificado com o nome de "exibir" ; 
Este card proporciona a seguinte ação: exibe na tela o conteúdo da variável "senha" (notar que o nome da variável é "senha" mas seu conteúdo é indicado por "$senha".

Este é um programa WML e deve ser salvo com extensão .wml, opção somente texto.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
" http://www.wapforum.org/DTD/wml_1.1.xml">
<wml> 
<card id="entra_senha"> 
<do type="accept"> 
<go href="#exibir"/> 
</do> 
<p>
*****HELYOWAP*****<br/> 
Digite sua senha: <br/> 
<input name="senha" /> 
</p> 
</card> 

<card id="exibir"> 
<p> 
Confirmando: voce digitou
$senha 
</p> 
</card> 
</wml> 

Eis a tela após a digitação da senha "wapwap":

Pressionado a tecla abaixo de "OK" obtemos:

Lembrando o  objetivo do exemplo acima : recordar o processo de armazenar um dado no celular (simulador) que foi entrado via digitação no teclado do aparelho.

 

Vamos utilizar a tag "input" num programa modificado para  estudar como este dado (senha, no caso) é enviado para uma página ASP.

Utilizaremos a tag ou elemento "select" associada à tag "option".
"Select" possui um atributo ' multiple="false" ' que indica que se deve escolher apenas uma opção entre as disponíveis.
"Option" possui um atributo "onpick" que especifica um endereço de desvio se a opção for selecionada.
Este endereço tem uma construção ou sintaxe especial, pois vai "transportar" a senha para a página ASP armazenada no  servidor PWS. 
O nome de nossa página ASP que vai receber a senha (e vai dar origem à pagina montada "on-the-fly" que será exibida na tela do simulador) é "paginapws.asp" .
Eis o formato do endereço da mini-page ASP : http://localhost/paginapws.asp?name=$(minha_senha).
O ponto-de interrogação "?" é usado para separar o endereço da página ASP do dado a ser enviado (no caso , a senha). O  formato do envio do dado é  "name=$(   )" sendo que dentro dos parênteses deveremos colocar o nome da variável que contém o dado ( senha ).

Aqui está o programa que envia a senha (gravado como vaisenha.asp, opção "somente texto", na pasta C:/Inetpub/wwwroot):

Programa "vaisenha.asp":

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

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 
          "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
  <card id="Inicio">
   <p>
    Digite sua senha: 
    <input title="Senha:" maxlength="6" name="minha_senha"/><br/>
    <select multiple="false">
<option title="Prosseguir"
     onpick="http://localhost/paginapws.asp?name=$(minha_senha)">Prosseguir
</option>
<option title="Cancelar"
     onpick="#Inicio">Cancelar
</option>
    </select>
   </p>
  </card>
</wml>

A senha enviada ao PWS pode ser utilizada de várias maneiras, como por exemplo, armazenada em um banco de dados ou sofrer algum tipo de validação. No nosso caso, para efeito didático, vamos enviá-la de volta para o dispositivo WAP (simulador). Isto será responsabilidade do script "Request.QueryString("name"). Eis a listagem auto-explicativa:

Programa wasp09:

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

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="Confirma">
<p>
*****HELYOWAP*****<br/><br/>
A senha digitada foi:<br/><%= Request.QueryString("name") %>
</p>
</card>
</wml>

Vamos então observar a execução, digitando no campo de endereço do simulador o caminho para o arquivo do programa que permite a entrada da senha pelo celular (simulador).

 

Neste exemplo digitamos a senha "wapwap" usando o teclado do micro; ela é exibida a partir do ponto em que está o cursor.
Terminada a digitação, pressionamos a tecla que está sob o label "OK" e surge a tela:

Optamos por prosseguir, pressionando a tecla sob o label  "prosseguir". Sem necessidade de digitar novo endereço no simulador, é mostrada a tela abaixo, que foi montada dinamicamente com a senha enviada inicialmente do  simulador para o servidor PWS.

 

 

WirelessBRASIL                 Portal helyoWAP                    Anterior                    Próxima