<?php echo "<input type=hidden value=/"" . htmlspecialchars($data) . "/">/n";?>
注意: 这里不能用urlencode() $data, 因为 urlencode() 数据是浏览器的责任. 绝大多数浏览器可以正确处理这样的数据. 无论用何种方法( get post). 你可以只考虑 get 请求, 因为 post 请求通常被隐藏了.
<?php echo "<textarea name=mydata>/n"; echo htmlspecialchars($data)."/n"; echo "</textarea>";?>
注意: 在浏览器窗口显示的数据会被解码成可读的,因为浏览器会对 html 标记进行解释.
一旦提交, 无论get 还是 post, 浏览器在传输数据时会进行url编码,php则会对它进行解码. 一切都是自动进行的,你不需要做什么.
<?php echo "<a href=/"" . htmlspecialchars("/nextpage.php?stage=23&data=" . urlencode($data)) . "/">/n";?>
注意: 实际上你在自己写一个 get 请求, 所以用urlencode() 对它进行编码就是不可缺少的.
注意: 你需要htmlspecialchars() 整个url串, 因为url串是 html-属性的一部分. 这种情况下, 浏览器首先 反-htmlspecialchars() 这个值, 然后送出 url . php 会识别这个url串, 因为你用 urlencoded() 对它进行了编码.
你会发现 & 在 url 串中 被替换成 &. 虽然你没有编码大部分的浏览器也会帮你做,但并不是所有的都能. 所以即使你在写一个静态的url,你也需要 用 htmlspecialchars() 来对 url 进行编码.
<input type="image" src=http://www.163design.net/p/a/"image.gif" name="foo">when 当用户点上 image 控件的某个地方时, 表单被提交到服务器,并有两个附加的变量: foo.x and foo.y.
<input name="myarray[]"><input name="myarray[]"><input name="myarray[]"><input name="myarray[]">注意元素名后面的中括号不能省, 就是它使结果成为一个数组. 你可以通过元素名把它们排成不同的数组 :
<input name="myarray[]"><input name="myarray[]"><input name="myotherarray[]"><input name="myotherarray[]">上面的代码产生了两个数组, myarray 和 myotherarray, 送往php. 当然也可以为你的数组指明键值:
<input name="anotherarray[]"><input name="anotherarray[]"><input name="anotherarray[email]"><input name="anotherarray[phone]">anotherarray 数组会容纳下标 0, 1, email and phone.
说明: 在元素名里标明下标值是可选的.如果你没有标明,数组会按元素在表单里出现的顺序来依次填充. 如我们的头一个例子里数组的下标分别是: 0, 1, 2 and 3.
<select name="var" multiple>每一个被选择的项会这样传值给处理脚本:
var=option1var=option2var=option3每个值覆盖了前一项的值. $var 解决办法是使用 php的 "表单元素数组"特性.下面就是:
<select name="var[]" multiple>php会把 $var当成一个数组.每个被选择项都会分配给一个数组单元. 第一项是$var[0], 下一项是 $var[1], 依此类推. count() 函数可以用来判断数组有多少选择项 ,如果有必要的话,还可以用 sort() 函数来对数组进行排序.
variable = documents.forms[0].elements['var[]'];
新闻热点
疑难解答