《2014年辛星php教程夏季版_附件》由会员分享,可在线阅读,更多相关《2014年辛星php教程夏季版_附件(169页珍藏版)》请在技术文库上搜索。
1、2014 年辛星 PHP 教程夏季版 169 / 169 后记 *接下来的任务 * 1.我们到现在, PHP只是入门了而已,并没有达到一个较高的层次,也还没有写一个完整而独立的网站出来。 2.本来我还想把 ThinkPHP的教程 也加进来,但是我看到此教程页数也算不少了,就没有再加,但是它会独立成册,成为一个新的教程。 3.如果读者喜欢我2014 年辛星 PHP 教程夏季版 168 / 169 第四节:总结 *设计模式 * 1.可能有人学习完面向对象就像学习设计模式了,没错,当年的我也是这样。 2.但是以我的经验,就是先不急学设计模式,最好先自己用面向对象的思想写点稍微大点的项目,这时候对设计。
2、模式的理解会透彻的多。 3.不过设计模式在涉及到稍微大型点的项目的时候就已经很2014 年辛星 PHP 教程夏季版 167 / 169 *再看 $this* 1.可能是第 一次写教程,难免会有点疏漏,前面我们讲解了 $this表示自身。 2.有时候我们写的方法可以返回 $this,进而达到连续调用的目的。 3.看下面的代码: 2014 年辛星 PHP 教程夏季版 166 / 169 *常量 * 1.前面我们说过可以用 define来定义常量,那么对于类的常量我们可以用 const修饰符。 2.既然我们使用了 const修饰符,就不要再使用 public、private等修饰符了,会报错的。 3。
3、.下面的例子演示了一下常量的基本用法: 4.因为我们对常量的期2014 年辛星 PHP 教程夏季版 165 / 169 4.在静态方法中不能调用普通方法,因为静态方法不需要类被实例化,但是普通方法则必须要求类被实例化才能用,因此不管怎么引用,都会出问题。 5.下面提示报错类型: 2014 年辛星 PHP 教程夏季版 164 / 169 3.上面的截图说明了一个问题:那就是 $xin本来设置了name属性为辛星,结果在 $qian对象中修改了它,结果$xin也变成了小倩,这是因为 $name是一个静态属性,一个对象修改,会导致所有的对象都跟着被修改。 4.读者可以把上面 的 static去掉看一。
4、下效果,不过记得必须把 self:换成 $this-,否则会有问题的。2014 年辛星 PHP 教程夏季版 163 / 169 第三节:静态、 常量 、 再看 $this *静态 * 1.还记得我学习 Java的时候,经常会写一个 public static void main 这一串东西,其中的 public 我们知道什么意思了, 那么 static呢? 2.我们 PHP中也支持静态,所谓静态2014 年辛星 PHP 教程夏季版 162 / 169 *总结 * 1.通过类的继承,我们实现了类的多态的一种形式。 2.比如类 A可以有多个子类,比如子类 B、子类 C,而子类B和子类 C 又可以执。
5、行不同的功能。 3.通过类的继承,我们可以少写大量的代码,因为类的继承中,子类会继承父类的所有的属性和方法。 2014 年辛星 PHP 教程夏季版 161 / 169 *调用父类的方法 * 1.我们可以通过重写来覆盖父类的方法,但是有时候我们需要调用父类的方法 ,这个时候可以用 parent:方法名 的方式。 2.如下示例: 2014 年辛星 PHP 教程夏季版 160 / 169 *抽象类 vs 接口 * 1.抽象类是类,可以有属性和方法,但是必须至少有一个抽象方法。接口不能有属性,且所有方法都必须是没有实现的,但是不能使用 abstract来修饰,负责会报错: Access type fo。
6、r interface method 接口名 :方法名 () must be2014 年辛星 PHP 教程夏季版 159 / 169 *抽象类和抽象方法 * 1.抽象类就是比较抽象的类,为什么会抽象,因为一个抽象类至少会有一个抽象方法,而所谓抽象方法,就是没有具体的实现的方法,只是定义了 一个函数名和一堆需要的参数。 2.抽象类和抽象方法都被 abstract修饰。 3.抽象类不能被实例化 , 但是可以被继承 。2014 年辛星 PHP 教程夏季版 158 / 169 4.接口无法被实例化,下面定义了两个接口,且后者是前者的子接口: *类和接口 * 1.接口之间尽管可以继承,但是接口不能拥有其。
7、所拥有的方法的实现,但是类可以啊,类可以 继承 类,类可以 实现接口。 2.一个类实现接口用 implements,且在实现接口的时候 必须对该接口的所有方法2014 年辛星 PHP 教程夏季版 157 / 169 *接 口 * 1.就像 Java一样, PHP也提供了接口来弥补自己不支持多继承的不足。 2.接口用 interface来说明,接口不是类,它不能有 构造函数,而且函数也不能有实现方式,它只能是定义几个没有函数体的方法,且接口的方法必须是 public的,接口不能有自己的属性。2014 年辛星 PHP 教程夏季版 156 / 169 *protected 和 final* 1.前面。
8、讲过了 public 和 private,下面讲一下 protected,被 protected修饰的变量和方法,在 该类和其子类中都不能在类外被访问 。 2.比如下面的例子: 3.被 final修饰的方法不能被子类覆盖,否则会报错,被fin2014 年辛星 PHP 教程夏季版 155 / 169 getAge方法:4.子类还可以有子类,即孙子类,这不叫多重继承,多继承是一个儿子有多个父亲,而不是一个儿子又有了一个儿子。 5.在 PHP的单继承中,一个父类可以有多个子类,但是一个子类只能有一个父类。 6.其中我们还可以重写父类中的属性,由于和覆盖父类中的方法非常类似,因此就不再做说明了。 20。
9、14 年辛星 PHP 教程夏季版 154 / 169 第二节:继承 、接口和抽象类 *什么是继承 * 1.有这么一个笑话,就是:最快变成富人的方式。答案就是:通过继承父辈的财产。 2.其实在面向对 象思想中,就包含了继承,通过继承分为子类和父类,其中父类也叫基类,父类还可以叫超类。 3.继承分为单继承和多继承,如果一个子类有多个父2014 年辛星 PHP 教程夏季版 153 / 169 *封装 * 1.什么是封装呢?大家可以理解封装为“隐藏”,即封装了某部分东西,也就是把某部分东西隐藏起来了。 2.比如在类的外部不能访问类的私有方法和私有属性,那么这些方法和属性就是被封装起来了。 3.一个定义。
10、良好的类应该是其属性都是私有的,提供一定的 public 的方法让外2014 年辛星 PHP 教程夏季版 152 / 169 10.类似的还有 __set($key,$value)用于给本来不能赋值的进行赋值或者是当给不存在的属性赋值的时候调用 ,当本来不能被访问的属性或者本来不存在的属性被访问的时候会调用 __get($key)方法,如下示例代码: 11.我不建议大家用这样的方式去做,容易导致一些混乱,但是用 __get()来提示不必要的访问还是不错的。 2014 年辛星 PHP 教程夏季版 151 / 169 9.首先介绍一下所谓的可变变量,这在很多语言中是不具有的,下面代码会说明: 20。
11、14 年辛星 PHP 教程夏季版 150 / 169 6.还有一个就是析构函数把,看下面的代码和 运行效果以及解释: 7.可以看到, $xin的析构函数是在 echo语句被执行完毕之后再调用的,这个涉及到对象的生命周期,即该程序执行完的时候,所有的对象都会被删除。 8.还有一个 __call方法,它是当调用了不存在的方法的时候会被自动调用的: 2014 年辛星 PHP 教程夏季版 149 / 169 5.还比较重要的比如 __toString()函数,它的作用是我们打印一个对象的时候自动被调用,看下面代码: 2014 年辛星 PHP 教程夏季版 148 / 169 4.如果我们先写和类名一样的。
12、构造函数,再写 __construct方法,那么就会报错,信息如下: 2014 年辛星 PHP 教程夏季版 147 / 169 向 Java那样使用和类名一样的方式来作为构造方法,看下面 代码: 3.前面我们说过 ,__construct也可以用来当做构造函数,那么如果两个函数同时出现呢?答案是,如果先写__construct,那么将会没事。如果先写和类名一样的构造函数,就会报错,并且会用 __construct函数进行赋值,如下代码: 2014 年辛星 PHP 教程夏季版 146 / 169 9.其中 protected在涉及到继承的时候我们再说,这里先不提了,还有 final修饰符等等,这。
13、里先略过。 *特殊方法 * 1.其实我们前面已经接触到了一种特殊方法,就是__construct,下面我们详细介绍一下其他可能会用到的特殊方法。 2.先说一下构造函数,我们2014 年辛星 PHP 教程夏季版 145 / 169 5.那么被 public修饰的属性呢?答案是在类外部使用很正常,看下面截图: 6.大家应该也可以看到了,我们在 类的内部使用属性和方法 的时候,使用 $this-属性 或者 $this-方法 ,在 类的外部 的时候,使用 $对象名 -属性 或者 $对象名 -方法 。 7.总的来说, private是不允许在类外部被使用2014 年辛星 PHP 教程夏季版 144 / 。
14、169 4.既然 private的方法在类外部不能被使用,那么被private修饰的属性呢?看下面代码: 2014 年辛星 PHP 教程夏季版 143 / 169 *类的属性和方法 * 1.上面说到类的属性可以有修饰符,其实类的方法 也可以有修饰符。常见的三种修饰符就是 public、 protected、private,其中又以 public和 private使用最多。 2.private意思是“私有的”,即只有该类可以访问,外部不能访问。如果大家第一次2014 年辛星 PHP 教程夏季版 142 / 169 2.大家一定要记住的是,构造函数不能有返回值,它的主要使命就是完成对该类的初始化,。
15、通常是设置一些属性的值。 3.我们可以把类实例化,从而得到一个对象,该对象可以调用类的方 法,看下面代码: 4.这里的 $xin就是 People类的一个实例,它可以调用自己的 getMessage 方法,大家注意一下它的语法 :$xin-getMes2014 年辛星 PHP 教程夏季版 141 / 169 4.我们通过上面的示例分析一下属性和方法,其实属性和普通的变量的区别在于它可以使用一些特定的修饰符,比如这里的 private。所使用的方法也有一些特殊之处,比如我们可以定义构造函数、析构函数等等,它们会具有一些普通函数所不具有的性质。 5.那么我们如何使用类的方法和属性呢?通常我们在类的。
16、内部使用属性的话,通常是用 $this-属性名2014 年辛星 PHP 教程夏季版 140 / 169 第一节:类和类的实例化 *定义一个类 * 1.我们使用 class来定义一个类,就像我们使用 function来定义一个函数一样。 2.我们在 class后面跟一个类的名字,然后就是一对大括号,大括号里可以定义类的属性和方法,前面说过,属性也就是变量,方法也就是函数,下面定义了一个最简2014 年辛星 PHP 教程夏季版 139 / 169 比如狗有毛的颜色这个属性,狗有行走、奔跑、吼叫等方法。 2.对象:我们把一类事物通称为类,把一类事物中的一个称为对象。类和对象的关系就像所有的整数和整数。
17、 3的关系,即后者是前者的一个个例,前者是后者的一个统称。我们由一个类得到它的对象的过程通常称之为实例化,即一个抽象的类经过实例化就得到了它的一个对象。 3.属性和方法:前面说过类有方2014 年辛星 PHP 教程夏季版 138 / 169 第四部分: PHP的面向对象 第零节: 面向对象简介 *面向对象 * 1.我们前面使用的都是结构化编程,即 SP,下面我们将会使用 OOP即面向对象的编程方式。 2.面向对象是一种思想, PHP5之后的版本对面向对象的支持就比较不错了,当然,很多编程语言都支持面向对象,但是支持2014 年辛星 PHP 教程夏季版 137 / 169 *回忆一下 * 1.当。
18、时从想做一个 bbs的教程到真正完成代码,而且是边写代码边写教程,总共也就用了两天的零散时间: 2.它没有借助任何的框架,纯粹的手写前台和后台,如果我们借助于一个能够快速开发的 框架,那么效率将会事半功倍,开发就更快了。 3.因此, PHP的效率还是非常可观的2014 年辛星 PHP 教程夏季版 136 / 169 第七节:总结 *它的缺点 * 1.要说它的缺点,那就太多了,比如它没有安全方面的检测,很容易制作比如灌水机等东西来大量的发帖,最终我们的数据库会被大量的垃圾信息所填充。 2.另外,它也没有缓存机制,当面对浏览用户较多的时候,它的性能还是很受影响的。 3.它的 扩展比2014 年辛星。
19、 PHP 教程夏季版 135 / 169 *小结 * 1.本小节就告一段落了,它的主要功能就是实现对用户 信息的查看。 2.如果您有什么问题,请发邮件至 xinguimeng163.com,我会收到的。 2014 年辛星 PHP 教程夏季版 134 / 169 3.比如我在 module.php 中点击了某个“小楠”的连接,截图如下: 4.则也能找到正确的地址信息: 2014 年辛星 PHP 教程夏季版 133 / 169 6.可能有人会说:那如果不从 cookie中提取信息呢?答案也是可以的,比如: *修改遗留问题 * 1.我们之前有一些遗留问题,我们到 module.php 页面下,做出如。
20、下修改。 2.该部分内容如下: 2014 年辛星 PHP 教程夏季版 132 / 169 4.最后简单修改一下 index.css文件: 5.效果 如下: 2014 年辛星 PHP 教程夏季版 131 / 169 第六节:实现用户中心的功能 *用户中心实现大致流 程 * 1.用户中心要展示哪些内容? 本着简单的原则,我们只是显示一下账号信息以及该账号最近发的一些帖子。 2.其实这个内容还是蛮多的,读者可以自行去扩展,我只是抛一块砖, ( o ) *代码截图 *2014 年辛星 PHP 教程夏季版 130 / 169 3.下面我们看一下效果: *小结 * 1.本小节的内容还是蛮简单的,我们简单的。
21、实现了看帖和回帖的功能,以及创建一个主题帖的功能。 2.相比读者读到这里,已经对数据库的增删改查心里已经比较有数了,可能还担心自己数据库的技术不过关,没问题,如果您喜欢我的风格,请搜索“辛星 2014 年辛星 PHP 教程夏季版 129 / 169 6.至此我们的回复帖子的功能也差不多了,比如回复空内容、不登陆就回复等等,这些功能我也测试过了,其实大家可以从代码中看出,这些功能的实现原理,很简单。 *添加主题帖 * 1.我们回到我们的 module.php,添加一个主题帖的功能,如下: 2.刚才添加了一条主题帖,但是忘记截图2014 年辛星 PHP 教程夏季版 128 / 169 3.在 ad。
22、dpost添加内容信息如下: 4.比如我们向里面回复一个帖子: 5.点击“回复”按钮之后,可以看到如下显示: 2014 年辛星 PHP 教程夏季版 127 / 169 出所有信息,然后用 count来计算总的数目,然后可以对该数组中查询我们从 $count开始数,数 20条信息即可。 13.运行效果截图: *发帖的实现 * 1.其实发帖已经很好实现了,到这一步,我想我不说大家也都明白了,我们在 bbs文件夹下面新建一个 addpost.php文2014 年辛星 PHP 教程夏季版 126 / 169 10.然后还需要修改一下 index.css文件,它控制着整个页面的布局,修改如下: 11.这。
23、里的布局确实有点一般,如果读者是位 CSS高手,可以美化下。 12.下面就可以看一下运行效果了,值得说明的是,这里并没有计算分页效果的末页什么的,其实要计算出来也不难,我们可以用 select 语句的时候去 掉 limit即可,这样会取2014 年辛星 PHP 教程夏季版 125 / 169 6.这里也很简单,就是首先对查询得到的 firstmsg表示楼主的信息,从它里面取出 author 和 text 来进行显示即可。 7.下面的截图是一个增加回复的功能: 8.也很简单把,它只是创建了一个表单,然后它会提交到addpost.php,并且提交 text, board, own,等属性。 9.接。
24、下来我们还需要实现分页, o2014 年辛星 PHP 教程夏季版 124 / 169 3.这一部分主要是进行一下简单的判断,然后我们给出适当的值,然后构造 sql语句来进行查询,这里我们不仅查询某个帖子的回复贴内容,还需要查询该贴的主题帖的内容。 4.这部分的主要工作就是从 数据库中得到相应的信息,来给我们下面的程序使用,它的使命只有一个:信息查询。因此我也建议咱们把所有的信息查询都集中在一个地方,这样以后修改代码也会很2014 年辛星 PHP 教程夏季版 123 / 169 第五节:实现看帖和发帖的功能 *添加测试数据 * 1.有时候没有测试数据,我们的很多测试工 作就难以完成,于是,我们可。
25、以写一个程序,向数据库中批量添加数据。 2.但是我们考虑到我这里只是添加几条数据,就不写程序了,就还是手工添加了: *首先我们实现看帖功能 *2014 年辛星 PHP 教程夏季版 122 / 169 *小结 * 1.我们这一节 实现了版块的列表和具体版块的展示,它可以展示该版块下面的所有的主题帖。 2.可能有人会说:你这个分页做的不够完善,如果后面的页面内容的话就不该显示了。我想说:确实是这样的,但是我这个只是做一个简单的例子,因此就没有在功能上做的很精细,我只是视图展示2014 年辛星 PHP 教程夏季版 121 / 169 11.还需要干一件事,那就是在 index.css中对 power。
26、的设置,我们需要清楚它的浮动,否则显示不正确,添加一句话如下: 12.现在让我们来看看我们的具体的版块信息吧: 13.测试分页信息; 2014 年辛星 PHP 教程夏季版 120 / 169 9.然后就是下面的用于显示 xx页的一个 div,还是蛮简单的,来个截图: 10.然后还需要在 index.css中添加相应的代码,否则我们设置的这些格式是显示不出来的,添加的内容如下: 2014 年辛星 PHP 教程夏季版 119 / 169 的信息很多,我们总不能一下子全给检索出来把,于是就把数据分为一页一页的数据,即分成几页来展示给用户。 4.我们用 select语句从数据库中检索数据的时候,可以用。
27、limit n, m 的形式规定从第 n 条数据开始取,并且取 m 条,当我们展示不同的页 的内容的时候,其实也就是变化一下 n和 m的数值。 5. 这里我们首先根据版块的 2014 年辛星 PHP 教程夏季版 118 / 169 3.其实我们可以写一个程序批量导入数据的,由于是写教程,我也就尽量的保守点,尽量让这个教程变得小巧一点。 *版块的主题帖显示 * 1.我们已经可以实现所有的版块信息了,那么接下来我们将来查看一下具体的版块内容。我们将在 module.php中实现这些功能,但是它的代码比较长,我已经尽量简化了,但是还2014 年辛星 PHP 教程夏季版 117 / 169 *添加测试。
28、数据 * 1.下面我们向数据库中添加 几条测试数据: 2.然后查看一下: 2014 年辛星 PHP 教程夏季版 116 / 169 2.然后在 index.css中修改一下样式: 3.然后看一下整体效果,在浏览器中输入:http:/localhost/bbs/ ,效果如下: 2014 年辛星 PHP 教程夏季版 115 / 169 *小节 * 1.本小节我们完成了用户的登录、注册、注销功能,如果大家的 HTML和 CSS功底比较深厚的话,绝对可以编写出非常漂亮的界面。 2.但是我不知道大家的前台的功底怎么样,因此也就使 用了最简单的知识,因此写出来的界面也比较丑陋。 3.其实我们真正开发的时候。
29、肯定是基于 MVC模式2014 年辛星 PHP 教程夏季版 114 / 169 7.有 bug吗?如果读者足够仔细, 会发现一点问题,那就是,我们上面写的代码真的有效吗?比如我在注册页面中用户名和密码都不输入,直接进行注册,那结果会怎么样?答案是注册成功。 8.比如我们实现一下即可发现数据库中多了下面一条记录: 9.但是我们再次在注册页面不输入账号和密码的话,就会注册失败了,如下: 2014 年辛星 PHP 教程夏季版 113 / 169 5.然后点击“注册”,发现成功,我们点击弹窗的“确定“按钮之后看到如下信息: 6.当然我们可以用 mysql控制台下查看一下数据信息: 2014 年辛星 P。
30、HP 教程夏季版 112 / 169 2.然后我们在它的下面继续书写 HTML代码: 3.下面我们在浏览器中输入: http:/localhost/bbs/,看到如下界面: 4.点击上面的“注册”,来到了注册页面: 2014 年辛星 PHP 教程夏季版 111 / 169 3.然后我们点击“退出”这两个字,它会自动清空 cookie,会有一个弹窗,点击“确定”,就可以看到如下信息: *用户注册功能 * 1.在 bbs文件夹下再次新建一个 reg.php文件, 先写入下面的 php代码: 2014 年辛星 PHP 教程夏季版 110 / 169 10.至此,登录模块检测完毕,它能够对用户的登录信。
31、息进行验证和 把用户信息写入 cookie。 *退出功能的实现 * 1.我们到 bbs的文件夹下新建一个 logout.php,然后书写如下代码: 2.保存文件之后,我们到首页,首先登录, 这里我使用的是用户名“辛星”,密码是“ xin”,当2014 年辛星 PHP 教程夏季版 109 / 169 8.现在大家要想一个问题,如果我们输入了错误的用户名和密码呢?如果大家要实验,可以关闭浏览器,重新打开来清除 cookie信息,然后重新到首页点击“登录”来到登录界面,随便输入账号和密码,点击“登录”按钮: 9.我们点击弹窗的“确定”按钮,发现它的效果如下: 2014 年辛星 PHP 教程夏季版 1。
32、08 / 169 5.然后点击“登录”,我们来到如下界面: 6.点击下面的“登录”按钮,我们发现 我们编写的 js代码起作用了,它给我们先有一个提示 , 来个截图: 7.然后来到了首页: 2014 年辛星 PHP 教程夏季版 107 / 169 3.然后在它下面继续编写 HTML代码,写一个表单用来构造用户登录信息: 4.好的,下面我们的登录功能至此已经写好了,我们在浏览器中输入如下网址: http:/localhost/bbs/,回车之后发现截图如 下: 2014 年辛星 PHP 教程夏季版 106 / 169 4.上面就是 PHP和 HTML混编的一个例子,我们在 HTML代码中嵌入了 P。
33、HP代码,虽然这在大型应用中一向是被深恶痛绝的,但是微型应用却非常方便。 5.其中的  ;在 HTML中表现为一个空格,即字符实体信息。 6.如果 cookie被设置了,即 $_COOKIE中具有 user这个下标,即 $_COOKIE use2014 年辛星 PHP 教程夏季版 105 / 169 第三节: 实现用户模块功能 *用户模块 * 1.任何一个网站,甚至是本地的应用程序包括迅雷看看、电脑管家、百度壁纸这些东西都可以接受用户的登录等信息。 2.那么我们就来写一个用户的登录、注册、退出的功能,我这里给大家提出一个实现,由于我们 没有讲解 CSS、 HT2014 年辛星 PHP 。
34、教程夏季版 104 / 169 2.性能测试文件:其实有时候使用一个 benchmark是很重要的,可以根据它来优化我们的项目。 3.版本控制:对于多 人开发,版本控制非常重要,但是对于我这个一个人写的应用,就不必要了。 4.其他功能:还有些要求有文档方面的记录,文档的编写一向很重要,但是我们这里为了简化开发,就不写了。 2014 年辛星 PHP 教程夏季版 103 / 169 5.当然,我们打开控制台看到的信息也是一样的: *其他功能 * 1.日志记录:其实对于一个中型网站来说,日志记录就需要了,但是对于我们这种微型网站来说,日志信息还是不那么重要。要写日志文件,会涉及到文件和目录的操作。 。
35、2014 年辛星 PHP 教程夏季版 102 / 169 文件会被用于进行测试一些项目信息,我们通过它来看出究竟是哪里出问题了。 *编写测试文件 * 1.其实 PHP有它的测试模块,可惜我们还没学面向对象,因此灰常遗憾,我们只能使用自己编写的测试文件。 2.我不想编写大而全的测试文件 ,因此我只是编写那些非常简单的测试。 3.下面是该测试文件的代码: 2014 年辛星 PHP 教程夏季版 101 / 169 3.*为何要写测试文件 * 1.很多编程新手想不到写测试文件,但是不得不说,写测试文件非常之重要。 2.大家知道测试在一个项目中占据多少的时间量吗?大约一半左右,而且项目越大,测试起来越麻。
36、烦,因为代码是多个人完成的,没有一个人会完全的知 道它的运行细节,因此就需要多方的测试,如果 每2014 年辛星 PHP 教程夏季版 100 / 169 第二节: 编写函数库和测试库以及其他说明 *为什么要写函数库 * 1.有些函数太常见了,我们必须用函数的形式去调用,比如数据库连接,我们总不能每次连接一次数据库都用 一次mysqli_connect 把,这样,当我们的数据库用户名和密码变了,我们一下得修改十多处,太烦了。 2.而且, mysq2014 年辛星 PHP 教程夏季版 99 / 169 2.由于它涉及到的数据项有点多,我就懒得写测试数据了,用 的时候再说,嘎嘎。 3.board 的。
37、 not null 说明该列是非空的,即它不能是空的,我绝对不允许出现一个不属于任何版块的帖子,它是用来干什么的,它的目的何在,是谁派它来的? *总结 * 1.第一小节我们就结束了,我们的任2014 年辛星 PHP 教程夏季版 98 / 169 2.然后查看一下添加的数据: *帖子列表 * 1.建立一个数据表 post: 2014 年辛星 PHP 教程夏季版 97 / 169 auto_increment 表示“自增”,即如果我们不向它插入数据,它会自动比上一条记录的数据增加 1。 3.level字段的 default 1是说如果 我们不指定它的数据,它默认用 1去填充。 4.unique的意。
38、思是不允许重复,这里我们不允许重现相同的用户名,因为我们使用用户名去登录,我们为了区分不同的用户名,所以设置为用户名不2014 年辛星 PHP 教程夏季版 96 / 169 *创建用户表及加入测试信息 * 1.在控制台中书写如下内容:2.由于我们数据库功底还比较薄弱,我给大家解释一下:primary key 的意思是“主键”,一个表只能有一个主键,这个主键可以由一个列或者多个列组成,主键不能重复且不能取空值,这里我们用户的 id 是不能为空且不能重复的。2014 年辛星 PHP 教程夏季版 95 / 169 1.出于简单的考虑,我们就不用诸如 Designer这样的建模工具了,而且我也没写数据。
39、库建模的知识,连个最简单的“范式”都没教,而且也没提到诸如“外键”这些东西,因此,我们的数据库只是简单的设计一下。 2.这些东西我在考虑是在后续版本中介绍还是独立出来作为一个单独的教程。 3.下面我们在 txt中设计如下: 4.然后我们打开数据库控制2014 年辛星 PHP 教程夏季版 94 / 169 *其他页面 * 1.其实不用大家说,我也 知道我们需要其他页面,但是,我们在开始写一个项目的时候只能大致的把模板先构建出来,如果有美工,把任务交给他们,让他们去做,咱们专心写后台。 2.可是关键是我没有美工,所以,我亲自且前台,但是我也不知道还会出现哪些页面,不过注册页面是肯定要有的,否则,用。
40、2014 年辛星 PHP 教程夏季版 93 / 169 2.然后在 index.css中追加内容如下: 3.然后我们的个人中心长这个样子: 2014 年辛星 PHP 教程夏季版 92 / 169 2.在 index.css中追加内容如下: 3.然后在浏 览器中输入: http:/localhost/bbs/post.php,可以看到页面大致长这个样子: *创建个人中心页面 * 1.新建一个 personcenter.php 文件,然后输入内容如下: 2014 年辛星 PHP 教程夏季版 91 / 169 *创建帖子展示页面 * 1.新建一个 post.php,它的内容如下: 2014 年辛星 。
41、PHP 教程夏季版 90 / 169 2.然后我们在前面的 index.css中添加一些内容: 3.然后我们在浏览器中输入如下网址:http:/localhost/bbs/module.php ,会看到界面: 2014 年辛星 PHP 教程夏季版 89 / 169 8.然后打开浏览器,输入如下网址:http:/localhost/bbs/ ,应该会看到下面的界面: *创建模块内容页面 * 1.然后创建一个 module.php 页面,输入如下内容: 2014 年辛星 PHP 教程夏季版 88 / 169 5.然后新建一个 allmodule.php 文件,写入如下内容:6.然后打开我们之前编辑。
42、但是没写的 index.css,输入如下内容: 7.然后我们新建一个 index.php,输入如下几行代码: 2014 年辛星 PHP 教程夏季版 87 / 169 第一节:数据库建模和大致模板的创建 *先创建首页 * 1.现在我们平时经常用的 www 目录下新建一个 bbs 文件夹,我们用它来存放我们的论坛程序。 2.然后建立一个 header.php,它用于当我们整个网站的头部文件,因此我们的网站的文件的头部是统一的: 3.然后新建一个 index.cs2014 年辛星 PHP 教程夏季版 86 / 169 *编程思路 * 1.首先是数据库的建模,这是第一步,不过由于我在第二章中关于数据库。
43、讲解的知识太少了,连第三范式都没讲到,要是真的让读者去设计一个中型数据库,可能不合理的地方太多。于是我们使用三个表:一个是 user表,用来存放用户信息,一个是 module表,用来存放模块,一个是 post2014 年辛星 PHP 教程夏季版 85 / 169 第三部分 :使用 PHP写一个论坛程序 第零节:功能简介和编写思路 *关于前台 * 1.由于学习世间还是略短,关于前台的知识也没有介绍,我不知道大家的水平。如果读者是一位前台开发高手,那么可以做出很漂亮的界面,如果读者是一位前台水平一般的童鞋,那么可能会做的界面偏丑陋,不过没关系,等我们2014 年辛星 PHP 教程夏季版 84 / 。
44、169 第五节:其他一些说明 *我们学习了什么和没学什么 * 1.我们学习了 mysql的简单操作,我们学习了对表单的操作和 cookie和 session。 2.我们没学的东西就多了去了,比如文件上传、比如邮件发送这些具体的功能,比如添加水印、生成验证码这些对图像的操作,比如对 xml、 json数据的2014 年辛星 PHP 教程夏季版 83 / 169 5.我想读者应该明白了,这里可能会涉及到几个函数,不过它们的意思并不难理解。 6.比如 mysqli_num_rows 是获取结果集的行数,而mysqli_fetch_assoc 是每次从结果集中拿到一行,值得注意的是,它是不重复的获取奥。 *总结 * 1.我们终于能使用 PHP执2014 年辛星 PHP 教程夏季版 82 / 169 *查询数据 * 1.查询数据我还是有必要亲自讲一下的,因为它和其他几个有着本质的不同,前面的多半是执行一个 sql语句,然后看看执行成功没就 Ok了,但是现在我们要从数据库中取出数据。 2.首先我们向数据库中手工插入三条数据,当然也可以编写一个程序来做,不过鉴于工作量很小,就手写了。