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

■ 实例学习 PHP 之表单处理篇 (转)[@more@]

标题: ■ 实例学习 PHP 之表单处理篇
   学习前的准备:

   要想学习PHP,当然少不了要安装PHP啦,所以如果你是初次学习,请先阅读网络学院的文章:

  

   .NET/school/php4Linux.htm">PHP4.03在linux下的安装

   win98.htm">PHP4.04在win98下的安装

   win2000.htm">PHP4.04在英文win2000下的安装

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

   PHP4.04Beta win32 安装程序

   PHP4.03源程序

   PHP3.0.16 WIN32 安装程序

   PHP3.0.16源程序

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

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

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

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

  

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

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

   单项选择:

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

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

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

   多项选择:

   < 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">

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

   < /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,我们的表单使用就简单的讲到这里吧,下面开始我们进入正题 ----- PHP处理表单

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

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

   (编者注:由于数据库的兼容问题,在上文的源代码中的“$”符和上引号请在实际应用中改为半角字符的相应符号。若有不便之处,敬请原谅。)

调查表;/title></P> <P><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></P> <P></head></P> <P><body bgcolor="#FFFFFF"></P> <P><?php</P> <P>function display_form() {</P> <P>global $PHP_SELF;</P> <P>?></P> <P><FORM action="<?php echo $PHP_SELF;?>" METHOD=post></P> <P>名字:<NPUT TYPE=TEXT NAME="name"><BR></P> <P>   单项选择: </P> <P><INPUT TYPE=RADIO NAME="first" VALUE="我很笨">我很笨</P> <P><INPUT TYPE=RADIO NAME="first" VALUE="我非常笨">我非常笨</P> <P><INPUT TYPE=RADIO NAME="first" VALUE="我简直就是个傻冒"> 我简直就是个傻冒 ; br></P> <P>   多项选择: </P> <P><INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢打蓝球">我喜欢打蓝球</P> <P><INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢游泳">我喜欢游泳</P> <P><INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢跳舞">我喜欢跳舞</P> <P><INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜欢爬山">我喜欢爬山<BR><BR><INPUT TYPE=HIDDEN NAME="stage" VALUE= "results">;p></P> <P><INPUT TYPE=SUBMIT VALUE= "谢谢">;/p></P> <P></FORM></P> <P><?php</P> <P>}</P> <P>?></P> <P>//程序开始</P> <P><?php</P> <P>function process_form()</P> <P>{</P> <P>global $name ;</P> <P>global $first;</P> <P>global $second; </P> <P><BR>if ($first == '我很笨') { $first_message = '你不笨。'; }</P> <P>elseif ($first == '我非常笨') { $first_message = '你很聪明。'; }</P> <P>else { $first_message = '你简直就象是一个聪明的人了。'; } </P> <P>$favorite_second = count($second); </P> <P>if ($favorite_second ;= 1) </P> <P>{$second_message = '但你很快就会在动物园里死去,忏悔吧!';} </P> <P>elseif ($favorite_second > 1 && $favorite_second ; 4) </P> <P>{$second_message = '你是只爱运动的的猩猩。';} </P> <P>else {$second_message = '你运动的太多了,对猩猩来讲已经过量,你准备棺材吧,:(';} </P> <P>echo "这是一项针对猩猩的测试:;br>;br>"; </P> <P>echo "你好! 你的名字叫:$name. ;br>;br>";</P> <P>echo "你的测验结果是。。。。。$first_message $second_message"; </P> <P>} </P> <P>?> </P> <P><?php </P> <P>if (empty($stage)) { display_form(); }</P> <P>else { process_form(); }</P> <P>?> </P> <P></body> </P> <P></html> </P><BR></SPAN> </div> </div> <!-- m3 END --> <div class="page"> <ul class="clearfix m01"> <li> <a href="/10752019/viewspace-985672/">在VBScript中使用类(四) (转)</a> </li> <li> <a href="/10752019/viewspace-985674/">Java集合框架 (一) (转)</a> </li> </ul> </div> </div> <footer> <a href="http://www.itpub.net">ITPUB论坛</a> | <a href="http://blog.chinaunix.net/">chinaunix博客</a> | <a href="http://bbs.chinaunix.net/">chinaunix论坛</a><br> 北京皓辰网域网络信息技术有限公司. 版权所有 </footer> <script> $(function(){ $("#fenlei").click(function(){ $("#left_1").show(); $("#left_2").show(); }); }) </script> </body> </html> <script language="javascript" src="http://stat.it168.com/pv.js"></script> <script> function sendPV(){ var pvTrack = new PvTrack(); pvTrack.type = 35; // 频道类别ID pvTrack.channel = 532; // 频道ID pvTrack.pageType = 0; pvTrack.track(); } window.setTimeout("sendPV()", 1000); </script> <div class="share_box"> <div class="share"> <div class="share_tit">分享到</div> <div class="share_close"></div> <ul class="share_list"> <a href="http://service.weibo.com/share/share.php?url=http://m.blog.itpub.net/10752019/viewspace-985673/&appkey=&title=■ 实例学习 PHP 之表单处理篇 (转)&language=zh_cn"><li><span class="weibo">新浪微博</span></li></a> <a href="http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=http://m.blog.itpub.net/10752019/viewspace-985673/&title=■ 实例学习 PHP 之表单处理篇 (转)&desc=■ 实例学习 PHP 之表单处理篇 (转)[@more@]标题: ■ 实例学习 PHP 之表单处理篇   学习前的准备:    要想学习PHP,当然少不了要安装PHP啦,所以如果你是初次学习,请先阅读网络学院的文章:       .NET/school/php4Linux.htm">PHP4.03在linux下的安装    win98.htm">PHP4.04在win98下的安装    win2000.htm">PHP4.04在英文win2000下的安装    如果你找不到安装程序请到下面下载:    PHP4.04Beta win32 安装程序    PHP4.03源程序    PHP3.0.16 WIN32 安装程序    PHP3.0.16源程序&summary=&site=&pics="><li><span class="qq"> QQ空间</span></li></a> </ul> <div class="weixin2"> <em></em> <i>请使用浏览器的分享功能分享到微信等</i></div> </div> </div> <script> $(".fenxiang").click(function(){ $(".share_box").show(); }); $(".share_close").click(function(){ $(".share_box").hide(); }); $(".backTop").click(function(){ $('html,body').animate({ scrollTop: 0 }, 300) }) $('.content p br').parents('p').each(function (k,v) { if ($(v).html() == '') { $(v).css('display','none') } }) </script> <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script> var videoContainer = {}; $(document).delegate('.fake-video-btn', 'click', function () { var width = $(this).parent('.video-container').width(); var height = $(this).parent('.video-container').height(); var $this = $(this); var videoid = $(this).data('videoid'); var aliplayerid = $this.closest('.video-container').attr('id'); $.ajax({ url: 'http://blog.itpub.net/getvidoeinfo?videoid=' + videoid , type: 'get' , success: function (ret) { if (ret.code == 200) { videoContainer[videoid] = new Aliplayer({ id:aliplayerid, autoplay:true, width:width + 'px', height:height + 'px', format: "", vid:videoid, playauth:ret.data.PlayAuth, cover:ret.data.VideoMeta.CoverURL, skinLayout:[ //按钮UI {name:"bigPlayButton","align":"cc","x":15,"y":12},//播放 {name: "H5Loading", align: "cc"}, {name: "errorDisplay", align: "tlabs", x: 0, y: 0}, {name: "infoDisplay"}, {name:"tooltip", align:"blabs",x: 0, y: 56}, {name: "thumbnail"}, { name: "controlBar", align: "blabs", x: 0, y: 0, children: [ {name: "progress", align: "blabs", x: 0, y: 44}, {name: "playButton", align: "tl", x: 15, y: 12}, {name: "timeDisplay", align: "tl", x: 10, y: 7}, {name: "fullScreenButton", align: "tr", x: 10, y: 12}, {name:"subtitle", align:"tr",x:15, y:12}, {name:"setting", align:"tr",x:15, y:12}, {name: "volume", align: "tr", x: 5, y: 10} ] } ] },function(player){ $this.siblings('img').remove(); $this.remove(); player.on('play',function(e) { for (var key in videoContainer) { if (videoid != key) { videoContainer[key].pause(); } } }); }); } else { alert(ret.msg); } } }) }); wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx4d058320abe98d01', // 必填,公众号的唯一标识 timestamp: 1782364385, // 必填,生成签名的时间戳 nonceStr: '4iVNos3oYPqL25ye', // 必填,生成签名的随机串 signature: 'e5b31db1a4ccfb59f67064233c11094c7bfab828',// 必填,签名,见附录1 jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage' ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 var title = '■ 实例学习 PHP 之表单处理篇 (转)'; var desc = ""; var link = 'http://m.blog.itpub.net/10752019/viewspace-985673/'; var imgUrl = $(".main img:first").attr('src'); if(!imgUrl){ imgUrl = 'http://m.blog.itpub.net/static/images/share.png?v1'; } console.log(imgUrl); wx.onMenuShareAppMessage({ //分享给朋友 title: title, // 分享标题,可在控制器端传递 desc: desc,//分享的描述,可在控制器端传递 link: link, // 分享链接,可在控制器端传递 imgUrl: imgUrl, // 分享图标 ,可在控制器端传递 success: function() {}, cancel: function() {} }); wx.onMenuShareTimeline({ //分享到朋友圈 title: title, // 分享标题,可在控制器端传递 desc: desc,//分享的描述,可在控制器端传递 link: link, // 分享链接,可在控制器端传递 imgUrl: imgUrl, // 分享图标 ,可在控制器端传递 success: function() {}, cancel: function() {} }); }); </script> </body> </html>