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> используется для указания имени переменной для хранения данных формы.
В следующей главе вы узнаете, как обрабатывать загруженные данные на стороне сервера.