下面是一個簡單的留言板例子,包括創建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.survivalescaperooms.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))
這三句代碼實現了數據庫查詢了,其實也是非常的簡單的,我們只是處理了查詢并沒有任務一些技術處理,如判斷是否有值或一次讀取多少條記錄.
新聞熱點
疑難解答