仓酷云

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

[学习教程] PHP网站制作之实例剖析进修静态网页制造手艺PHP开辟投...

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

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

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

x
第1步环境配置好了,你算了进了1小步了,那么第2步呢 就是调出第1个程序 一般都是用hello world,视频教程里面我都做了,hello world   假如你历来没有接触过PHP,那末仍是先看看这个吧,固然即便是你已对PHP有所懂得,但一本PHP4的的利用手册也仍是需求的,:)。另外一本HTML语法手册固然也是不成短少的啦。
咱们来入手下手做一个可以使用的PHP的投票法式。在这篇里人人将进修到cookie手艺的利用,PHP的数组操作及档案的处置。若何?人人筹办好了吗?Let"s go!
在入手下手详细的法式设计之前,咱们先进修一下几个上面需求用到的主要概念和函数:
起首是cookie,咱们需求用他来避免统一台机械停止反复投票。
那末甚么是cookie?假如你的英文够好,又想吃块原味的cookie,那末先到这里来试试鲜;要否则你就只要吃地藏给你热的啦。。。。。(欠好吃别扁我哟,:))
cookie原义在美语中是小甜饼的意思,固然咱们如今不是要吃饼,在这cookie指的是一个有很多限制的ASCII文件。它是由办事器发给用户用于纪录着用户在阅读过程当中的一些信息。Cookies的文件巨细被限制在4K之内。 cookie的用处长短常多的,好比你到过的一些网站有纪录你来过次数,那就多半是用了cookie。 在这里咱们用他来纪录会见者是不是已投过票。
在PHP里咱们可以十分便利的用setcookie函数来利用cookie,cookie实践上是HTTP协定中header的一局部。因而setcookie函数必需在没有任何其它信息输入到阅读器之前挪用。说复杂点就是要在<html>标记前用这个函数啦……。上面是setcookie的用法示例,来自星空荡子年老的PHP4中文手册,人人等下还可以再参照一下咱们在法式中的详细用法。
setcookie
送出 Cookie 新闻到阅读器。
语法: int setcookie(string name, string value, int expire, string path, string domain, int secure);
传回值: 整数
函式品种: 网路体系
内容申明
本函式会随着标头 Header 送出一段小新闻字串到阅读器。利用本函式要在送出 HTML 材料前,实践上 cookie 也算标头的一部分。本函式的参数除第一个 name 以外,都是可以省略的。参数 name 暗示 cookie 的称号;value 暗示这个 cookie 的值,这个参数为空字串则暗示作废阅读器中该 cookie 的材料;expire 暗示该 cookie 的无效工夫;path 为该 cookie 的相干途径;domain 暗示 cookie 的网站;secure 则需在 https 的平安传输时才无效。
expire工夫的格局以下:
Wdy, DD-Mon-YYYY HH:MM:SS GMT
GMT暗示格林尼治本准工夫
利用典范
<?php  
$status = 0;  
if (isset($myTstCky) && ($myTstCky == "ChocChip")) $status = 1;  
if (!isset($CCHK)) {  
setcookie("myTstCky", "ChocChip");  
header("Location: $PHP_SELF?CCHK=1");  
exit;  
}  
?>
<html>
<head><title>Cookie Check</title></head>
<body bgcolor="#FFFFFF" text="#000000">
Cookie Check Status:
<?php   
printf ("<font color="#%s">%s</font><br>;",   
$status ? "00FF00" : "FF0000",   
$status ? "PASSED!" : "FAILED!");   
?>
</body>
</html>
怎样?人人对cookie的用法是否是有所懂得呢?地藏在这里告知人人一个关于expire日期的小技能,假如你想让cookie的expire日期为从以后算起的第三天。那末你可使用time()函数,这个函数将前往一个以秒为单元确当前工夫(注重哟!这个工夫是包含了年代日的,是否是很奇异?:)),那末假如你想把expire日期定为第三天,那末就是 time()+60*60*24*3。
PHP的数组利用十分复杂,人人只需注重它默许的肇端下标是象C言语一样从零入手下手的,固然你也能够本人设定它的下标,以下面如许:
$descArray=array(
1=>"英文:源代码、法式下载",
2=>"英文:php静态",
3=>"英文:旧事组、通知布告栏",
4=>"英文:教授教养类",
5=>"中文:源代码、法式下载",
6=>"中文:旧事组、通知布告栏",
7=>"中文:教授教养类" );
利用的时分 $descArray[1]= "英文:源代码、法式下载"。更绝的是你还可以。
$MyArray2 = array( "
地支" => array("子", "丑", "寅", "卯"),
"生肖" => array("鼠", "牛", "虎", "兔"),
"数字" => array(1, 2, 3, 4) );
用的时分$MyArray2["地支"][0]="子"; 怎样?是否是很有情面味啊,:)
最初咱们来看看PHP的档案处置,PHP顶用于档案处置的函数有也许几十个,在咱们这一节里,利用了个中的五个函数fopen(); fclose(); flock();fexists();fwrite(); 个中我想重点说一下flock();其它的人人就去本人查手册吧。
为何要重点说flock()?由于这是一个关于收集编程十分主要的功效,我举个例子,两团体同时投票,并且选的都是选项A,假定他们同时翻开数据文件,这时候A的选票是2,然后两个历程都在原本的基本上加1,接着一个写入了数据,别的一个也随着写完了写入,人人想这时候会呈现甚么情形?A的选票是几何?准确了局应当是4,但实践上却会是3。为何会如许?这就是由于收集的多人情况的特色啦,所以咱们在投票前必定要先用flock()函数把文件锁住,投完后再翻开文件让其它的历程停止操作,如许才干避免呈现下面的那类毛病。上面是flock函数的用法申明。
flock 锁住档案。
语法: boolean flock(int fp, int operation);
传回值: 布林值
函式品种: 档案存取
内容申明 本函式用来锁住档案,使其余行程没法存取。传入的参数 fp 为档案的目标。参数 operation 的值为以下的数字之一:
1 、暗示设定锁住档案可以答应其余行程读取;
2 、暗示只要该行程可以写入档案;
3 、暗示读写均锁住;
4 、不锁住区块 (block)。
而本函式不管在 UNIX 或是 Windows 系列中的锁住后果都邻近。履行胜利则传回 true 值,不然传回 false 值。
好了,基本的器材已学完,让咱们来停止实战吧!人人先下这个典范法式。然后可以在本人的平台上先碰运气。信任如许会失掉一点理性熟悉。
在这个使用中一共利用了三个文件vote.php,config.php,http://www.webjx.com/htmldata/2007-06-09/1.gif和一个保留数据的文件(该文件的名字可以自在设定,在这里咱们设为sum.txt),个中vote.php是主法式文件,config.php则用于设置一些常常需求修正的信息。
//config.php文件
<?   
//title变量设定本html档中的title标志,也就是在阅读器题目栏里呈现的题目   
$title=读者类型查询拜访表;   
//设定查询拜访内容。这里用了一个数组,注重用""号把内容括起来   
$option= array("先生","工人","农人","常识份子","本钱家","地痞");   
//设定查询拜访了局保留到哪一个文件中去   
$countfile = "sum.txt";   
//设定统一机械可以再次投票的工夫   
$limitdate = time()+60*60*24*365;   
?>
// vote.php文件
/*起首将设置装备摆设信息装出去,这里我复杂申明一下 require和include的区分,require凡是放在PHP 法式的最后面,PHP 程式在履行前,就会先读入 require 所指定引入的档案,使它酿成 PHP 程式网页的一部分。经常使用的函式,亦可以这个办法将它引入网页中。 include 则通常为放在流程掌握的处置区段中。PHP 程式网页在读到 include 的档案时,才将它读出去。这类体例可以把程式履行时的流程复杂化。 */
<?
require "config.php";?>
/*上面这局部就是cookie了,它的expire工夫在下面的config.php中设置,别的人人能够已发明了,在这里有两个 if对照语句,第一个是检测是不是已有cookie设置,第二个则是为了不人家还没有投票法式就把cookie收回去。*/
<?   
if (isset($vote) && $vote=="Ready") $status = 1;   
else $status=0;   
if ($ready=="true")   
{   
setcookie("vote","Ready",$limitdate);   
}   
?>
<html>
<head>
<title><? echo $title ?> </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
//读出本来的选票了局,赋给变量$result
<?   
if (file_exists ($countfile)){  
  $result = file($countfile);   
}   
?>
/*上面是主法式 用switch做了三个分支,Case 1、检查了局;Case 2、提交选择;Case 3、生成表单*/
<?  
switch ($elect) {   
/* 检查了局,实践就是把下面用file()函数读出来的变量显示出来*/   
case "检查了局":   
echo "<table border="0">";   
for($i=0;$i<count($result);$i++){   
echo "<tr>"."<td>".$option[$i]."</td>";   
echo "<td>"."<img src="http://www.webjx.com/htmldata/2007-06-09/1.gif" width="";   
echo "$result[$i]*10";   
echo "" height="8"> </td>";   
echo "<td>"."    ".$result[$i]."</td></tr>";   
}   
echo "</table>";   
break;  
/*把选择了局写入到文件中去,注重要用flock把文件锁住!固然对投票法式来讲这个成绩不是出格凸起*/   
case "提交":   
if ($status == 1){   
echo "你已投过票了";   
}elseif($sugest == 0){   
echo "you havn"t choice";   
}else{   
if($fp=fopen($countfile,"w")){   
if(flock($fp,3)){   
for ($i=0; $i< count ($option); $i++){   
if ($sugest == $i+1){   
$result[$i]=$result[$i]+1;   
}else $result[$i]=$result[$i] + 0;   
echo $option[$i]."    ".$result[$i]."<br>";   
fwrite($fp,$result[$i]."n");   
}   
}else "投票掉败";   
}else echo "投票掉败";   
fclose($fp);   
}
break;
/*显示投票的表单*/  
default:  
echo "<form action="vote.php" method="post" name="form1">";  
$sum = count($option);  
for ($i=0; $i<$sum; $i++){  
echo "<input type="radio" name="sugest" value=";  
echo $i+1;  
if ($i==0) echo " CHECKED";  
echo ">".$option[$i]."<br>";  
}  
echo "<input type="hidden" name="ready" value="true">";  
echo "<br>";  
echo "<input type="submit" name = "elect" value="提交">";  
echo "<input type="submit" name="elect" value="检查了局">";  
echo "</form>";  
}  
?>
</p>
</body>
</html>
如许一个复杂的php的投票使用就完成了,说它复杂是由于这个法式只完成了投票使用的几个最主要的功效,还有一些细节成绩没有去向理。好比文件写掉败以后的处置,用户封闭cookie功效的敷衍举措等等。详细的完美就留给读者伴侣来处理了。
PHP于1994年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。
分手快乐 该用户已被删除
沙发
发表于 2015-2-4 08:03:42 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
老尸 该用户已被删除
板凳
发表于 2015-2-4 13:31:21 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
深爱那片海 该用户已被删除
地板
发表于 2015-2-9 23:42:55 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
兰色精灵 该用户已被删除
5#
发表于 2015-2-28 08:08:46 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
柔情似水 该用户已被删除
6#
发表于 2015-3-4 12:11:24 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
若天明 该用户已被删除
7#
 楼主| 发表于 2015-3-10 12:28:45 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
不帅 该用户已被删除
8#
发表于 2015-3-13 08:09:48 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
admin 该用户已被删除
9#
发表于 2015-3-20 17:16:57 | 只看该作者
做为1门年轻的语言,php一直很努力。
第二个灵魂 该用户已被删除
10#
发表于 2015-3-20 18:17:21 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
飘灵儿 该用户已被删除
11#
发表于 2015-3-23 09:19:01 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
金色的骷髅 该用户已被删除
12#
发表于 2015-3-24 11:24:31 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
莫相离 该用户已被删除
13#
发表于 2015-3-27 13:08:47 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
活着的死人 该用户已被删除
14#
发表于 2015-3-27 14:11:07 | 只看该作者
当然这种网站的会员费就几十块钱。
再现理想 该用户已被删除
15#
发表于 2015-4-7 01:16:16 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
愤怒的大鸟 该用户已被删除
16#
发表于 2015-4-14 04:08:45 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
谁可相欹 该用户已被删除
17#
发表于 2015-4-14 15:52:14 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
再见西城 该用户已被删除
18#
发表于 2015-4-15 14:15:57 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
简单生活 该用户已被删除
19#
发表于 2015-4-21 21:12:08 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
灵魂腐蚀 该用户已被删除
20#
发表于 2015-4-22 09:53:51 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-31 09:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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