WML - отправка данных на сервер

Часто вы хотите, чтобы ваши пользователи отправляли некоторые данные на ваш сервер. Подобно HTML-форме, WML также предоставляет механизм для отправки пользовательских данных на веб-сервер.

Чтобы отправить данные на сервер в WML, вам понадобятся теги <go> ... </go> вместе с тегами <postfield />. Тег <postfield /> должен быть заключен в пару тегов <go> ... </go>.

Чтобы отправить данные на сервер, мы собираем все заданные переменные WML и используем элементы <postfield> для их отправки на сервер. Элементы <go> ... </go> используются для установки метода публикации POST или GET и для указания сценария на стороне сервера для обработки загруженных данных.

В предыдущих главах мы объяснили различные способы получения информации от пользователей. Эти элементы ввода устанавливают для переменных WML введенные значения. Мы также знаем, как получать значения из переменных WML. Итак, теперь в следующем примере показано, как отправить на сервер имя, возраст и пол из трех полей .

<?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>

Когда вы загружаете указанный выше код на свое WAP-устройство, вам будет предоставлена ​​возможность ввести имя, возраст и пол в трех полях и одну ссылку « Отправить данные» . Вы введете три поля и, наконец, выберете ссылку « Отправить данные», чтобы отправить введенные данные на сервер.

Метод атрибут <Go> тег определяет , какой HTTP метод следует использовать для отправки данных формы.

Если используется метод HTTP POST, данные формы для отправки будут помещены в тело сообщения запроса. Если используется метод HTTP GET, данные формы для отправки будут добавлены к URL-адресу. Поскольку URL-адрес может содержать только ограниченное количество символов, недостаток метода GET заключается в том, что существует ограничение на размер отправляемых данных. Если пользовательские данные содержат символы, отличные от ASCII, вы должны использовать метод POST, чтобы избежать проблем с кодировкой.

Есть одно важное различие между HTML и WML. В HTML атрибут name тегов <input> и <select> используется для указания имени параметра, который будет отправлен, тогда как в WML атрибут name тега <postfield> используется для того же. В WML атрибут name <input> и <select> используется для указания имени переменной для хранения данных формы.

В следующей главе вы узнаете, как обрабатывать загруженные данные на стороне сервера.