下面是一个简单的留言板例子,包括创建mysql数据表与连接mysql数据库然后对数据表的查询,提交保存数据与数据删除功能,这其实就是一个最基本的留言板功能了,下面直接上例子.
首先数据库的SQL如下:
- -- -- 表的结构 `message` --
- CREATE TABLE `message` ( `id` int(10) NOT NULL auto_increment, `user` varchar(25) character set utf8 NOT NULL,
- `title` varchar(50) character set utf8 NOT NULL, `content` tinytext character set utf8 NOT NULL, `lastdate` date NOT NULL,
- PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=11 ;
程序代码如下,首先创建config.php,代码如下:
- <?php $conn = @mysql_connect("localhost","root","") or die("数据库连接出错!");
- mysql_select_db("lyb",$conn); mysql_query("set names utf8"); ?>
- 然后创建index.php,代码如下:
- 代码如下 复制代码
- <form action="index.php" method="post"> <table border="1" align="center" > 用 www.Vevb.com 户:<input type="text" name="user" /><br>
- 标题:<input type="text" name="title" /><br /> 内容:<textarea name="content"></textarea><br />
- <input type="submit" name="submit" value="php教程" /></table> </form>
接受提交数据保存到数据表中,代码如下:
- <?php include("config.php");
- if($_POST['submit'] && !emptyempty($_POST['title'])&& !emptyempty($_POST['user'])&& !emptyempty($_POST['content']))
- { $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
- mysql_query($sql); //echo "成功"; }
- ?>
查询留言记录,代码如下:
- <table width=500 border="1" align="left" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
- <?php $sql="select * from message order by id desc"; $query=mysql_query($sql); while($row=mysql_fetch_array($query)){ ?>
- <tr bgcolor="#eff3ff"> <td>标题:<?php echo $row[title];?> 用户:<?php echo $row[user];?></td> </tr> <tr bgColor="#ffffff">
- <td>内容:<?php echo $row[content];?></td> </tr>
- <?php } ?>
原理分析,先来看看入库吧,这个就是最基础的没有进行任何数据判断处理了,代码如下:
- <?php
- if($_POST['submit'] && !emptyempty($_POST['title'])&& !emptyempty($_POST['user'])&& !emptyempty($_POST['content']))
- { $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
- mysql_query($sql); //echo "成功"; }?>
判断用户提交过来的数据是不是不为空
$_POST['submit'] && !empty($_POST['title'] && !empty($_POST['user'])&& !empty($_POST['content'],这里主要是介绍到所有需要填写的不为空了.
安全分析,这个很容易给大家实现sql注入了,因为没进行任何过滤处理了哦,只要网随便搜索一段注入代码就可以成功注入了,同时可以重复无限提交数据,代码如下:
- { $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
这一是保存到数据库,但没进行任何安全处理,一般情况我们不提倡直接把$_POST[user]入库的,是需要经过处理之后再进入变量传递进行入库哦.
查询数据库,代码如下:
- $sql="select * from message order by id desc";
- $query=mysql_query($sql);
- while($row=mysql_fetch_array($query))
这三句代码实现了数据库查询了,其实也是非常的简单的,我们只是处理了查询并没有任务一些技术处理,如判断是否有值或一次读取多少条记录.
新闻热点
疑难解答