一個(gè)簡(jiǎn)單的PHP&MYSQL留言板源碼
初學(xué)PHP,花了幾晚上寫(xiě)了個(gè)留言板,請(qǐng)高手指正
p.s.我的空間不支持PHP,不能提供演示了T_T
數(shù)據(jù)庫(kù)結(jié)構(gòu):(庫(kù)名:lyb)
表一: admin
字段: id(int11) name(varchvr) password(varchvr)
表二: lo
字段: id(int11) username(varchvr) sex(varchvr) qq(varchvr) email(varchvr) info(text) ip(varchvr) submit_time(datetime)
1 conn.php(連接數(shù)據(jù)庫(kù)文件)
<?php
mysql_connect("localhost","root","");//連接數(shù)據(jù)庫(kù)
mysql_select_db("lyb");//選擇數(shù)據(jù)庫(kù)
?>
2 header.php(公用頭部文件)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>銀子留言板 Version 1.0</title>
</head>
<link href="css.css" rel="stylesheet" type="text/css" />
<body>
<?php session_start(); ?>
<div id="head">
<div id="head_l">
<ul>
<li><a href="index.php">偶要看留言</a></li>
<li><a href="post.php">偶要發(fā)表</a></li>
<?php
//session_start();//DOFY同學(xué)指出本句前不能有任何輸出內(nèi)容,就此改正
if($_SESSION["key"]==1){//如果獲取的SESSION為1則顯示管理項(xiàng)
?>
<li><a href="adminexit.php">退出管理</a></li>
<?
}
else
{
?>
<li><a href="admin.php">偶要管理</a></li>
<?}?>
</ul>
</div>
<div id="head_r">銀子留言板 Version 1.0</div>
</div>
3 footer.php(公用底部文件)
<?php
$counterFile="conter.xml";
function displayCounter($counterFile){
$fp = fopen($counterFile,"rw");
$num = fgets($fp,5);
$num += 1;
print "<div id=\"footer\">銀子留言板 Version 1.0 您是第 "."$num"." 位無(wú)聊的銀</div>";
exec("rm -rf $counterFile");
exec("echo $num > $counterFile");
}
if(!file_exists($counterFile)){
exec("echo 0 > $counterFile");
}
displayCounter($counterFile);
?>
</body>
</html>
4 index.php(首頁(yè))
<?php
require_once("conn.php");
require_once("header.php");
session_start();
//分頁(yè)代碼開(kāi)始
$pagesize = 10;//設(shè)置每頁(yè)顯示條數(shù)
$rs = mysql_query("select count(*) from lo");//取得記錄總數(shù),計(jì)算總頁(yè)數(shù)用
$myrow = mysql_fetch_array($rs);
$numrows = $myrow[0];//計(jì)算總記錄
$pages = intval($numrows/$pagesize);
if($numrows%$pagesize)$pages++;//設(shè)置頁(yè)數(shù)
if(isset($_GET['page']))
{
$page = intval($_GET['page']);
}
else
{
$page = 1;//設(shè)為第一頁(yè)
}
$offset = $pagesize*($page-1);//計(jì)算記錄偏移量
//分頁(yè)代碼結(jié)束
$sql = "select id,username,sex,qq,email,info,ip,DATE_FORMAT(submit_time, '%Y年%m月%d日 %T' ) from lo order by id desc limit $offset,$pagesize";//用到了DATE-FORMAT格式化日期格式
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if($num>0){
while($row = mysql_fetch_array($result))
{
//echo print_r($row);
if($row[2]=="男")//這個(gè)使性別改成你想要的名稱^_^
{
$sex = "帥鍋";
}
else
{
$sex = "美女";
}
?>
<div id="show">
<p class="num">第 [<?= $row[0] ?>] 條留言<p>
<p class="unline">留言人:<span class="blue"><?= $row[1]?></span> 性別:<?= $sex ?> 留言時(shí)間:<?= $row[7] ?> <? if($row[3]) {?> <a href="http://wpa.qq.com/msgrd?V=1&Uin=<?= $row[3] ?>&Site=http://www.loai.cn&Menu=yes"><img src="img/qq.gif" alt="<?= $row[3]?>" /></a><? } ?><? if($row[4]){ ?> <a href="mailto:<?= $row[4] ?>"><img src="img/email.gif" alt="<?= $row[4]?>" /></a> <? }?><? if($_SESSION["key"]==1){ ?> IP:<?= $row[6] ?> <a href="update.php?wuleying&id=<?= $row[0]?>">更改</a> <a href="delete.php?wuleying&id=<?= $row[0]?>">刪除</a><?}?></a></p>
<p class="blue">留言內(nèi)容:</p>
<div id="show_info"><?= nl2br(htmlspecialchars($row[5])) ?></div>
</div>
<?php
}
}
else
{
echo "<div id=\"show\">無(wú)數(shù)據(jù)......</div>";
}
?>
<div id="show_page">
<p>
<?php
$first=1;
$prev=$page-1;
$next=$page+1;
$last=$pages;
if($page==1&&$pages>1)
{
echo "首頁(yè) | ";
echo "上一頁(yè) | ";
echo "<a href=\"index.php?page=".$next."\">下一頁(yè)</a> | ";
echo "<a href=\"index.php?page=".$last."\">尾頁(yè)</a> | ";
}
elseif($page>=1&&$page!=$pages&&$num>0)
{
echo "<a href=\"index.php?page=".$first."\">首頁(yè)</a> | ";
echo "<a href=\"index.php?page=".$prev."\">上一頁(yè)</a> | ";
echo "<a href=\"index.php?page=".$next."\">下一頁(yè)</a> | ";
echo "<a href=\"index.php?page=".$last."\">尾頁(yè)</a> | ";
}
elseif($page==$pages&&$page!=1)
{
echo "<a href=\"index.php?page=".$first."\">首頁(yè)</a> | ";
echo "<a href=\"index.php?page=".$prev."\">上一頁(yè)</a> | ";
echo "下一頁(yè) | ";
echo "尾頁(yè) | ";
}
elseif($page==$pages)
{
echo "首頁(yè) | ";
echo "上一頁(yè) | ";
echo "下一頁(yè) | ";
echo "尾頁(yè) | ";
}
else
{
echo "首頁(yè) | ";
echo "上一頁(yè) | ";
echo "下一頁(yè) | ";
echo "尾頁(yè) | ";
}
?>
共 <span><?= $pages ?></span> 頁(yè) | 當(dāng)前第 <span><?= $page ?></span> 頁(yè) | 共 <span><?=$numrows ?></span> 條留言</p>
</div>
<?php
mysql_close();
require_once("footer.php");
?>
5 post.php(提交留言頁(yè)面)
<?
require_once("header.php");
?>
<div id="input">
<form method="post" action="input.php" name="form1">
<h1>提交留言</h1>
<p>姓名 :<input type="text" name="name" size="20" class="y" /> </p>
<p>性別 :<input name="sex" type="radio" value="男" checked/> 帥鍋 <input type="radio" name="sex" value="女"/> 美女</p>
<p>Q Q?。?lt;input type="text" name="qq" class="y" /> (可選填)</p>
<p>Email:<input type="text" name="email" class="y" /> (可選填)</p>
<p>留言內(nèi)容:</p>
<p><textarea name="info" rows="5" cols="40"></textarea></p>
<p class="cen">
<input type="submit" value="偶填好了" />
<input type="reset" value="偶要重寫(xiě)">
</p>
<p class="cen1">銀子留言板 Version 1.0</p>
</form>
</div>
</body>
</html>
6 input.php(插入留言)
<?php
require_once("conn.php");
$username = $_POST['name'];
$sex = $_POST['sex'];
$qq = $_POST['qq'];
$email = $_POST['email'];
$info = $_POST['info'];
if (strrpos($username,"<")!==false || strrpos($username,">")!==false||strrpos($username,"@")!==false||strrpos($username,"\"")!==false||strrpos($username,"'")!==false||strrpos($username,"_")!==false)
{
echo "<script>alert('名稱不能有特殊字符!');location.href='post.php';</script>";
exit();
}
if (!ereg("^[0-9]{0,}$",$qq))//用正則檢查QQ格式
{
echo "<script>alert('OICQ信息有錯(cuò)誤!必須是數(shù)字!');location.href='post.php';</script>";
exit();
}
if($email)
{//如果填寫(xiě)了郵箱就用正則檢查郵箱格式
if (!ereg("^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$",$email))
{
echo "<script>alert('email格式不正確!');location.href='post.php';</script>";
exit();
}
}
if(!$username)
{
echo "<script>alert('名稱不能為空哦!');location.href='post.php';</script>";
exit();
}
elseif(!$info)
{
echo "<script>alert('留言不能為空哦!');location.href='post.php';</script>";
exit();
}
else
{
$ip = getenv('REMOTE_ADDR');//獲取客戶端IP地址
$sql = "insert into lo (username,sex,qq,email,info,ip,submit_time) values ('$username','$sex','$qq','$email','$info','$ip',NOW())";
$result = mysql_query($sql);
mysql_close();
echo "<script>alert('提交成功!返回首頁(yè)');location.href='index.php';</script>";
}
?>
7 update.php(修改留言頁(yè))
<?php
session_start();
require_once('conn.php');
require_once('header.php');
if($_SESSION["key"]==1)
{
$id = $_GET['id'];
$sql = "select * from lo where id= ".$id;
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
?>
<div id="update">
<form action="updatepost.php?wuleying&id=<?= $row[0] ?>" method="post">
<h1>修改留言</h1>
<p>姓名:<input type="text" value="<?= $row[1]?>" name="name" class="y"></input></p>
<p>留言:</p>
<p><textarea name="info" rows="5" cols="35"><?= $row[5] ?></textarea></p>
<p class="cen"><input type="submit" value="偶要修改" /></p>
<p class="cen1">銀子留言板 Version 1.0</p>
</form>
<div>
<?php
}
else
{
header('location:index.php');
}
?>
8 updatepost(修改提交頁(yè))
<?php
require_once('conn.php');
$username = $_POST['name'];
$info = $_POST['info'];
$id = $_GET['id'];
//echo $id;
$sql = "update lo set username= '".$username."',info='".$info."' where id=".$id;
mysql_query($sql);
echo "<script>alert('修改成功!');location.href='index.php';</script>";
?>
9 delete.php(刪除留言頁(yè))
<?php
session_start();
require_once('conn.php');
$id=$_GET['id'];
if($_SESSION["key"]==1)
{
$sql = "delete from lo where id=".$id;
mysql_query($sql);
echo "<script>location.href='index.php'</script>";
}
else
{
header('location:index.php');
}
?>
10 admin.php(管理登錄頁(yè))
<?php
require_once('conn.php');
require_once('header.php');
?>
<div id="admin">
<form method="post" action="adminpost.php">
<h1>管理員登錄</h1>
<p>姓名 : <input type="text" name="name" size="20" class="y" /> </p>
<p>密碼 : <input type="password" name="password" size="20" class="y" /> </p>
<p class="cen"><input type="submit" value="管理員登錄" /></p>
<p class="cen1">銀子留言板 Version 1.0</p>
</form>
</div>
11 adminpost.php(管理驗(yàn)證頁(yè))
<?php
session_start();
require_once('conn.php');
$name = $_POST['name'];
$password = $_POST['password'];
$sql = "select * from admin where name='".$name."'";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if (strrpos($name,"<")!==false || strrpos($name,">")!==false||strrpos($name,"@")!==false||strrpos($name,"\"")!==false||strrpos($name,"'")!==false||strrpos($name,"_")!==false)
{
echo "<script>alert('不能有特殊字符!');location.href='admin.php';</script>";
}
if($num)
{//如果用戶存在,就檢查密碼是否正確
$rs = mysql_fetch_array($result);
if($rs[2]!=$password)
{
echo "<script>alert('密碼不正確,請(qǐng)確認(rèn)后輸入!');location.href='admin.php';</script>";
}
else
{//用戶名,密碼都正確,注冊(cè)SESSION變量,然后跳轉(zhuǎn)到首頁(yè)
$_SESSION["key"]=1;
echo "<script>alert('登錄成功!');location.href='index.php';</script>";
}
}
else
{//如果沒(méi)有這個(gè)用戶
echo "<script>alert('沒(méi)有這個(gè)用戶,請(qǐng)確認(rèn)后輸入!');location.href='admin.php';</script>";
}
?>
12 adminexit.php(退出管理頁(yè))
<?php
session_start();
$_SESSION["key"] = 0;//使SESSION不為1,0為游客,1為管理員
header('location:index.php');
?>
只是些基本的東東,像MD5加密,UBB,表情圖片,添加管理員賬號(hào),回復(fù)留言(-_!!)等我都沒(méi)加上去,有興趣的同學(xué)可以完善下,不足的地方請(qǐng)指出^_^
管理員賬號(hào):wuleying 密碼:123456
wuleying_gbook.rar
- PHP實(shí)現(xiàn)基本留言板功能原理與步驟詳解
- 使用PHP開(kāi)發(fā)留言板功能
- PHP實(shí)現(xiàn)的簡(jiǎn)單留言板功能示例【基于thinkPHP框架】
- 使用PHP連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)留言板功能的實(shí)例講解(推薦)
- php+Memcached實(shí)現(xiàn)簡(jiǎn)單留言板功能示例
- 簡(jiǎn)單實(shí)現(xiàn)PHP留言板功能
- 基于thinkPHP框架實(shí)現(xiàn)留言板的方法
- PHP結(jié)合Mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)留言板功能
- php實(shí)現(xiàn)網(wǎng)站留言板功能
- php制作文本式留言板
- php簡(jiǎn)單的留言板與回復(fù)功能具體實(shí)現(xiàn)
- php開(kāi)發(fā)留言板的CRUD(增,刪,改,查)操作
- php xml留言板 xml存儲(chǔ)數(shù)據(jù)的簡(jiǎn)單例子
- 來(lái)自經(jīng)典的打造簡(jiǎn)單的PHP&MYSQL留言板
- 一個(gè)可分頁(yè)的基于文本的PHP留言板源碼
- PHP+MySql實(shí)現(xiàn)一個(gè)簡(jiǎn)單的留言板
相關(guān)文章
php使用phpoffice/phpspreadsheet導(dǎo)出圖片實(shí)例
這篇文章主要為大家介紹了php使用phpoffice/phpspreadsheet導(dǎo)出圖片實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
PHP+jQuery翻板抽獎(jiǎng)功能實(shí)現(xiàn)
在電視節(jié)目中有一種抽獎(jiǎng)形式暫且叫做翻板抽獎(jiǎng),臺(tái)上有一個(gè)墻面,墻面放置幾個(gè)大方塊,主持人或者抽獎(jiǎng)?wù)叻_(kāi)對(duì)應(yīng)的方塊即可揭曉中獎(jiǎng)結(jié)果。類似的抽獎(jiǎng)形式還可以應(yīng)用在WEB中,本文將使用PHP+jQuery為您講解如何實(shí)現(xiàn)翻板抽獎(jiǎng)程序。2015-10-10
php基于curl擴(kuò)展制作跨平臺(tái)的restfule 接口
這篇文章主要介紹了php基于curl擴(kuò)展制作跨平臺(tái)的restfule 接口的相關(guān)資料以及詳細(xì)的代碼,有需要的小伙伴可以參考下。2015-05-05
laravel yajra插件 datatable的使用詳解
這篇文章主要介紹了laravel yajra插件 datatable的使用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
PHP防止post重復(fù)提交數(shù)據(jù)的簡(jiǎn)單例子
這篇文章主要介紹了PHP防止post重復(fù)提交數(shù)據(jù)的簡(jiǎn)單例子,使用session記錄一個(gè)數(shù)值的方法實(shí)現(xiàn),需要的朋友可以參考下2014-06-06
使用PHPExcel實(shí)現(xiàn)數(shù)據(jù)批量導(dǎo)出為excel表格的方法(必看)
下面小編就為大家?guī)?lái)一篇使用PHPExcel實(shí)現(xiàn)數(shù)據(jù)批量導(dǎo)出為excel表格的方法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
thinkPHP自動(dòng)驗(yàn)證、自動(dòng)添加及表單錯(cuò)誤問(wèn)題分析
這篇文章主要介紹了thinkPHP自動(dòng)驗(yàn)證、自動(dòng)添加及表單錯(cuò)誤問(wèn)題分析,結(jié)合案例形式分析了thinkPHP自動(dòng)完成機(jī)制的相關(guān)使用技巧與注意事項(xiàng),需要的朋友可以參考下2016-10-10
PHP中new static()與new self()的比較
在寫(xiě)代碼時(shí)發(fā)現(xiàn) new static(),覺(jué)得實(shí)例化的地方不是應(yīng)該是 new self()嗎?怎么回事?通過(guò)查閱相關(guān)資料才知道具體情況,下面小編整理下方便日后查找2016-08-08

