1、PHP中的表单数据读取,目标:,概述 处理表单 单选控件(radio)的选取值的处理 复选控件(checkbox)的选取值的处理 下拉框控件(select)值的处理 文本域控件(textarea)值的处理,概述,HTML表单是静态网页和动态网页的结合点,理解HTML表单标记的主要成员的构成和数据属性,了解这些数据成分在向PHP程序变量转换过程中所产生的对应关系和变量形态,概述,能较容易地对用户通过 HTML 表单提交的信息进行操作的能力一直是 PHP 的优势之一。,概述,处理表单 PHP 一个很有用的特点体现在它处理 PHP 表单的方式。需要理解的非常重要的原理,是表单的任何元素都在你的 PH
2、P 脚本中自动生效。,HTML表单与PHP处理程序,一个简单的HTML表单姓名:兴趣:,HTML表单与PHP处理程序,对简单表单的PHP程序处理Welcome!,HTML表单与PHP处理程序,注意: 含有表单的文件往往是一个“纯”HTML文件,比如上例的表单文档就是一个有“.htm”后缀的文件。 HTML表单是一个容器元素,即有开始和结束标记,在中至少包含两个属性:“ACTION”和“METHOD”。,HTML表单的ACTION,ACTION属性的值表示该表单的处理方法,也就是表单提交后需要执行的PHP程序或动态网页的名称。表示在用户提交表单后,由Web服务器上的echo.php程序来处理用户
3、所提交的数据(该文档与form.htm在同一目录中)。,HTML表单的METHOD,METHOD说明本表单向服务器发送输入信息时的使用方式一般有两种选择:POST和GET,默认的方式是GET。,HTML表单的METHOD,使用GET时,HTTP的客户端将表单上用户的输入信息作为字符串附加在ACTION所设定的URL后面,中间用“?”和“&”隔开,然后把整个字符串传送到服务器端,HTML表单的METHOD,而使用POST方法时,HTTP会将表单的输入信息进行包装后发送,而不是附加在Action所设定的URL之后发送。,_GET变量,$_GET变量是一个包含名称name和值value的数组(这些名
4、称和值是通过HTTP GET方法发送的,且都可以利用)。 $_GET变量使用“method=get”来获取表单信息。通过GET方法发送的信息是可见的(它将显示在浏览器的地址栏里),并且它有长度限制(信息的总长度不能超过100个字符character)。, Name: Age: 当用户点击“提交Submit”按钮后,URL的方式显示 http:/ ? years old!,$_POST变量,PHP $_POST变量的作用是:获取method = “post”方法发送的表单变量。$_POST变量是一个包含名称name何值value的数组(这些名称和值是通过HTTP POST方法发送的,且都可以利用
5、) $_POST变量使用“method=POST”来获取表单信息。通过POST方法发送的信息是不可见的,并且它没有关于信息长度的限制。,案例Enter your name: Enter your age: 当用户点击“提交Submit”按钮后,URL中不会包含任何表单数据 “welcome.php”文件可以使用“$_POST”变量来获取表单数据(注意:表单栏form field内的名称将会自动作为“$_POST”数组中的ID关键词): Welcome . You are years old!,get和post的区别,1. get是从服务器上获取数据,post是向服务器传送数据。 2. get是
6、把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。,get和post的区别,3. 对于get方式,服务器端用$_GET获取变量的值,对于post方式,服务器端用$_POST获取提交的数据。 4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。 5. get安全性非常低,post安全
7、性较高。但是执行效率却比Post方法好。,get和post的区别,建议: 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式; 2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;,$_REQUEST变量,PHP $_REQUEST变量包含$_GET, $_POST, and $_COOKIE的内容 PHP $_REQUEST变量可以用来获取通过“GET”和“POST”这两种方法发送的表单数据。 案例 Welcome . You are years old!,Form元素的用法,在HTML中,表单一般有如下结构: ,单选
8、控件(radio)的选取值的处理,按作者姓名查询按诗词标题查询按文章内容查询统计作者相关信息 ,单选控件的选取值的处理,复选控件(checkbox)的选取值的处理,表单: 爱 好:音乐 体育 电脑,读取方式: echo “你的爱好有:“ echo $_POSTC1; echo $_POSTC2; echo $_POSTC3“;,复选控件(checkbox)的选取值的处理,表单: 爱 好:音乐 体育 电脑,读取方式: echo “你的爱好有:“ echo $_POSTC1; echo $_POSTC2; echo $_POSTC3“;,读取方式: if(isset($_POSTC) ,下拉框控件
9、(select)值的处理,软件工程系计算机应用网络工程 ,读取方式: $crew_values = $_POSTcrew; echo count($crew_values); echo $crew_values0; echo “; echo “$crew_values1; echo “; echo “$crew_values2;,TEXTAREA元素, 这里是内容 /a.php ,表单有效性验证(Form Validation),用户输入的信息应该尽可能的通过客户端脚本程序(如:JavaScript)浏览器上验证;通过浏览器进行信息的有效性验证可以提高效率并减少服务器的下载压力。如果用户输入的
10、信息需要存进数据库,那么你必须考虑在服务器端进行有效性验证。在服务器上验证信息有效性的最好方法就是把表单信息发给当前页进行验证,而不是调到其他页面进行验证。通过上述方法,如果表单存在错误,用户可以直接在当前页获取错误信息。这使得我们更容易发现存在的错误信息。,练习,1、建立网页文件form2.html,程序文件form2.php编写表单,实现乘法运算。要求:从页面form2.html中提交乘数和被乘数,form2.php中读取数据,做乘法运算并将结果输出到客户端页面。,练习,2、编写网页form1.html,练习编写表单及控件效果如右图:编写php代码,创建User类,并且以表单中输入的数据创建对象,并以表格形式输出,练习,3、实现2的n次方(用户页面输入指数),作业:,总结:,预习内容,