PHP+MySQL写留言本
留言本最基本的功能就是: 1:用户写留言
2:把数据写入数据库 3:显示所有留言
下面就开始制作我的留言本
首先在PHPMYADMIN下建立一 guest_book数据库 然后在该数据库下建立一个contents的表 该表下建立两个字段 分别为 name 和 content SQL语句如下:
CREATE TABLE `contents` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) NOT NULL default '\"no name\"', `content` mediumtext NOT NULL, PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=6
好了数据库建好了 ~~`下面开始写程序了
该程序包含三个页面post.htm(留言提交页面) index.php(留言显示页面) updata.php(把数据写入数据库的页面) post.htm代码如下:
留言本 updata.php页面代码如下:
$name=$_POST['user_name']; $content=$_POST['post_contents'];
$conn=mysql_connect(\"localhost:6033\
mysql_query(\"set names utf-8\"); //解决中文乱码问题 mysql_select_db(\"guest_book\");
$exec=\"insert into contents (name,content) values
('\".$_POST['user_name'].\"','\".$_POST['post_contents'].\"')\"; $result=mysql_query($exec); ?>
index.php页面代码如下:
$conn=mysql_connect (\"localhost:6033\打开mysql 服务器连接 mysql_select_db(\"guest_book\"); //链接数据库
mysql_query(\"set names utf-8\"); //解决中文乱码问题 $exec=\"select * from contents\"; //sql语句
$result=mysql_query($exec); //执行sql语句,返回结果 while($rs=mysql_fetch_object($result)) {
echo \"
| 姓名:\".$rs->name.\" |
\";echo \"
| 留言:\".$rs->content.\" |
\"; }?>
至于分页,页面转向等功能暂时不用上去.为得就是使程序尽量精简.麻雀虽小.但是留言本的核心功能全在这里了. 其中还需要再多说几句
$conn=mysql_connect (\"localhost:6033\
这一句很重要 一开始我用的是 $conn=mysql_connect (\"127.0.0.1\
怎么弄都不见数据进数据库去~~~~但是又没报错~~后来看了半天才知道 原来哪个127的地方应该在PHPMYADMIN里看服务器名一击数据库端口是什么~~~还有ROOT那里就是mysql用户名了,后面的是密码 还有个问题就是 汉字乱码问题
在$result=mysql_query($exec); 语句前面加上mysql_query(\"set names gb2312\");或者mysql_query(\"set names utf-8\");
可疑防止提交进数据库的汉字以乱码形式存放在数据库中 以及防止 从数据库中查询出来的包含汉字的数据以乱码显示
有时候尽管这样设置了后还是无法正常显示汉字~~~~
我就遇见了这样的情况,由于我是在本地调试的,每次都要把浏览器上的那个字符编码调到utf-8才能正常显示汉字
默认的编码总是ISO-8859-1 于是google了一下`~原来是apache设置不对.于是找到 httpd.conf 设置文件
把 default-character-set=ISO-8859-1 改为 default-character-set=utf-8
然后再 service httpd restart 重启appache 清除所有cookies与历史记录~~~然后问题就解决了
------------------------------------------------------------------------------------
今天再稍微改善下加一个管理员管理留言的功能~~~这里最主要要用到
$_SESSION['item'] 这个东东~~` 好了`~`先把昨天的稍微改一下 再把这个功能加进去~~~
首先我们在首页同时显示留言,以及留言添加框~~这样使留言者方便使用`~`
不说多了`~把代码贴出来再说: index.php
留言本 留言管理
$conn=mysql_connect (\"localhost:6033\打开MySQL服务器连接 mysql_select_db(\"guest_book\"); //链接数据库
mysql_query(\"set names GB2312\"); //解决中文乱码问题 $exec=\"select * from contents\"; //sql语句
$result=mysql_query($exec); //执行sql语句,返回结果 while($rs=mysql_fetch_object($result)) {
echo \"
| 姓名:\".$rs->name.\" |
\";echo \"
| 留言:\".$rs->content.\" |
\"; echo
\".............................................................................................................................\"; }
mysql_close(); ?>
updata.php页再加个header(\"location:index.php\");语句重定向到主页面`~~ updata.php
$name=$_POST['user_name']; $content=$_POST['post_contents'];
$conn=mysql_connect(\"localhost:6033\
mysql_query(\"set names GB2312\"); //解决中文乱码问题 mysql_select_db(\"guest_book\");
$exec=\"insert into contents (name,content) values ('\".$_POST['user_name'].\"','\".$_POST['post_contents'].\"')\"; $result=mysql_query($exec); mysql_close();
header(\"location:index.php\"); ?>
HOHO~~~是不是用起来有那么回事了`~~
好的`~下面再加个管理功能 ~~那么这个留言本就更加强大了`~
留言管理模块 分为 管理员登录页admin_login.htm ,管理员验证页admin_check.php 后台管理首页admin_index.php 先农这个登录页面admin_login.htm
这个简单得再简单不过了,我就不说什么了`~~ admin_check.php管理员验证
session_start();
$admin_name=$_POST['admin_name'];
$admin_password=$_POST['admin_password']; $conn=mysql_connect (\"localhost:6033\mysql_select_db(\"guest_book\");
$exec=\"select * from admin where admin_name='\".$admin_name.\"'\"; $result=mysql_query($exec);
if ($rs=mysql_fetch_object($result))
{ if ($rs->admin_password==$admin_password) {$_SESSION['admin']=\"OK\";
header(\"location:admin_index.php\"); }
else echo\"密码不正确\"; }
else echo\"用户名不正确\";
mysql_close(); ?>
这里最主要的就是session~~~凡事要用到session的地方.在页面最开始处要加上这一句session_start();否则 就无法使用~~那么session究竟是什么东东呢?由于网页的传输方式(也就是http这个东西) 不是永久连接的~~`所以服务器无法在两个不同页面之间传送变量`~~唉.我一下子也说不清楚`~~还是看看这里http://www.chinalinuxpub.com/read.php?wid=87
上面有很详细的介绍.反正就是用这个东西来验证管理员的身分了`~~ 好了下面说后台管理主页面admin_index.php
session_start();
if($_SESSION['admin']==\"OK\")
{
$conn=mysql_connect (\"localhost:6033\mysql_select_db(\"guest_book\"); $exec=\"select * from contents\"; $result=mysql_query($exec);
while($rs=mysql_fetch_object($result)) {
echo \"
| 姓名:\".$rs->name.\" |
\";echo \"
| 留言:\".$rs->content.\" |
\"; echo \"
id.\" >修改 id.\" >删除\"; }
echo \"
回首页\"; }
mysql_close(); ?>
这 里最主要是这一句echo \"id.\" >修改 id.\" >删除\";
用来向所连接到的地址传递参数~~看看下面的就知道有什么用了 modify.php
session_start();
if($_SESSION['admin']==\"OK\") {
$conn=mysql_connect (\"localhost:6033\mysql_select_db(\"guest_book\");
$exec=\"select * from contents where id=\".$_GET['id']; /*这里这个$_GET['id']就是取得从那个连接传递过来的参数拉 */ $result=mysql_query($exec); $rs=mysql_fetch_object($result); $name=$rs->name; $content=$rs->content; $id=$rs->id; ?>
}
mysql_close(); ?>
这里这个=$id> 其实就等于 echo $id
再看看最终的数据修改实现页面modify2.php
session_start();
if($_SESSION['admin']==\"OK\") {
$conn=mysql_connect (\"localhost:6033\mysql_select_db(\"guest_book\");
$exec=\"select * from contents where id=\".$_GET['id'];
$exec=\"update contents set content='\".$_POST['post_contents'].\"' where id=\".$_POST['id'];
$result=mysql_query($exec); }
mysql_close();
header(\"location:admin_index.php\"); ?>
最后就是删除功能的实现了 delete.php
session_start();
if($_SESSION['admin']==\"OK\") {
$conn=mysql_connect (\"localhost:6033\mysql_select_db(\"guest_book\");
$exec=\"delete from contents where id=\".$_GET['id']; mysql_query($exec); mysql_close();
header(\"location:admin_index.php\"); } ?>
///////////////////////////////////////////////////////////////////////////////////////////////////////////// 今天用到的知识如下:
1: session_start(); $_SESSION['变量名']=$变量名 或者 某一特定值
2: aaa用这个方法来传递参数 同时用 $_GET['var']来接收传递过来的值
3: 数据修改 :$exec=\"update tablename set item1='\".$_POST['item1'].\"' where ...\"; 4: 数据删除 :$exec=\"delete from tablename where...\";