6.4 使用$_GET和$_POST“采集”表单数据
PHP提供了很多的预定义变量,其中包括$_GET、$_POST、$_FILES、$_REQUEST、$_SERVER、$_COOKIE、$_ENV、$_SESSION等,这些变量的数据类型均为数组。
当浏览器向WEB服务器某PHP程序提交数据后,该PHP程序应该根据其“提交”方式决定使用何种数据“采集”方法。当浏览器以GET方式提交数据时,服务器端PHP程序应当使用预定义变量$_GET“采集”提交数据;当浏览器以POST方式提交数据时,服务器端PHP程序应当使用预定义变量$_POST“采集”提交数据。将 register.php 程序修改为如下代码,采集浏览器用户在register.html表单中填写的个人信息。
<?php
echo "您填写的用户名为:".$_POST['userName'];
echo "<br/>";
echo "您注册的邮箱域名为:".$_POST['domain'];
echo "<br/>";
echo "您填写的登录密码为:".$_POST['password'];
echo "<br/>";
echo "您填写的确认密码为:".$_POST['confirmPassword'];
echo "<br/>";
echo "您填写的性别为:".$_POST['sex'];
echo "<br/>";
echo "您填写的个人爱好为:";
foreach($_POST['interests'] as $interest){
echo $interest." ";
}
echo "<br/>";
echo "您的个人相片为:".$_POST['myPicture'];
echo "<br/>";
echo "上传相片的文件大小不能超过:".$_POST['MAX_FILE_SIZE']."字节";
echo "<br/>";
echo "您填写的备注信息为:".$_POST['remark'];
echo "<br/>";
echo "您单击的提交按钮为:";
echo isset($_POST['submit1'])?"普通提交按钮":"图像提交按钮";
?>
在register.html页面的FORM表单中输入个人信息,单击“普通提交按钮”后,register.html页面的 FORM 表单将触发 register.php 程序运行, register.php 采集表单数据并将其显示(如图 6-9所示)。
程序register.php说明如下。
(1)由于“个人爱好”3个复选框定义为一个数组,因此$_POST['interests']的数据类型为数组,程序register.php使用了foreach语言结构遍历了该数组。
(2)代码“isset($_POST['submit1'])?"普通提交按钮":"图像提交按钮"”使用了条件运算符。
(3)由于“个人相片”选项为文件上传框,使用$_POST['myPicture']将采集不到个人相片的任何信息,PHP语句“echo "您的个人相片为:".$_POST['myPicture'];”将产生Notice信息。文件上传框中的数据须使用预定义变量$_FILES进行采集。
(4)预定义变量$_GET的使用方法与$_POST相似,这里不再赘述。