留言本
实现工具--PHP和MySql 5.0
概述:
    介绍留言本的设计思路及流程,在介绍留言本开发过程的同时,对PHP中一些常用函数及编程技巧及思路有全面掌握,而且还可以学到许多PHP的编程技巧,从而全面提高个人的基础及编程能力。
知识:
    1、掌握留言本的设计及流程
    2、掌握Mysql数据库的设计方式和方法
    3、掌握PHP连接MySql数据库的方法
    4、能够灵活运用常用的SQL查询语句
    5、掌握PHP实现数据分页显示的方法
功能:
    留言本除具有的功能--留言、查看、回复、查询、删除
    另外还有管理员管理功能

业务流程:                                          
                                                  是        
    用户-->填写用户注册信息-->判断用户信息是否合法-->保存用户注册信息-->用户注册成功
                    ^                |                                        |            
                    |        否      |                                        |
                     ---------------                                          |
                                            是                                V                                             
删除回复留言<-----回复其他留言<-----发表留言<---判断登录信息是否合法<---填写登录信息        
    |                                                        |        否        ^
     ————>退出登录                                       -------------------- 
 

例子目录:
\                       ---根目录
│  admin_browse.php     ---版主浏览页
│  bottom.php           ---网页版权页文件
│  cale.php             ---存储万年历文件
│  calendar.js          ---万年历文件
│  chklogin.php         ---验证自主登录文件
│  chkuserlogin.php     ---用户身份验证文件
│  deleteleaveword.php  ---删除留言文件
│  deletereplyword.php  ---删除留言回复文件
│  editleaveword.php    ---编辑用户留言页面
│  edlitreplyword.php   ---编辑用户留言回复页面
│  filterwords.txt      ---存储敏感词文件
│  function.php         ---系统功能函数文件
│  gllogout.php         ---版主退出页
│  index.php            ---留言本主页
│  leaveword.php        ---留言页面
│  left.php             ---留言本左侧导航页
│  login.php            ---版主登录页面
│  logout.php           ---用户退出页
│  lookleaveword.php    ---查看留言页
│  lookxx.php           ---详细信息页面
│  main.php             ---留言主题页
│  readme.txt           
│  reg.php              ---用户注册页面
│  reply.php            ---用户回复留言页面
│  saveleaveword.php    ---保存用户留言页面
│  savereg.php          ---保存用户回复留言页面
│  savereply.php        ---保存用户回复留言页面
│  searchword.php       ---查询用户留言页面
│  top.php              ---网站头部Banner页
│  
├─conn                  ---用于存储网站使用的数据库链接文件
│      conn.php
│      
├─css                   ---存放CSS样式文件的目录
│      style.css
│      
├─data                  ---数据库的备份
│  └─db_guestbook       ---数据库名称
│          db.opt
│          tb_adm.frm
│          tb_adm.MYD
│          tb_adm.MYI
│          tb_leaveword.frm
│          tb_leaveword.MYD
│          tb_leaveword.MYI
│          tb_replyword.frm
│          tb_replyword.MYD
│          tb_replyword.MYI
│          tb_user.frm
│          tb_user.MYD
│          tb_user.MYI
│          
└─p_w_picpaths                ---用于存储网站图片资源文件
    │  banner.jpg
    │  banner_r1_c1.jpg
    │  banner_r2_c1.jpg
    │  biao.gif
    │  bottom.gif
    │  dh_back.gif
    │  dh_back_1.gif
    │  email.gif
    │  gly.gif
    │  ip.gif
    │  line_down.gif
    │  mark_0.gif
    │  mark_1.gif
    │  qq.gif
    │  Thumbs.db
    │  
    └─face
            0.gif
            1.gif
            10.gif
            11.gif
            2.gif
            3.gif
            4.gif
            5.gif
            6.gif
            7.gif
            8.gif
            9.gif
            Thumbs.db
分析:
    
数据库分析
    采用MySql数据库
    数据库名:db_guestbook
    数据表:tb_adm            ---版主信息
            tb_leaveword    ---留言信息
            tb_replyword    ---回复信息
            tb_user            ---用户信息
用户信息(tb_user)
    |---编号 ID
    |---用户名Usermc
    |---密码Userpwd
    |---邮箱Email
    |---头像Face
    |---真实姓名truename
    |---注册时间regtime

留言信息(tb_leaveword)
    |---编号ID
    |---留言者Userid
    |---留言主题Createtime
    |---留言内容Content
    |---留言时间Createtime
    |---留言者IDUserid

回复信息(tb_replyword)
    |---编号ID
    |---回复者ID Leave_id
    |---回复主题Titles
    |---回复内容Contents
    |---回复时间Createimes
    |---回复留言IDUserid

版主信息(tb_adm)
    |---编号ID
    |---版主名称Userword
    |---版主密码password
    |---版主邮箱Email
    |---版主IP IP
创建数据库语言
    创建数据库:
        CREATE DATABASE `db_guestbook` /*!40100 DEFAULT CHARACTER SET utf8 */
    创建数据表语句:
     CREATE TABLE `tb_adm` (
  `id` int(5) NOT NULL,
  `userword` varchar(20)  NOT NULL,
  `password` varchar(20)  NOT NULL,
  `email` varchar(30)  NOT NULL,
  `ip` varchar(10)  NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `tb_leaveword` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `userid` int(8) NOT NULL,
  `createtime` datetime NOT NULL,
  `title` varchar(100)  NOT NULL,
  `content` text  NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

CREATE TABLE `tb_replyword` (
  `userid` int(4) NOT NULL,
  `createtimes` datetime NOT NULL,
  `titles` varchar(100)  NOT NULL,
  `contents` text  NOT NULL,
  `leave_id` int(4) NOT NULL,
  `id` int(4) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8

CREATE TABLE `tb_user` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `usernc` varchar(50)  NOT NULL,
  `truename` varchar(50)  NOT NULL,
  `email` varchar(50)  NOT NULL,
  `qq` varchar(20)  NOT NULL,
  `tel` varchar(20)  NOT NULL,
  `ip` varchar(15)  NOT NULL,
  `address` varchar(250)  NOT NULL,
  `face` varchar(50)  NOT NULL,
  `regtime` datetime NOT NULL,
  `sex` varchar(2)  NOT NULL,
  `usertype` int(2) NOT NULL,
  `userpwd` varchar(50)  NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

修改编码
    原来书中的数据库和表编码是gb2312
    现在配置的环境里学习这个例子 需要修改数据库的编码方式。

    在网上搜索以的解决方案:
    1.如果安装mysql的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MYSQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题
    2.修改数据库编码,如果是数据库编码不正确: 可以在phpmyadmin 执行如下命令:
        ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
        以上命令就是将test数据库的编码设为utf8
    3.修改表的编码:
        ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
        以上命令就是将一个表category的编码改为utf8
    4.修改字段的编码:
        ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
        以上命令就是将test表中 dd的字段编码改为utf8
    5.如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可

注意:在命令下可以利用show create table table_name;
    来查看建表的语句