Python學習先告一段落,最近一直在研究PHP,剛好最近看到留言板制作,所以整理了點自己的心得寫了出來,供大家參考
PS:附件有代碼包供大家下載.
系統環境: WAMP
IDE: NETBEANS
SQL工具: NAVICAT
顯示效果
如圖:
1.導入MYSQL數據:
將如下SQL語句導入庫,假定庫名稱為bbs,這裡保證庫與表字段的編碼都為UTF-8模式
-------------------------------------------
CREATE TABLE `message` (
`id` tinyint(1) NOT NULL auto_increment,
`user` varchar(25) NOT NULL,
`title` varchar(50) NOT NULL,
`content` tinytext NOT NULL,
`lastdate` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--------------------------------------------
2.部分PHP代碼
add.php
------------------------------------------------
<?
//加載conn.php文件
include("conn.php");
//加載head.php文件
include("head.php");
//提交表單到數據庫
if($_POST['submit']){
$sql = "insert into message(id,user,title,content,lastdate) " .
"values('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
mysql_query($sql);
echo "<script language=\"javascript\">alert('添加成功');history.go(-1)</script>";
}
?>
<!--利用JS對表單輸入進行字符限制-->
<SCRIPT language=javascript>
function CheckPost() {
if (myform.user.value==""){
alert("請填寫用戶名");
myform.user.focus();
return false;
}
if (myform.title.value.length<5){
alert("標題不能少於5個字符");
myform.title.focus();
return false;
}
if (myform.content.value==""){
alert("必須要填寫留言內容");
myform.content.focus();
return false;
}
}
</SCRIPT>
<!--HTML表單結構-->
<form action="add.php" method="post" name="myform" onsubmit="return CheckPost();">
用戶: <input type="text" size="10" name="user"/><br>
標題: <input type="text" name="title" value="value" size="40" maxlength="40"/><br>
內容: <textarea name="content"></textarea><br/>
<input type='submit' name='submit' value="發布留言"/>
</form>
------------------------------------------------
head.php
-------------------------------------------------
<!--HTML頭導航鏈接-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<link href=\'#\'" /css.css" rel="stylesheet" type="text/css">
<b><a href=\'#\'" /a> | <a href="list.php">浏覽留言</a> | <a href="login.php">登陸</a></b>
<hr size="1">
-------------------------------------------------
list.php
-------------------------------------------------
<?
//加載conn.php文件
include("conn.php");
//加載head.php文件
include("head.php");
//設置分頁值為5
$pagesize=5;
//取得除域名外後面完整的地址路徑
$url=$_SERVER["REQUEST_URI"];
//取得該固定鍵值[path][query]的url數組
$url=parse_url($url);
//print_r($url);
//取得url的[path]路徑值
$url=$url[path];
//取得test表信息
$numq = mysql_query("select * from message");
//取得test表內容的行數
$num = mysql_num_rows($numq);
//判斷是否能取到page參數值
if($_GET[page]){
//將該值傳給pageval
$pageval=$_GET[page];
//計算page值,供SQL語句使用
$page=($pageval-1)*$pagesize;
//等價於 $page = $page.',' 意思就是將page參數值與,連接起來
$page.=",";
}
//判斷數據庫條目總數大於頁數,顯示分頁
if($num > $pagesize){
//判斷上一頁和下一頁的值若小於0,則按照0處理
if($pageval<=1)
$pageval=1;
//顯示分頁
echo "共 $num 條".
//.(...).用來連接變量名
" <a href=$url?page=".($pageval-1).">上一頁</a> <a href=$url?page=".($pageval+1).">下一頁</a>";
}
?>
<!--HTML留言列表結構-->
<table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
<?
$sql = "select * from message order by id desc limit $page $pagesize";
$query = mysql_query($sql);
while($row=mysql_fetch_array($query)){
?>
<tr bgcolor="#eff3ff">
<td>標題:<?=$row[title]?> 用戶:<?=$row[user]?></td>
</tr>
<tr bgColor="#ffffff">
<td>內容:<? echo htmtocode($row[content]); ?></td>
<tr bgColor="#ffffff">
<td>時間:<?=$row[lastdate]?></td>
</tr>
<?
}
?>
</table>
-------------------------------------------------
conn.php
--------------------------------------------------
<?
//登錄MYSQL數據庫
$conn = @ mysql_connect("localhost", "root", "") or die("數據庫鏈接錯誤");
//進入BBS庫
mysql_select_db("bbs", $conn);
//使用UTF-8中文編碼傳輸數據流
mysql_query("set names 'UTF8'");
//修改空格和回車編碼為HTML可識別編碼
function htmtocode($content){
$content = str_replace("\n","<br>", str_replace(" ", " ", $content));
return $content;
}
?>
--------------------------------------------------
login.php
---------------------------------------------------
<?
//加載conn.php文件
include("conn.php");
//判斷是否退出,並標記cookie為out,返回登錄頁
if($_GET[out]){
setcookie("cookie","out");
echo "<script language=\"javascript\">location.href='login.php';</script>";
}
//提交表單判斷登錄ID是否為admin,密碼是否匹配'PHP'的MD5值,並標記cookie為ok
if($_POST[id] =='admin'){
$pw=md5($_POST[pw]);
if ($pw=='e1bfd762321e409cee4ac0b6e841963c'){
setcookie("cookie","ok");
//刷新登錄頁面使cookie標記值生效.
echo "<script language=\"javascript\">location.href='login.php';</script>";
}
}
//加載head.php文件
include("head.php");
//提交表單判斷cookie標記值不為ok,則顯示登錄頁,否則顯示退出頁
if($_COOKIE['cookie']!='ok'){
?>
<!--利用JS對登錄字符進行限制-->
<SCRIPT language=javascript>
function Checklogin(){
if (myform.id.value ==""){
alert("請填寫登錄名");
myform.id.focus();
return false;
}
if (myform.id.value !=="admin"){
alert("用戶名錯誤");
myform.id.focus();
return false;
}
if (myform.pw.value ==""){
alert("密碼不能為空");
myform.pw.focus();
return false;
}
}
}
</SCRIPT>
<!--HTML登錄頁-->
<form action="" method="post" name="myform" onsubmit="return Checklogin();">
用戶名: <INPUT type="text" name="id" /><br>
密 碼: <INPUT type="password" name="pw" />
<input type="submit" name="submit" value="登陸">
</form>
<?
}else{
?>
<!--HTML退出頁-->
<a href='?out=login'>退出</a>
<?
}
?>
PHP+MySQL留言板開發例子源碼下載:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2014年資料/1月/13日/PHP+MySQL留言板開發例子
下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm