WML - Invia dati al server

Molte volte, vorrai che i tuoi utenti inviino alcuni dati al tuo server. Simile al modulo HTML, WML fornisce anche un meccanismo per inviare i dati dell'utente al server web.

Per inviare dati al server in WML, sono necessari i tag <go> ... </go> insieme ai tag <postfield />. Il tag <postfield /> deve essere racchiuso nella coppia di tag <go> ... </go>.

Per inviare dati a un server, raccogliamo tutte le variabili WML impostate e utilizziamo gli elementi <postfield> per inviarli al server. Gli elementi <go> ... </go> vengono utilizzati per impostare il metodo di pubblicazione su POST o GET e per specificare uno script lato server per gestire i dati caricati.

Nei capitoli precedenti abbiamo spiegato vari modi di prendere input dagli utenti. Questi elementi di input impostano le variabili WML sui valori immessi. Sappiamo anche come prendere valori dalle variabili WML. Quindi ora l'esempio seguente mostra come inviare tre campi nome, età e sesso al server.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card id="card1" title="WML Form">
<p>
   Name: <input name="name" size="12"/>
   Sex : <select name="sex">
      <option value="male">Male</option>
      <option value="female">Female</option>
      </select>
   Age :  <input name="age" size="12" format="*N"/>
   <anchor>
      <go method="get" href="process.php">
          <postfield name="name" value="$(name)"/>
          <postfield name="age" value="$(age)"/>
          <postfield name="sex" value="$(sex)"/>
      </go>
      Submit Data
    </anchor>
</p>
</card>

</wml>

Quando scarichi il codice sopra sul tuo dispositivo WAP, ti fornirà la possibilità di inserire tre campi nome, età e sesso e un link Invia dati . Entrerai in tre campi e infine selezionerai il collegamento Invia dati per inviare i dati inseriti al server.

L' attributo del metodo del tag <go> specifica quale metodo HTTP deve essere utilizzato per inviare i dati del modulo.

Se viene utilizzato il metodo HTTP POST, i dati del modulo da inviare verranno inseriti nel corpo del messaggio della richiesta. Se viene utilizzato il metodo HTTP GET, i dati del modulo da inviare verranno aggiunti all'URL. Poiché un URL può contenere solo un numero limitato di caratteri, il metodo GET presenta lo svantaggio che esiste un limite di dimensione per i dati da inviare. Se i dati dell'utente contengono caratteri non ASCII, è necessario utilizzare il metodo POST per evitare problemi di codifica.

C'è una grande differenza tra HTML e WML. In HTML, l'attributo name dei tag <input> e <select> viene utilizzato per specificare il nome del parametro da inviare, mentre in WML l'attributo name del tag <postfield> viene utilizzato per fare la stessa cosa. In WML, l'attributo name di <input> e <select> viene utilizzato per specificare il nome della variabile per la memorizzazione dei dati del modulo.

Il prossimo capitolo ti insegnerà come gestire i dati caricati sul server.