|
发表于 2006-10-15 00:28:55
|
显示全部楼层
这个说来话长了,表单提交的值被服务端接收时,实际上是被存放在一个超变量数组中的。用get方式提交的被存放在$_GET中,post提交的表单被存放在$_POST中,而表单单元的name值则是键名,在本例中,你的表单方式是post,表单单元的name是test,因此你可以通过调用$_POST['test']来获得test的值。
而你说的通过$test获取的方法,仅仅存在于当global_register参数开启的情况下,那时候各超变量数组中的各个值,会以他们的键名作为变量名称,而成为一个独立的变量。但这种方式存在安全隐患,遂不为大多数服务器采用,而且现在安装完php的时候,默认global_register也是off的。
对于本例提供3个方案:
1,使用$_POST['test']代替$test使用
推荐
2,修改php的配置文件,开启global_register
反对
3,在程序开始时加入将$_POST超变量数组自动转为变量的程序,代码如下:
while(list($k,$v)=each($_POST))if($k&&$v)${$k}=$v;
***注意,在使用该代码时,表单单元名称以非字母与下划线开头的,有可能会出现错误
折衷 |
|