表单中的任何元素都在php脚本中自动生效
例子,一个简单的HTML表单
<form action="action.php" method="POST"> Your name:<input type="text" name="name"> Your age:<input type="text" name="age"> <input type="submit"> </form>
该表单中没有什么特殊的内容,其中没有任何特殊的字符,当用户填写了该表单并点击了提交按钮,页面action.php将被调用。在文件中可以加入以下代码,打印出来自表单的数据
Hi<?php echo $_POST["name"];?> You are <?php echo $_POST["age"];?>Years old.
该脚本输出的可能是:
Hi joe
You are 22 Years old
该脚本进行的工作已经很明显了。php自动为您设置$_POST['name']和$_POST['age']变量。,
在这之前我们使用了自动全局变量$_SERVER,现在我们引入了自动全局变量$_POST,它包含所有的$_POST数据。请注意我们表单提交数据的方法method。如果我们使用了GET方法,那么表单中的数据将被存储到自动全局变量$_GET中。
如果你并不关心请求数据的来源,你也可以用自动全局变量$_REQUEST,它包含了所有GET,POST,COOKIE和FILE的数据
下面介绍一个函数:import_request_variables()
--将GET、POST、Cookie变量导入全局作用域中,如果禁止了register_globals(),但又想用到一些全局变量,那么此函数就很有用
bool import_request_variables(string types[,string prefix])
可以使用types参数指定需要导入的变量。可以用字母‘G’,‘P’和‘C’分别表示GET、POST、和Cookie。这些字母不区分别大小写,所以可以使用这三个字母的任意组合。
注意这些字母的顺序,当使用‘GP’时候,POST变量将使用相同的名字覆盖GET变量。任何‘GPC’以外的字母都将被忽略
prefix参数作为变量名的前缀,置于所有被导入全局作用域的变量值钱。所以如果你有个名为‘userid’的GET变量,同时提供了“pref_”作为前缀,那么你将获得一个名为“pref_userid”的全局变量
如果对其他全局变量感兴趣,请考虑使用extract().
注解:虽然prefix参数是可选的,但如果不指定前缀,或者指定一个空字符串作为前缀,你将获得E_NOTICE级别的错误。
<?php import_request_variables("gp","rvar_"); print $rvar_name; ?> <form action="index.php" action="post"><input type="text" name="name"><input type="submit" name="submit"></form>
输出的就是在文本框里面填写的内容