经典PHP留言本教程

经典PHP留言本教程


2024年5月4日发(作者:)

教程连载1:PhpChina留言本实例

在第一期中,我们来一步一步实现一个最基本的留言本。留言信息包括留言者,留言内容,

留言时间,留言者IP。(本文假设你已对HTML以及PHP语法比较熟练了)

第一步:设计数据库

新建一个数据库,打开

phpMyAdmin

,新建一个数据库

gb

,下面整理选择

utf8_general_ci

然后在数据库中建一个表

message

,字段数为5:

字段名

id

username

content

time

ip

类型

int

char

text

int

char

长度

10

100

10

15

属性

unsigned

unsigned

额外

auto_increment

其他

主键

然后下面数据库类型选择MyISAM(各个类型的优缺点请查看MYSQL手册),整理选择

utf8_general_ci。

每个字段的含义:

id -- 留言的编号,类型为整数型,长度是10,属性选择为unsigned是表明这个字段

是无符号字段,不会有负数,所以可以存取的范围会增加一倍(因为如果原来的范围是 -9 到

10,那么设置为unsigned后范围则变为0到19),额外设置为auto_increment,表明

这个字段是自动增加的,我们不用管插入数据时它是啥值,它会自动在最大的id的基础上

自动加1,其他设置为主键。

username -- 留言者的名字,类型为字符型(关于char与varchar的区别请查看

MYSQL手册),长度为100(正常人用户名不可能超过100吧,其实应该尽量减少长度,

提高性能,节约空间)

content -- 即留言内容,类型为text(text和blob的唯一的区别在于text不区分大

小写,而blob对字符的大小写),text类型可以存足够多的数据,足够存好几篇文章了,此

类型不能设置长度,否则报错。

time -- 即发布留言的时间,类型为int,长度为10,保存的数据格式是UNIX时间戳

(即用PHP函数time()得到的10位数字),而不存xxxx-xx-xx这样的格式,为何这样后

面或解释。

ip -- 即留言者的IP,格式为,总共15个字符,所以长度设置为15。

第二步:设计界面

在这我们直接偷蓝色理想的BXNA的界面(

)

HTML和CSS的东西就不详细讲了,不然写10期也写不完这个留言本了(在code文件

夹中有一个html文件,是单独分离出来的)

第三步:开始写程序咯

先要想好程序的整体构架,代码执行的流程等。

先说一下我们做的这个程序的整体运行流程:

程序是根据不同的URL参数(参数m和参数a)来调用不同的模块文件里的不同函数。比如

URL是

?m=user&a=info

,则程序会先包含

mod_

,并调用里面的函数

user_info()

;,这个函数会返回一段HTML(不会直接输出,因为我们要用到

smarty

,最后

一次性输出)或跳到别的页面。所有的请求都是从

这个入口开始,mod文件不

能被直接调用。

下面开始写程序入口部分:

首先建立一些引用的文件,放在includes文件夹下,比如一些常量

,所有

函数

,后缀为PHP,这样通过浏览器直接访问这些文件将看到空白(没有

输出)。

中定义5个常量:

define('DB_HOST' , 'localhost');

define('DB_USER' , 'root');

define('DB_NAME' , 'gb');

//数据库地址

//数据库用户名

//数据库密码

//数据库名

//设置一个常量,可以判断mod文件是否被非法调用

define('DB_PASSWORD' , '12345');

define('IN' , true);

用来存放自定义函数。

在这一期中总共有3个自定义函数。具体代码请查看文件,有详细注释。

print_mysql_error

显示数据库错误信息,并终止脚本

get_client_ip

show_result_page

取得用户IP

显示结果页面,返回HTML

smarty

文件夹全拷过去。(在后面会讲到简单用法)

然后建立首页

文件,具体代码请看附件中的对应文件。

其中比较重要的一些地方。

error_reporting(E_ALL);

//打开所有错误报告,这个是为了调试时用,程序完成时可以把它设置为比较低的级别。

header("Content-Type: text/html; charset=utf-8");

//设置http头,因为MYSQL4.1以后有编码问题,没弄好的话会出乱码,在这强行定义文件编码,

和数据库设置的编码一致

$mod_list

是一个数组,包含合法的模块名(对应URL中的参数

m

),实现根据URL中不同

参数调用对应的功能模块。在这一节中,我们只包含两个模块,即

main

add

,用来显示

留言和添加留言。

根据不同的

$_GET['m']

,调用不同的mod文件。然后根据不同的

$_GET['a']

,调用不同的

函数。

比如

$_GET['m'] == 'main'

$_GET['a'] == 'up'

,则包含文件

mods/mod_

,并


发布者:admin,转转请注明出处:http://www.yc00.com/news/1714800280a2518260.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信