首先資料庫的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.111cn.net 戶:<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'] && !empty($_POST['title'])&& !empty($_POST['user'])&& !empty($_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 } ?> |
原理分析
先來看看入庫吧,這個就是最基礎的沒有進行任何資料判斷處理了
代碼如下 |
複製代碼 |
if($_POST['submit'] && !empty($_POST['title'])&& !empty($_POST['user'])&& !empty($_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)) |
這三句代碼實現了資料庫查詢了,其實也是非常的簡單的,我們只是處理了查詢並沒有任務一些技術處理,如判斷是否有值或一次讀取多少條記錄。