1、WML的语法比HTML严谨。不成对出现的标记一定要用“/>”结尾,不然会有奇怪的结果,让你摸不着头脑。尤其在HTML中用惯的<input...>和<br>一定要写成<input ... />和<br/>。而且value的值一定要用引号括住,如不能写成:<input name=a value=1/>而要写成<input name="a" value="1"/>,否则服务端会得到$_REQUEST['a']='1/',而且下一个input值还得不到(因为第一个input还没结束);
2、要通过http header:Location来跳转页面的话,HTML可以用相对路径,WML必须用绝对路径,例如PHP中:
HTML:
header("302 Moved Temporarily");
header("Location: target.html");
WML:
header("302 Moved Temporarily");
header("Location: ".dirname($REQUEST_URI)."/target.wml");
3、其实这个不是WML的问题,而是WAP网关的问题:WAP网关会把提交的数据用UTF-8编码,因此涉及中文的话,服务端要进行UTF-8到GB2312的转换(当然,如果程序和数据库都用UTF-8编码保存的话就不用了)。PHP下可以用iconv搞定:
$name=iconv('UTF-8','GB2312',$_REQUEST['name']);
WML的几个小陷阱(浪费了不少时间哦)
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240826070647288-243310440.jpg)