留言發佈
定義數據庫 conn.php
<?php
//利用mysql_connect()開啓數據庫鏈接,@用於隱藏錯誤
$conn = @mysql_connect("localhost", "root", "") or die("數據庫鏈接錯誤");
//使用mysql_select_db(" ",__)打開數據庫,""裏面是數據庫,__是鏈接標識符
mysql_select_db("bbs", $conn);
//mysql_query()對數據庫的表進行操作;使用GBK中文編碼;
mysql_query("set names 'GBK'");
//function函數作用:在寫字板上顯示的內容會有空格和回車的效果,使用str_replace替換函數
function htmtocode($content){
$content = str_replace("\n","<br>",str_replace(" ", " ", $content));
return $content;
}
?>
用戶輸入: add.php
<?php
include("conn.php"); //把數據庫鏈接
//用isset()可以省略出現的notice提示;
利用$_POST方法接收傳遞過來的參數,判斷接收的是不是submit
if(isset($_POST['submit']))
{
//把輸入的數據存放到數據庫的表中並在數據庫顯示
$in="insert into message (id, user, title, content, lastdate)";
$val="values('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
$sql=$in.$val;
mysql_query($sql); //對數據庫中的表進行操作
echo
"<script language=\"javascript\">
alert('添加成功');history.go(-1)
</script>"; //輸出一個js腳本,彈出“添加成功”,然後回退
}
?>
<SCRIPT language=javascript> <!--提交表單用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>
//action是轉向地址,即form表單需要提交到哪裏;onsubmit:提交事件
<form action="add.php" method="post" name="myform" onsubmit="return CheckPost();">
用戶:<input type="text" size="10" name="user"/><br>
標題:<input type="text" name="title"/><br>
內容:<textarea name="content" cols="60" rows="9"></textarea><br>
<input type="submit" name="submit" value="發佈留言"/>
</form>
列表顯示+分頁顯示 list.php
<?php
include("conn.php");
$pagesize=4; //每一頁中顯示的個數
$page=0; //頁數以0開始
$pageval=0;
$url=$_SERVER["REQUEST_URI"]; //取得當前url的路徑地址
$url=parse_url($url); //解析url,得到url的各項參數
$url=$url['path']; //取parse_url解析出來的path值
$numq=mysql_query("SELECT * FROM message");
$num=mysql_num_rows($numq); //求出message中有多少條信息
if(isset($_GET['page'])) //判斷page(當前頁數)是否存在
{
//當前頁的總信息條數(公式:$page*pagesize,當page=0時)
$page=$_GET['page']*$pagesize;
}
//當顯示的信息個數大於每頁設定顯示的個數,顯示上下頁控制按鈕,反之不顯示
if($num > $pagesize)
{
if($pageval<=0) //上一頁或者下一頁的值不能少於0(即不可能爲負第n頁)
{
$pageval=0;
}
echo "共 $num 條".
"<a href=$url?page= ".($pageval).">上一頁</a> <a href=$url?page= ".($pageval+1).">下一頁</a>";
}
$sql="select * from message limit $page,$pagesize"; //從第1條開始取,取page條信息
$query=mysql_query($sql); //兩句合起來表示執行一個查詢會員的語句
while($row=mysql_fetch_array($query)) //獲取查詢結果
{
?>
<table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
<tr bgcolor="#eff3ff">
<td>標題:<?=$row['title']?> 用戶:<?=$row['user']?></td> <!--$row['']獲取文本框提交的值-->
</tr>
<tr bgcolor="#ffffff">
<td>內容:<? echo htmtocode($row['content'] ) ?></td> <!--htmtocode讓顯示的內容有回車和空格效果-->
</tr>
</table>
<?
}
?>
用戶登錄 login.php
<?php
include("conn.php");
//如果退出登錄,寫入cookie,記錄已退出狀態
if(isset($_GET['out']))
{
//設置cookie變量的名稱爲cookie,cookie的值爲out
setcookie("cookie","out");
//當用戶沒退出時,一直顯示login.php的頁面
echo"<script language=\"javascript\">location.href='login.php';</script>";
}
if(isset($_POST['id']) == 'admin'){ //當用戶以admin登錄時可以進入
$pw=md5($_POST['pw']);
if($pw=='21232f297a57a5a743894a0e4a801fc3')
{
//設置cookie的名稱爲cookie,cookie的值爲ok
setcookie("cookie","ok");
echo "<script language=\"javascript\">location.href='login.php';</script>";
}
}
if(isset($_COOKIE['cookie']) != 'ok') //當cookie的值爲ok時,執行以下語句
{
?>
<SCRIPT language=javascript>
function Checklogin()
{
if(myform.id.value == "")
{
alert("請填寫登錄名");
myform.id.focus();
return false;
}
if(myform.pw.value == "")
{
alert("密碼不能爲空");
myform.pw.focus();
return false;
}
}
</SCRIPT>
<form action="" method="post" name="myform" onsubmit="return Checklogin();">
ID:<input type="text" name="id" /><br>
PW:<input type="password" name="pw" /><input type="submit" name="submit" value="登錄"/>
</form>
<?
}else{
?>
<a href='?out=login'>退出</a>
<?
}
?>