PHP表单详解Word文件下载.docx

上传人:b****2 文档编号:5779203 上传时间:2023-05-05 格式:DOCX 页数:38 大小:79.96KB
下载 相关 举报
PHP表单详解Word文件下载.docx_第1页
第1页 / 共38页
PHP表单详解Word文件下载.docx_第2页
第2页 / 共38页
PHP表单详解Word文件下载.docx_第3页
第3页 / 共38页
PHP表单详解Word文件下载.docx_第4页
第4页 / 共38页
PHP表单详解Word文件下载.docx_第5页
第5页 / 共38页
PHP表单详解Word文件下载.docx_第6页
第6页 / 共38页
PHP表单详解Word文件下载.docx_第7页
第7页 / 共38页
PHP表单详解Word文件下载.docx_第8页
第8页 / 共38页
PHP表单详解Word文件下载.docx_第9页
第9页 / 共38页
PHP表单详解Word文件下载.docx_第10页
第10页 / 共38页
PHP表单详解Word文件下载.docx_第11页
第11页 / 共38页
PHP表单详解Word文件下载.docx_第12页
第12页 / 共38页
PHP表单详解Word文件下载.docx_第13页
第13页 / 共38页
PHP表单详解Word文件下载.docx_第14页
第14页 / 共38页
PHP表单详解Word文件下载.docx_第15页
第15页 / 共38页
PHP表单详解Word文件下载.docx_第16页
第16页 / 共38页
PHP表单详解Word文件下载.docx_第17页
第17页 / 共38页
PHP表单详解Word文件下载.docx_第18页
第18页 / 共38页
PHP表单详解Word文件下载.docx_第19页
第19页 / 共38页
PHP表单详解Word文件下载.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

PHP表单详解Word文件下载.docx

《PHP表单详解Word文件下载.docx》由会员分享,可在线阅读,更多相关《PHP表单详解Word文件下载.docx(38页珍藏版)》请在冰点文库上搜索。

PHP表单详解Word文件下载.docx

id="

action="

getPasswd.php"

method="

post"

>

 

电子邮件:

text"

size=30name="

email"

value="

"

<

确定"

name="

btnSubmit"

其中,action标签指的是接收处理结果的文件位置,当action值为空时,则提交给当前文件本身,如果action的值为其他文件或URL,则提交给该文件或URL地址处理。

method标签是描述提交数据时使用的方法,它有两种值:

GET和POST,如果没有设置method属性或该属性为空值,浏览器默认method的值为POST方法。

下面是处理POST表单的方法。

例5-1:

getPasswd.php–接受POST表单提交的值

php

$action=$_SERVER['

PHP_SELF'

];

if($_SERVER['

REQUEST_METHOD'

]=='

POST'

){ 

echo'

使用POST方法传递表单值'

;

echo"

$_POST[email]"

}

phpecho$action;

如果要在浏览器中发送表单或数据给服务器端,使用GET或POST方法都能实现。

GET方法是在访问URL时,使用浏览器地址栏来传递值。

我们可以在很多网站上看到这类URL串,图5-1所示的就是使用GET方法传递参数。

图5-1

GET方法方便直观,缺点是访问该网站的用户也可以修改URL串后发送给服务器,如果程序处理得不够好很容易出错,而且GET传递的字符串长度不能超过250个字符,如果超长,浏览器会自动截断,导致数据缺失。

另外,GET方法不支持ASCII字符之外的任何字符,比如包含有汉字或其他非ASCII字符时,需要使用额外的编码操作,虽然有时候浏览器也能自动完成(可以使用url_encode和url_decode函数,使用方法详见2.9.2节)。

POST方法发送变量数据时,对于用户来说是不透明的,按HTTP协议来说,数据附加于header的头信息中,用户不能随意修改,这对于Web应用程序而言,安全性要好得多,而且使用POST可以发送大体积的数据给Web服务器。

因为POST是随HTTP的header信息一起发送的,当触发POST表单提交后,如果用户浏览页面时单击“后退”按钮,浏览器不会自动重发POST数据。

如果用户此时单击“刷新”按钮,将会有“数据已经过期,是否重新提交表单”的提示,这一点不如GET使用方便。

使用GET传值时,即便用户使用“后退”或“刷新”按钮,浏览器的URL地址也是仍然存在的。

因此,我们在开发中需要根据实际应用灵活选择GET和POST来提交表单数据。

值得一提的是,如果在HTML中缺少表单结束标记,那么整个表单是不会触发任何提交动作的。

在实际开发时,一些粗心的人会发现单击按钮没有任何反映,其实细心检查一下表单的代码就可以了,有时即使少写了一个HTML字符,浏览器也不会替我们干活的。

5.4表单元素

表单所使用的标签元素有十几个,PHP开发中常用及较重要的标签如表5-1所示。

表5-1

表单元素

说 

checkbox"

复选框,允许用户选择多个选择项

file"

文件浏览框,当文件上传时,可用来打开一个模式窗口以选择文件

hidden"

隐藏标签,用于在表单中以隐含方式提交变量值 

password"

密码文本框,用户在该文本框输入字符时将被替换显示为*号

radio"

单选项,用于设置一组选择项,用户只能选择一个

reset"

清除与重置表单内容,用于清除表单中所有文本框的内容,而且使选择菜单项恢复到初始值

表单提交按钮

单行文本框

select

下拉列表框,可单选和多选。

默认为单选,如果增加多项选择功能,增加<

selectname="

select"

size="

自定义列数"

multiple="

multiple"

即可

option

列表下拉菜单,和select配合使用,显示供选择的值

textarea

多行文本框,在使用文本框时需要关闭标签之间的文本内容,形成如下格式:

Textarea>

你的文字<

/Textarea>

其中,hidden标签被称为隐藏或隐含的标签,它不会在用户浏览的页面界面上出现,当用户填写资料表单和跨页之间传值时,可以使用该标签传递一些隐含的值。

password密码文本框用于隐藏密码,用户输入的文本将以*显示在文本框中,但是密码并没有加密,只是被*替换显示,这点请注意。

下面介绍表单的属性,它们用于表单中约束表单元素的行为或显示,其含义与约束如表5-2所示。

表5-2

属性名称

name

文本框的名称,PHP根据该名称,在超级全局数组中建立以name为名称的键名

size

文本框的宽度,在select下拉菜单中,表示可以看到的选项行数

value

文本框中的默认值,注意,该值不能应用到type=password密码文本框以及type=file文件文本框中

multiple

此属性用于下拉列表菜单select中,指定该选项用户可以使用Ctrl和Shift键进行多选

rows

多行文本框显示时可以容纳的字符列数宽度

cols

多行文本框显示时可以容纳的字符行数高度

除了以上一些必要的属性元素外,还有一些标准属性,如class,style,id等,可以参阅HTML相关资料。

在一些动态脚本中,需要使用PHP根据不同的请求从数据库生成表单元素,下面我们就来展示几种生成表单按钮或选项的方法。

1.动态生成一组单选按钮。

$options=array("

010"

=>

"

北京"

020"

上海"

024"

沈阳"

0411"

大连"

);

$default="

$html=generate_radio_group("

city_id"

$options,$default);

echo$html;

functiongenerate_radio_group($name,$options,$default="

){

$name=htmlentities($name);

foreach($optionsas$value=>

$label){

$value=htmlentities($value);

$html.="

INPUTTYPE=\"

RADIO\"

if($value==$default){

CHECKED"

}

NAME=\"

$name\"

VALUE=\"

$value\"

$html.=$label."

br>

return($html);

该脚本将生成一列单选按钮组,名称为city_id,默认选项为024-“沈阳”。

2.动态生成多选项下拉列表菜单。

functiongenerate_checkboxes($name,$options,$default=array()){

if(!

is_array($default)){

$default=array();

inputtype=checkbox"

if(in_array($value,$default)){

checked"

name=\"

{$name}[]\"

value=\"

$interests=array("

音乐"

电影"

互联网"

旅游"

$html=generate_checkboxes("

interests"

$options,$interests);

选择您的爱好:

formaction="

interests.php"

method=post>

phpecho$html;

inputtype=submitvalue="

继续"

3.生成多选下拉列表菜单。

$options=array(

'

1'

请选择'

news'

新闻'

events'

事件'

publications'

稿件'

news"

//默认已选择的项

$html=generate_muilti_option("

functiongenerate_muilti_option($name,$options,$default){

//建立一个允许多选的列表单

'

.$name.'

[]"

foreach($optionsas$value=>

$option){

optionvalue="

.htmlspecialchars($value).'

;

if($default==$value){

selected'

.htmlspecialchars($option).'

/option>

/select>

一般动态生成的菜单,多为从数据库取得数据或数据数组,转换成动态HTML菜单,也可以手工创建.

5.5表单的处理方法

5.5.1检查表单提交的来源

有些时候,我们需要对表单提交的来源进行处理,比如只允许某个主机或向脚本本身进行提交,防止有的人伪造相同的表单向我们的程序提交,造成安全问题。

前面我们介绍到,PHP的$_SERVER服务器超级全局数组提供了一个叫$_SERVER['

HTTP_REFERER'

]的变量,用于保存上一页的来源,比如表单提交或者超级链接的URL地址。

如果有人从他的计算机中提交表单或从浏览器地址中直接输入当前脚本名称,该变量会保存表单来源或为空值,这样我们就可以通过它的值进行处理。

下面的例子只允许文件本身提交表单传递值。

例5-2:

formreferer.php–判断表单来源地址

){

$ref=$_SERVER['

$srv="

http:

//{$_SERVER['

SERVER_NAME'

]}$action"

当前来源为:

$ref

服务器地址为:

$srv

--------------------------------------------------------------------------------

if(strcmp($srv,$ref)==0){

匹配"

else{

不允许站外提交"

}else{

请提交表单'

提交"

/>

该例中用到的$_SERVER服务器变量有如下几个:

HTTP_REFERER保存一个完整的来源URL地址。

SERVER_NAME当前的服务器名称。

PHP_SELF当前脚本的完整路径,包括文件名。

我们可以通过“http:

//<

SERVER_NAME>

PHP_SELF>

==<

HTTP_REFERER>

”来比较,如果相同,则是合法的表单提交,否则不予处理。

运行例5-2脚本,单击“提交”按钮后的结果如图5-2所示。

图5-2

5.5.2一个完整表单处理

前面我们已经了解了处理表单的简单方式。

下面我们将创建一个复杂的表单,代码如下所示。

someform.php"

tablewidth="

541"

border="

0"

tr>

tdwidth="

26%"

姓名:

/td>

74%"

username"

raymond"

/tr>

td>

密码:

maxlength="

10"

年龄:

age"

16"

小于16<

16-30"

selected>

16-30<

31-50"

31-50<

51-80"

51-80<

tdvalign="

top"

自我介绍:

textareaname="

intro"

rows="

3"

cols="

50"

请输入您的自我介绍<

/textarea>

br/>

体育爱好:

fave_sport"

tennis"

checked>

网球

football"

足球

baseball"

篮球

polo"

保龄球<

开发语言:

inputname="

from"

type="

注册表单"

languages[]"

php"

checkedid="

java"

java

perl"

perl

cpp"

c++

.net"

.NET

delphi"

delphi<

开发工具:

develop_ide[]"

5"

multipleid="

ZDE"

ZendStudio<

Eclipse"

Eclipse<

Editplus"

Editplus<

Ultraedit"

Ultraedit<

Other"

Other<

&

nbsp;

btn_submit"

/table>

该表单包括了常用表单元素:

单行文本框、多行文本框、单选项(radio)、多选项(checkbox),以及多选菜单。

下面进行详细的说明。

maxlength是与密码文本框关联的属性,它限制用户输入密码的最大长度为10个字符。

age列表框是列表菜单,它的命名属性下都有自己的值供选择。

selected是一个特定的属性选择元素,如果某个option附加有该属性,在显示时就把该项列为第一项显示。

intro文本框中的内容,按照rows和cols显示文字、行和列宽。

fave_sport是一组单选按钮(radio),我们要按组命名元素名称,比如这一组单选按钮都叫做fave_sport,用户只可选择一个,发送脚本端也只存在一个值。

和单选项一样,所有多选项成员也须有同名的属性,而属性名称需要添加括号[],这样就把多选项的值以数组形式发送给PHP,languages就是这种形式。

checked标签是指单选项和多选项中的某个值,默认已经被选择。

上面表单的显示画面如图5-3所示。

图5-3

因为上面HTML中的form表单使用的是POST方法传递数据,所以用户提交的数据会保存到$_POST或$_REQUEST的超级全局数组中,我们根据$_POST数组中的值就可以处理提交的数据。

将上面表单中数据提交到someform.php脚本,该脚本的处理逻辑如下:

//通过判断按钮的变量名是

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2