实例学习PHP之表单处理篇

学习前的准备: 要想学习PHP,当然少不了要安装PHP啦,所以如果你是初次学习,请先阅读星空浪子兄及地藏的:

PHP4.03在linux下的安装
PHP4.04在win98下的安装
PHP4.04在英文win2000下的安装

如果你找不到安装程序请到下面下载:

PHP4.04Beta WIN32 安装程序
PHP4.03源程序
PHP3.0.16 WIN32 安装程序
PHP3.0.16源程序

如果你从来没有接触过PHP,那么还是先看看这个吧,当然即使你是已经对PHP有所了解,但一本PHP4的的使用手册也还是需要的,:)。此外一本HTML语法手册当然也是不可缺少的啦。。。。。。。。。。

OK!现在应该已经没有什么可以阻止我们学习了,Let's go!

在学习开始以前,我们先交待一下关于表单的基础知识,如果你对HTML非常熟悉,那么可以跳过该部分,直接学习。

故名思议表单是利用网页收集数据的工具,比如你想在网上搞个群众调查啊什么的,肯定是少不了要用他的。下面我简单介绍一下表单的基础知识,关于他的详细内容请自行查阅HTML手册。

表单的使用其实非常简单,大家先看一下下面的例子:

<FORM action="<?php echo $PHP_SELF; ?>"METHOD=post>

名字: <INPUT TYPE=TEXT NAME="name"><BR>

单项选择:

<INPUT TYPE=RADIO NAME="first" VALUE="我很笨">我很笨

<INPUT TYPE=RADIO NAME="first" VALUE="我非常笨">我非常笨

<INPUT TYPE=RADIO NAME="first" VALUE="我简直就是个傻冒"> 我简直就是个傻冒 <br>

多项选择:

<INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢打蓝球">我喜欢打蓝球

<INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢游泳">我喜欢游泳

<INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢跳舞">我喜欢跳舞

<INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢爬山">我喜欢爬山

<INPUT TYPE=HIDDEN NAME="stage" VALUE= "results"><p>

<INPUT TYPE=SUBMIT VALUE= "谢谢"></p>

</FORM>

名字:
单项选择: 我很笨 我非常笨 我简直就是个傻冒
多项选择: 我喜欢打蓝球 我喜欢游泳 我喜欢跳舞 我喜欢爬山

怎么样?看明白了吗?上部分是表单的html源代码,下部分则是这个表单在浏览器的表现形式。 标志<FORM action="<?php echo $PHP_SELF; ?>"METHOD=post> 表示开始一个表单,到标志</Form>时表单结束。处理这个表单的程序,用Form标志里的action属性指出。在这里为<? echo $PHP_SELF; ?>, 其中$PHP_SELF是PHP中的一个global 变量,用于保存目前执行 PHP 程式页面的档名,<? echo $PHP_SELF; ?>的意思就是用当前的PHP程序来处理这个表单。那么下面的METHOD=post表示什么意思呢?其实表单从浏览器发给服务器有两种方法. GET 和 POST. GET方法将数据打包放置在环境变量QUERY_STRING中作为URL整体的一部分传递给服务器。 POST做很多类似GET同样的事情, 不同的地方就是它是分离地传递数据给脚本. 你的脚本通过标准输入获取这些数据. QUERY_STRING环境变量将不再设置.因此POST有更好的安全性,尤其如果你的表单中有很多数据的话. 当你用GET, 这个服务器就分配变量QUERY_STRING给所有的表单数据, 但是这个变量可存储量是有限的. 换句话说,如果你有很多数据但是你又用GET,你会丢失很多数据。 如果你用POST, 你可以尽可能多地使用数据, 因为这些数据从来也不分配到一个变量里。此外用post传递数据还有一个好处,它不会象get那样把你传送的数据暴露在浏览器的地址栏中,比如象下面这种:form.php?name=genius&pwd=123456 ,明白了吧?所以还是用post让人安心一点啦。

下面继续我们的学习吧,在建立表单的过程中,你一般只会用到两个标志,一个是前面说的<Form>标志,还有就是 <Input>标志,不要小看它哟,表单里的各种小控件都是由它来建立的。借助于Input标志的Type属性可以定义输入方法类型,有效值为TEXT,PASSWORD,RADIO,CHECKBOX,SUBMIT,RESET,IMAGE,FILE,HIDDEN和BUTTON。 下面是对这几个输入类型的简要说明:

TEXT 产生简单的单行文本输入字段,为了取得多行文本,用<TEXTAREA>标志
PASSWORD 和TEXT一样产生简单的单行文本输入字段,但不会在屏幕上显示输入内容
RADIO 产生可开闭的小单选按钮,多项选择可用CHECKBOX型或者<SELECT>标志
SUBMIT 产生用于将所有名称数值对提交给表单处理程序的按钮
RESET 用于将所有输入方法复位为空值或缺省值
IMAGE 将提交按钮变成图形,这个数值与提交按钮一致,只是选择图形时鼠标位置x、y坐标也发送给表单处理程序
BUTTON 产生不与脚本进行特定交互功能的按钮

现在我们已经知道如何生成输入小控件了,那么在这些控件里输入的数据怎么传递给我们的程序来处理呢?在d 在INPUT标志中有一个NAME属性专门用于给输入的数值取名,例如: NAME="first"。在定义以后,如果想程序访问这个数据,用global申明一下就可以使用喽。如果想定义数据默认值的话,可以用Value属性定义,例如上面程序的 VALUE="我很笨" 就是定义了一个默认值,下面我们来看一个单项选择的实例:

<INPUT TYPE=RADIO NAME="first" VALUE="我很笨">我很笨

<INPUT TYPE=RADIO NAME="first" VALUE="我非常笨">我非常笨

<INPUT TYPE=RADIO NAME="first" VALUE="我简直就是个傻冒"> 我简直就是个傻冒

从上面大家可以看出NAME,VALUE的基本用法了吗?什么?还不明白。。。。。。。。。(地藏晕倒在地。。。。)

OK,我们的表单使用就简单的讲到这里吧,如果有批评意见,或者好的想法请一定mail to 地藏,下面开始我们进入正题 ----- PHP处理表单(我靠,前面全是废话呀,给我扁。。。。。)

用PHP来处理表单数据实在是一件非常简单的事情,打个比方就好象你吃饭时用筷子一样,使用非常的自然,没有什么需要特别注意的地方。老样子,大家开始学习以前先看看下面的代码吧。 <html>
<head>

<title>调查表</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body bgcolor="#FFFFFF">

<?php

function display_form() {

global $PHP_SELF;

?>

<FORM action="<?php echo $PHP_SELF; ?>"METHOD=post>

名字: <INPUT TYPE=TEXT NAME="name"><BR>

单项选择:

<INPUT TYPE=RADIO NAME="first" VALUE="我很笨">我很笨

<INPUT TYPE=RADIO NAME="first" VALUE="我非常笨">我非常笨

<INPUT TYPE=RADIO NAME="first" VALUE="我简直就是个傻冒"> 我简直就是个傻冒 <br>

多项选择:

<INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢打蓝球">我喜欢打蓝球

<INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢游泳">我喜欢游泳

<INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢跳舞">我喜欢跳舞

<INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢爬山">我喜欢爬山

<INPUT TYPE=HIDDEN NAME="stage" VALUE= "results"><p>

<INPUT TYPE=SUBMIT VALUE= "谢谢"></p>

</FORM>

<?php

}

?>

//程序开始

<?php

function process_form()

{

global $name ;

global $first;

global $second;

if ($first == '我很笨') { $first_message = '你不笨。'; }

elseif ($first == '我非常笨') { $first_message = '你很聪明。'; }

else { $first_message = '你简直就象是一个聪明的人了。'; }

$favorite_second = count($second);

if ($favorite_second <= 1)

{$second_message = '但你很快就会在动物园里死去,忏悔吧!';}

elseif ($favorite_second > 1 && $favorite_second < 4)

{$second_message = '你是只爱运动的的猩猩。';}

else {$second_message = '你运动的太多了,对猩猩来讲已经过量,你准备棺材吧,:(';}

echo "这是一项针对猩猩的测试:<br><br>";

echo "你好! 你的名字叫:$name. <br><br>";

echo "你的测验结果是。。。。。$first_message $second_message";

}

?>

<?php

if (empty($stage)) { display_form(); }

else { process_form(); }

?>

</body>

</html>

上面是一个非常类似调查表的PHP例子,由于程序比较简单,所以没有做什么注解。程序的原型来自PHP实验室。大家在仔细看程序之前可以把这段代码拷下来在自己机器运行一下先看看实际效果,这样有一个直观的印象。

时间: 2024-12-02 22:54:17

实例学习PHP之表单处理篇的相关文章

实例学习 PHP 之表单处理篇(一)

  学习前的准备:               PHP4.03在linux下的安装       PHP4.04在win98下的安装       PHP4.04在英文win2000下的安装       如果你找不到安装程序请到下面下载:       PHP4.04Beta WIN32 安装程序          PHP4.03源程序          PHP3.0.16 WIN32 安装程序          PHP3.0.16源程序       OK!现在应该已经没有什么可以阻止我们学习了,Le

Volley解析之表单提交篇

要实现表单的提交,就要知道表单提交的数据格式是怎么样,这里我从某知名网站抓了一条数据,先来分析别人提交表单的数据格式.  数据包: Connection: keep-alive Content-Length: 123 X-Requested-With: ShockwaveFlash/16.0.0.296 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.

表单测试用例归纳与总结

新入职公司,感觉测试部各位同事抒写的用例都不太标准.也许是出来久的缘故,很少去总结用例之间的关系.比如边界值分析法.等价类分析法.因果图分析法等等,这些本该对我们测试用例做指导工作的 方法.在实际测试中往往没有那么多时间进行归纳与分析.由此,本人借51这个黄金时间对之前在公司实习一个星期后,对表单测试用例.上传组建测试用例等在 Web系统测试中比较集中的用例进行了深入的分析和总结,由此拿出分析结果与各位分享一下.如有什么错误或不足之处希望各位能回复指出,非常感谢您的参 与! 使用FreeMind

ASP.NET MVC案例教程(基于ASP.NET MVC beta)—第四篇:传递表单数据

前言 通过前几篇文章,我们已经能比较自如的使用ASP.NET MVC来呈现页面和数据了.但是,有一个大问题没有解决:如何处理表单 数据.例如,我们将要实现的公告发布功能,用户肯定是在某个表单页面输入标题.正文等内容,而后提交,然后表单数据要被传递到相应的 地方交由业务逻辑组件处理. 在传统的ASP.NET下,使用的是Model1模式,每个aspx页面有一个同名的aspx.cs文件,当提交表单时,默 认数据被提交到这个同名aspx.cs文件中某个方法下处理.但是,在ASP.NET MVC中,这种方

Validform表单验证总结篇_javascript技巧

近期项目里用到了表单的验证,选择了Validform_v5.3.2. 先来了解一下一些基本的参数: 通用表单验证方法: Demo: $(".demoform").Validform({//$(".demoform")指明是哪一表单需要验证,名称需加在form表单上; btnSubmit:"#btn_sub", //#btn_sub是该表单下要绑定点击提交表单事件的按钮;如果form内含有submit按钮该参数可省略; btnReset:"

利用JS提交表单的几种方法和验证(必看篇)_javascript技巧

工作中发现表单提交方便的问题,很多时候IE下提交好好的,打了火狐下就出现了问题,利用提交按钮就不成功了,于是利用JS的方式就成功了,也不知道为什么.在导师的催促下就总结出以下的几种常用表单提交的方法. 第一种方式:表单提交,在form标签中增加onsubmit事件来判断表单提交是否成功 <script type="text/javascript"> function validate(obj) { if (confirm("提交表单?")) { aler

第七篇Bootstrap表单布局实例代码详解(三种表单布局)_javascript技巧

Bootstrap提供了三种表单布局:垂直表单,内联表单和水平表单.下面逐一给大家介绍,有兴趣的朋友一起学习吧. 创建垂直或基本表单: •·向父 <form> 元素添加 role="form". •·把标签和控件放在一个带有 class .form-group 的 <div> 中.这是获取最佳间距所必需的. •·向所有的文本元素 <input>.<textarea> 和 <select> 添加 class .form-cont

AngularJS表单验证中级篇(3)_AngularJS

目录 基本验证 验证插件messages 自定义验证  基本验证 <form name="form" novalidate ng-app> <span>{{form.$invalid}}</span> <span>{{form.$valid}}</span> <span>{{form.$dirty}}</span> <span>{{form.$pristine}}</span>

jquery中dom操作和事件的实例学习-表单验证_jquery

很显然,这样做能提升更好的用户体验. html代码: 复制代码 代码如下: <form method="post" action=""> <div class="int"> <label for="username">用户名:</label> <input type="text" id="username" class="r