PHP网站制作之实例剖析进修静态网页制造手艺PHP开辟投...
第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= "英文:源代码、法式下载"。更绝的是你还可以。
$MyArray2 = array( "
地支" => array("子", "丑", "寅", "卯"),
"生肖" => array("鼠", "牛", "虎", "兔"),
"数字" => array(1, 2, 3, 4) );
用的时分$MyArray2["地支"]="子"; 怎样?是否是很有情面味啊,:)
最初咱们来看看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语言编写的程序。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 兴趣是最好的老师,百度是最好的词典。 本文当是我的笔记啦,遇到的问题随时填充 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 做为1门年轻的语言,php一直很努力。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 当然这种网站的会员费就几十块钱。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 Ps:以上纯属原创,如有雷同,纯属巧合 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
页:
[1]