仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 598|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计PHP中的表单使用释疑

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:08:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
现在,也有了从事软件工程的想法,在经过了一个月的PHP培训学习之后,发现其实软件工程并没有想像中的那么难。   综述:表单作为用户提交信息的一个关头路子,一向是PHP编程中的一个最根基的方面,也是入门者会碰到的一个大的重点与难点。咱们选择有关处置联系关系数、取得同名checkbox的拔取值、上传文件方面对照轻易令众猜疑的中央停止归

若何利用表单传递联系关系数组?

经由过程表单传递的联系关系数组能被 each()函数读取,法式以下:

//test1.php
<form action="test2.php" method=post>
<input type=hidden name="var[Address]" value="Beijing">
<input type=hidden name="var['age']" value="20">
<input type=submit value=submit>
这个名为var[Address]值为"Beijing"的元素递交到test2.php后,就成了一个联系关系数组,var["Address"]="Beijing":
//test2.php
<?
echo $var["Address"];
?>
输入了局为:Beijing

若何处置同名checkbox?

详细代码:

test1.php:
<FORM METHOD=POST ACTION="test2.php">
苹果<INPUT TYPE="checkbox" NAME="come[]" VALUE="苹果"><BR>
鸭梨<INPUT TYPE="checkbox" NAME="come[]" VALUE="鸭梨"><BR>
喷鼻蕉<INPUT TYPE="checkbox" NAME="come[]" VALUE="喷鼻蕉"><BR>
西瓜<INPUT TYPE="checkbox" NAME="come[]" VALUE="西瓜"><BR>
<INPUT TYPE="submit" VALUE="提交">
</FORM>

test2.php:
你的选择:<BR>
<?
for ($i=0;$i<sizeof($come);$i++) echo $come[$i],"<BR>";
?> 如许从test1.php提交过去的一切名为come[]的元素就构成了一个数组,如许咱们就能够很轻易地处置了.

如何才干观察提交的一切信息?

普通来讲,PHP引擎将每个表单域放到一个叫做$HTTP_POST_VARS的数组中,所以咱们可以经由过程读取这个数组就能够观察提交的一切信息:

<?
echo "POST 所送出的值为:<BR>";
while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) {
 echo "$key => $val<BR>";
}
?>
若何同时上传多个文件?

咱们来看一个例子。

上面是上传文件的提交页面,使用该页面你不但可以生成 1000 个上传文件框(也能够是恣意多个 0~n ),并且可分离指出它们的保留途径。

提交页面的文件输出框为定名为: file0,file1,...file100,...fileN
提交页面的文件途径框为定名为: path0,path1,...path100,...pathN
因为页面的生成十分复杂,所以就不在此多注释了,用 javascript 界说了两个函数,check() 用于提交页面,create()用于生成文件上传框。
phpfileup.htm
--------------------------------------------------------
【文件php9.txt】
--------------------------------------------------------
文件提交页面既已生成,上面义务就很明白了:将提交的文件内容保留到办事器上。

咱们先界说一个文件保留函数 fup() 它有两个参数:
$filename: 文件内容
$fname: 文件名(包括途径)
剩下的就是写一个轮回将文件顺次写入办事器。

PHP 关于上传文件的处置是如许的:假如提交的文件框名为 file0, 那末提交给 PHP 的文件内容保留在变量 $file0 中,而文件名则保留在 $file0_name 中。如许在这个轮回中咱们要做的就是将提交页面提交的内容分化出来,完成进程请看上面的代码。

fileup.php
<<?
function fup($Local_file_name,$Remote_file_name) {
If($Local_file_name != "none") {
copy($Local_file_name,$Remote_file_name);
unlink($Local_file_name);
}
}

for($i=0;$i<$cnt;$i++) {
$ffnn="file".$i;
$ffnnname=$ffnn."_name";
$ffpath="path".$i;

//print $$ffnn;
print $$ffnnname;
print "<BR>";

fup($$ffnn,$$ffpath.$$ffnnname); //"../www/test/tmp/"
}
?> 若何对页面停止抓取和剖析?   起首,必需决意咱们将抓取的URL地址。可以经由过程在剧本中设定或经由过程$QUERY_STRING传递。为了复杂起见,让咱们将变量直接设在剧本中。
<?
$url = 'http://www.domain.com';
?>  
  第二步,咱们抓取指定文件,而且经由过程file()函数将它存在一个数组里。
<?
$url = 'http://www.domain.com';
$lines_array = file($url);
?>  
  好了,如今数组里已有了文件了。然而,咱们想剖析的文本能够不全在一行外面。为懂得决这个文件,咱们可以复杂地将数组$lines_array转化成一个字符串。咱们可使用implode(x,y)函数来完成它。假如在前面你想用explode(将字符串变量数组),将x设成"|"或"!"或其它相似的分隔符能够会更好。然而出于咱们的目标,最好将x设成空格。y是另外一个需要的参数,由于它是你想用implode()处置的数组。
<?
$url = 'http://www.domain.com';
$lines_array = file($url);
$lines_string = implode('', $lines_array);
?>  
  如今,抓取任务就做完了,上面该停止剖析了。在这个例子中,咱们想失掉在<head>到</head>之间的一切器材。为了剖析出字符串,咱们还需求正轨表达式。
<?
$url = 'http://www.domain.com';
$lines_array = file($url);
$lines_string = implode('', $lines_array);
eregi("<head>(.*)</head>", $lines_string, $head);
?>  
  在下面的代码中,eregi()函数按上面的格局履行:
eregi("<head>(.*)</head>", $lines_string, $head);
  "(.*)"暗示一切器材,代表在<head>和</head>间的一切器材。
$lines_string是咱们正在剖析的字符串,$head是剖析后的了局寄存的数组。
  最初,咱们可以输入数据。由于仅在<head>和</head>间存在一个实例,咱们可以平安的假定数组中仅存在着一个元素,并且就是咱们想要的。
<?
$url = 'http://www.domain.com';
$lines_array = file($url);
$lines_string = implode('', $lines_array);
eregi("<head>(.*)</head>", $lines_string, $head);
echo $head[0];
?>  

如果不会怎么办,我的视频教程里有个最简单的留言板 最开始离不开模仿,
山那边是海 该用户已被删除
沙发
发表于 2015-2-4 09:15:01 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
活着的死人 该用户已被删除
板凳
发表于 2015-2-7 00:34:12 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
只想知道 该用户已被删除
地板
发表于 2015-3-4 10:03:14 | 只看该作者
实践是检验自己会不会的真理。
精灵巫婆 该用户已被删除
5#
发表于 2015-3-6 12:35:57 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-3-13 01:02:36 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-17 09:10:50 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
柔情似水 该用户已被删除
8#
发表于 2015-3-22 22:10:44 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
9#
发表于 2015-4-6 01:11:08 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
透明 该用户已被删除
10#
发表于 2015-4-8 14:21:13 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
金色的骷髅 该用户已被删除
11#
发表于 2015-4-9 09:46:05 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
兰色精灵 该用户已被删除
12#
发表于 2015-4-12 20:51:20 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
冷月葬花魂 该用户已被删除
13#
发表于 2015-4-13 03:13:38 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
admin 该用户已被删除
14#
发表于 2015-4-13 22:59:39 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
小魔女 该用户已被删除
15#
发表于 2015-4-16 01:08:52 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
若天明 该用户已被删除
16#
发表于 2015-4-26 09:10:27 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
飘灵儿 该用户已被删除
17#
发表于 2015-5-1 10:10:30 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
不帅 该用户已被删除
18#
发表于 2015-5-7 16:00:38 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
深爱那片海 该用户已被删除
19#
发表于 2015-6-6 03:09:16 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
爱飞 该用户已被删除
20#
发表于 2015-6-8 11:14:15 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 13:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表