`
lfq618
  • 浏览: 88159 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

快速入门四、制作留言本

阅读更多

本章让我们使用sp框架来制作一个简单的留言本程序,在实例中学习程序开发是非常有效的。同时,我们也可以体会一下实际网络项目的开发流程。

留言本例子下载

首先我们来看看,留言本的需求,也就是我们的程序将要实现什么功能:

  1. 访问者可以查看留言首页(也就是留言列表)。
  2. 访问者可以查看单一条留言的详细内容。
  3. 访问者可以进行留言。

请注意,我们的“需求”都是以访问者为中心的。但同时我们还可以以访问者和管理员为中心,只是本章介绍的留言本还暂时没有加入管理功能。

为了简单起见,我们并没有加入管理功能的需求。我们再来想想,在上面三个过程中所涉及的数据有哪些?对,仅是留言信息。那么我们大致考虑,留言信息会包括:留言标题,留言内容,留言者名字。另外,我们留言的信息还需要包括一个唯一的标志,以区分每一条留言。好了,那么我们就可以得出,留言本程序的数据表仅有一个“留言表”(起个英文名叫guestbook),它的大致结构是:

  • 留言标题,字符串(也就是中英文)形式,大概不会多于50字。用title做数据表的字段名称。
  • 留言内容,字符串,也不会多于200字吧,用contents做字段名。
  • 留言者名字,字符串,大概在20个字以内,用name做字段名。
  • 唯一标志,一般用数字形式的ID。用id做字段名。

按以上的说明,我们可以得出以下的数据表结构。

1 CREATE TABLE `guestbook` (
2   `id` int(11) NOT NULL AUTO_INCREMENT,
3   `title` varchar(50) ,
4   `contents` varchar(200) ,
5   `name` varchar(20) ,
6   PRIMARY KEY (`id`)
7 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

对于数据库知识,我们提倡的是按需学习,也就是用到哪些就学哪些,毕竟“书上讲得深奥,实际没有用到”,那就是费力不讨好。并且,在实际工作中,PHP程序员所需要的,也仅仅是一小部分的数据库知识,万一遇到更复杂的数据库需求我们也有非常多的解决途径,比如同事之间讨论,SpeedPHP论坛求助,找GOOGLE大神等等。所以除非是很有必要(比如工作是程序员兼数据库管理员DBA的人员),不然数据库知识方面,我们也是浅尝辄止即可。

初学PHP,我们建议可以了解一下以下的数据库知识就足够,不需要给自己太多的学习压力。

  1. 在类似PhpMyAdmin的数据库管理工具中,如何建表。
  2. CREATE,UPDATE,DELETE,SELECT四个语言的简单用法。
  3. 懂得思考和想方法解决遇到的问题。

使用数据库管理工具而不用纯粹SQL语句和命令行并没有什么荒废知识的问题,毕竟那会更简单快捷并且避免许多问题,这是提高开发效率的必然选择。

在PhpMyAdmin中建好了guestbook表

然后后,我们可以在index.php中对程序进行数据库的配置:

01 <?php
02 // sp框架的目录,SpeedPHP.php文件所在的目录
03 define("SP_PATH",dirname(__FILE__)."/SpeedPHP");
04 // 应用程序目录,controller和model等文件夹所在的目录,这里设置的是根目录
05 define("APP_PATH",dirname(__FILE__));
06 // 这里开始是应用程序的配置
07 $spConfig = array(
08     "db" => array( // 数据库设置
09         'host' => 'localhost'// 数据库地址,一般都可以是localhost
10         'login' => 'root', // 数据库用户名
11         'password' => '123456', // 数据库密码
12         'database' => 'test', // 数据库的库名称
13     ),
14 );
15 require(SP_PATH."/SpeedPHP.php");
16 spRun(); // SpeedPHP 3新特性

请注意index.php的目录位置,这是我们应用程序的入口文件,同时也是配置文件。

上面提到访问者进行的三个动作:看留言本首页,看留言内容,留言。好的,那么我们的main.php,就可以是下面的样子了:

01 <?php
02 class main extends spController
03 {
04 function index(){ // 这里是首页
05   
06 }
07   
08 function show(){ // 这里是查看留言内容
09   
10 }
11   
12 function write(){ // 这里是留言
13   
14 }
15 }

将main.php放到controller目录里面后,我们建立一个guestbook.php放到model目录里面,那是链接数据库所要做的。guestbook.php的代码很简单:

1 <?php
2 class guestbook extends spModel
3 {
4   var $pk = "id"; // 每个留言唯一的标志,可以称为主键
5   var $table = "guestbook"; // 数据表的名称
6 }

请注意,全部PHP文件都需要是UTF8编码,用PHP编辑器另存为就可以做到。请看《PHP编辑器的选择》。

上面准备的程序,就可以说系统架构。

准备好了这些程序后,我们可以写代码了,main.php的代码如下:

01 <?php
02 class main extends spController
03 {
04     function index(){ // 这里是首页
05         $posturl = spUrl("main", "write"); // 用spUrl制造写留言的地址
06         echo "<p align=center><h2>我的留言本</h2></p>";
07         // 下面做一个表单来提交留言,请注意这些输入框的name属性,它们都对应了数据表guestbook的字段名!
08         echo "<p>请写下您的留言:</p><form action={$posturl} method=POST><p>您的名字:<input type=text name=name></p><p>留言标题:<input type=text name=title></p><p>留言内容:<textarea name=contents></textarea></p><p><input type=submit value=提交></p></form>";
09         $guestbook = spClass("guestbook"); // 用spClass来初始化留言本数据表对象(模型类对象)
10         if( $result = $guestbook->findAll() ){ // 用findAll将全部的留言查出来
11             foreach($result as $value){ // 循环输出留言信息
12                 $contentsurl = spUrl("main", "show", array('id'=>$value['id'])); // 用spUrl制造查看留言内容页面地址,请注意array('id'=>$value['id'])将传递ID到查看页面,由spArgs来接收。
13                 echo "<p>这里是第{$value['id']}条留言:<a href={$contentsurl} target=_blank>{$value['title']}</a>&nbsp;&nbsp;{$value['name']}</p>";
14             }
15         }
16     }
17     function show(){ // 这里是查看留言内容
18         $id = $this->spArgs("id"); // 用spArgs接收spUrl传过来的ID
19         $guestbook = spClass("guestbook");  // 还是用spClass
20         $condition = array('id'=>$id); // 制造查找条件,这里是使用ID来查找属于ID的那条留言记录
21         $result = $guestbook->find($condition);  // 这次是用find来查找,我们把$condition(条件)放了进去
22         // 下面输出了该条留言内容
23         echo "<p>留言标题:{$result['title']}</p>";
24         echo "<p>留言者:{$result['name']}</p>";
25         echo "<p>留言内容:{$result['contents']}</p>";
26     }
27     function write(){ // 这里是留言
28         $guestbook = spClass("guestbook");
29         $guestbook->create($this->spArgs()); // 这里用$this->spArgs()取得了表单的全部内容,然后增加了一条留言记录
30         echo "留言成功,<a href=/index.php>返回</a>";
31     }
32 }  

好了,我们可以先将上面代码复制到我们的main.php里面,运行一下试试吧。

上面的main.php我们在注释内也能基本了解程序的写法,在接下来的第五章里面,我们着重以留言本程序来介绍sp框架的数据库操作。同时,都是用echo来输出页面,看起来有些乱,所以第六章我们将改写这个留言本程序,把它变成用Smarty来输出的程序。

分享到:
评论

相关推荐

    CSS+DIV+PHP+MYSQL制作的精简留言本

    《CSS+DIV+PHP+MYSQL制作的精简留言本》是一个非常适合初学者入门的项目,旨在帮助新手体验学习Web开发的乐趣。这个项目的核心是利用四种技术:层叠样式表(CSS)、分部布局(DIV)、超文本预处理器(PHP)以及关系...

    php入门留言板 php+access

    【PHP入门留言板】是一个针对初学者设计的教程,旨在帮助新手快速掌握PHP基本语言结构以及如何使用PHP连接Access数据库。这个教程将引导你通过实际操作理解PHP的核心概念,并且了解如何利用PHP处理用户输入,存储...

    HTML5+CSS3 快速入门 前端 源代码.rar

    Java web前端开发常用技术之一,可快速构建极具客户体验度的应用。本课程由有着多年实战开发的资深web前端开发工程师朱朝兵老师为大家录制,从html5+css3基础知识,到实战案例分析,实际操作,均有详细讲解。 1.课程...

    新手入门asp留言版下载

    这个"新手入门asp留言版下载"的资源显然旨在帮助初学者快速掌握ASP技术,通过实现一个简单的留言版来实践和理解ASP的基本概念。 ASP的工作原理是,当用户在浏览器中请求一个ASP页面时,Web服务器会处理该请求,执行...

    Flash.CS3网站商业设计从入门到精通第17章__Flash网站制作实战——企业

    - **制作首页**:首页作为网站的第一印象,应简洁明了,快速传达网站的主要信息,可能包含Logo、导航栏、简短介绍和动态元素等。 通过学习本章内容,读者将能够初步了解Flash网站设计的基本概念,掌握制作流程,并...

    PHPCMS-V9-产品开发权威指南.doc

    本书将从六个方面来介绍 PHPCMS-V9,分别是 PHPCMS-V9 快速入门、PHPCMS-V9 源码分析、PHPCMS-V9 二次开发介绍、PHPCMS-V9 二次开发实例-留言本、PHPCMS-V9 中 PC 标签使用讲明、PHPCMS-V9 与 UCENTER 的整合。...

    《帝国网站管理系统》零基础实例入门教程[2008]

    本教程以2008年的版本为蓝本,旨在帮助用户从零开始掌握这款强大的系统,实现快速上手和实际操作。 教程的核心知识点主要包括以下几个方面: 1. **安装与配置**:首先,你需要了解如何在服务器或本地环境中安装...

    java WEB开发合集

    使用ajax制作留言本 Hibernate 一、持久化层-O/R Mapping 二、Hibernate入门 三、Hibernate映射申明(Mapping declaration) 四、持久化对象的状态和生命周期 五、Hibernate查询 六、Hibernate最佳实践 ...

    全网超神bootstrap综合实战含源码

    后台界面团队留言板制作.mp4**:这部分可能涉及到使用Bootstrap创建一个团队成员留言或交流的板块,便于后台管理。 5. **3.响应式导航(demo1).mp4**:讲解如何创建响应式的导航栏,这是Bootstrap的核心功能之一。 ...

    十天学会php基础 转载

    【PHP基础教程:十天快速入门】 PHP是一种广泛使用的开源脚本语言,尤其适用于Web开发。本教程将帮助你从零开始,在十天内掌握PHP的基础知识,制作一个简单的PHP留言本。 ### 1. PHP的嵌入方法 PHP代码可以以`...

    JeeCMS网上文档集合

    - **轻松给网站配置留言板**:介绍如何为网站添加留言板功能,提升用户交互性。 - **JEECMS网站管理系统栏目模型管理**:讲解如何管理和编辑网站栏目模型。 - **JEECMS网站管理系统栏目添加**:说明如何添加新的网站...

    河源旅游网开题报告

    - **目标**:本项目旨在利用Internet信息服务(IIS)平台和Access数据库技术,构建一个专注于河源地区的旅游网站。该网站旨在通过数字化的方式展示河源的旅游景点信息,以此来宣传和推广河源的旅游资源。同时,网站...

    汉化教程(共56M二分卷)分卷二

    建站初期,下载站的结构以森林大地的“汉化超市”为基础,论坛从留言板逐步发展,后来成形的论坛即以YY的为基础。至于汉化教学,曾经考虑以Rapid的网站为原始模版,因Rapid没有加入,加上初期下载站和论坛事务所更加...

    汉化教程(共56M二分卷)分卷一

    建站初期,下载站的结构以森林大地的“汉化超市”为基础,论坛从留言板逐步发展,后来成形的论坛即以YY的为基础。至于汉化教学,曾经考虑以Rapid的网站为原始模版,因Rapid没有加入,加上初期下载站和论坛事务所更加...

    php100视频原始地址列表整理.doc

    - **知识点**: 通过制作留言板项目,学习如何结合PHP和MySQL实现用户输入验证、数据存储、显示等功能。 - **学习目标**: 掌握PHP+MySQL的基本开发流程,能够独立完成小型项目的开发。 #### 13. PHP+MySQL分页原理 -...

Global site tag (gtag.js) - Google Analytics