PHP+MySQL 制作簡單的留言本
更新時(shí)間:2009年11月02日 15:28:30 作者:
程序安裝界面 用于創(chuàng)建數(shù)據(jù)庫、表,以及動態(tài)生成config.php文件.

留言顯示頁面:比上一個例子增加了分頁和留言回復(fù)的功能

主要代碼:
install/index.php:程序安裝頁面
復(fù)制代碼 代碼如下:
<?php
if($_GET["action"]!=1)
{
?>
<form method="post" action="index.php?action=1">
<table border="1">
<tr>
<td>MySQL主機(jī)名:</td>
<td><input type="text" name="host" value="localhost"></td>
</tr>
<tr>
<td>MySQL用戶名:</td>
<td><input type="text" name="user" value="root"></td>
</tr>
<tr>
<td>MySQL密碼:</td>
<td><input type="password" name="password" value=""></td>
</tr>
<tr>
<td>數(shù)據(jù)庫名稱:</td>
<td><input type="text" name="database" value="ruizhi_messageboard"></td>
</tr>
<tr>
<td>留言本每頁記錄數(shù):</td>
<td><input type="text" name="pagenum" value="10"></td>
</tr>
<tr>
<td>管理員賬號:</td>
<td><input type="text" name="admin_name" value="admin"></td>
</tr>
<tr>
<td>管理員密碼:</td>
<td><input type="text" name="admin_password" value="admin"></td>
</tr>
<tr>
<td>留言本標(biāo)題:</td>
<td><input type="text" name="boardname" value="RUIZHINET留言本"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="submit" value="確定安裝"> <input type="button" name="submit" value="關(guān)閉頁面" onclick="window.close()"></td>
<td></td>
</tr>
</table>
</form>
<?php
}else{
@set_time_limit(1000);
$lockfile = "install.lock";
$host="localhost";
$user="root";
$password="";
$database="ruizhi_messageboard";
$pagenum=10;
$admin_name="admin";
$admin_password="123456";
$boardname="RUIZHINET留言本";
if($_POST["host"]!=""){
$host=$_POST["host"];
}
if($_POST["user"]!=""){
$user=$_POST["user"];
}
if($_POST["password"]!=""){
$password=$_POST["password"];
}
if($_POST["database"]!=""){
$database=$_POST["database"];
}
if($_POST["pagenum"]!=""){
$pagenum=$_POST["pagenum"];
}
if($_POST["admin_name"]!=""){
$admin_name=$_POST["admin_name"];
}
if($_POST["admin_password"]!=""){
$admin_password=$_POST["admin_password"];
}
if($_POST["boardname"]!=""){
$boardname=$_POST["boardname"];
}
if(file_exists($lockfile)){
exit("已經(jīng)安裝過了,如果要重新安裝請先刪除install/install.lock");
}
$conn=mysql_connect($host,$user,$password);
if($conn){
$sql_drop_database="DROP DATABASE IF EXISTS `".$database."`";
$sql_create_database="CREATE DATABASE `".$database."`";
$sql_create_table_messageboard="CREATE TABLE `messageboard` (
`id` int(11) NOT NULL auto_increment,
`author` varchar(15) NOT NULL,
`title` varchar(30) NOT NULL,
`smiles` varchar(30) NOT NULL,
`content` mediumtext,
`photo` varchar(30) NOT NULL,
`addtime` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1";
$sql_create_table_reply="CREATE TABLE `reply` (
`id` int(11) NOT NULL auto_increment,
`msgid` int(11) NOT NULL,
`content` mediumtext,
`addtime` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1";
if(mysql_query($sql_drop_database,$conn)){
if(mysql_query($sql_create_database,$conn)){
mysql_select_db($database,$conn);
if(mysql_query($sql_create_table_messageboard,$conn) && mysql_query($sql_create_table_reply,$conn)){
$config_file="../config.php";
$config_strings="<?php\n";
$config_strings.="\$boardname=\"".$boardname."\";\n";
$config_strings.="\$host=\"".$host."\";\n";
$config_strings.="\$user=\"".$user."\";\n";
$config_strings.="\$password=\"".$password."\";\n";
$config_strings.="\$database=\"".$database."\";\n";
$config_strings.="\$pagenum=\"".$pagenum."\";\n";
$config_strings.="\$admin_name=\"".$admin_name."\";\n";
$config_strings.="\$admin_password=\"".$admin_password."\";\n";
$config_strings.="\$conn=mysql_connect(\$host,\$user,\$password);\n";
$config_strings.="mysql_select_db(\$database,\$conn);\n";
$config_strings.="?>";
if($fp=fopen($config_file,"wb")){
if(fwrite($fp,$config_strings)){
if($fp2 = fopen($lockfile, 'w'))
{
fwrite($fp2,'1212');
fclose($fp2);
}
echo "安裝成功!配置文件為:config.php,您可以手工修改該文件";
echo "\n<a href='../index.php'>進(jìn)入系統(tǒng)首頁</a>";
}else{
exit("文件寫入失敗");
}
fclose($fp);
}
}else{
exit("不能執(zhí)行CREATE TABLE語句:".$sql_create_table);
}
}else{
exit("不能執(zhí)行CREATE DATABASE語句:".$sql_create_database);
}
}else{
exit("不能執(zhí)行DROP DATABASE語句:".$sql_drop_database);
}
}else{
exit("連接數(shù)據(jù)庫失敗,請檢查MySQL主機(jī)名、用戶名和密碼");
}
}
生成的config.php文件:
復(fù)制代碼 代碼如下:
<?php
$boardname="RUIZHINET留言本";
$host="localhost";
$user="root";
$password="";
$database="ruizhi_messageboard";
$pagenum="10";
$admin_name="admin";
$admin_password="admin";
$conn=mysql_connect($host,$user,$password);
mysql_select_db($database,$conn);
?>
index.php:程序顯示頁面
復(fù)制代碼 代碼如下:
<?php
if(!$_GET["page"]){
$page=1;
}else{
$page=$_GET["page"];
}
$sql="SELECT id FROM messageboard";
$result=mysql_query($sql,$conn);
$row_num=mysql_num_rows($result);
$page_count=ceil($row_num/$pagenum);
echo "當(dāng)前共有".$row_num."條留言";
echo " 共分".$page_count."頁顯示";
echo " 當(dāng)前為第".$page."頁";
?>
<p>
<?php
if($row_num==0){
echo "暫時(shí)沒有留言";
}else{
?>
<table border="1" width="700">
<?php
$offset=($page-1)*$pagenum;
$sql2="SELECT * FROM messageboard ORDER BY id DESC LIMIT $offset,$pagenum";
$result2=mysql_query($sql2,$conn);
while($row=mysql_fetch_array($result2)){
$offset++;
echo "<tr>";
echo "<td align=left bgcolor=#CCCCFF>";
echo $offset.".<img src='smiles/".base64_decode($row[smiles])."'>";
echo base64_decode($row[title])." - ".base64_decode($row[author])." [".date("Y年m月d日",$row[addtime])."] ";
if(isset($_SESSION["admin_name"]) && $_SESSION["admin_name"]!=""){
echo "<a href=del.php?id=".$row["id"].">刪除 | </a>";
echo "<a href=reply.php?id=".$row["id"].">回復(fù)</a>";
}
echo "</td></tr>";
echo "<tr><td align=left>".base64_decode($row["content"])."</td></tr>";
if($row["photo"]!="NONE")
{
echo "<tr><td align=left><img src='upfile/".base64_decode($row["photo"])."'></td></tr>";
}
$sql3="SELECT * FROM reply WHERE msgid=$row[id] ORDER BY id DESC";
$result3=mysql_query($sql3,$conn);
while($row3=mysql_fetch_array($result3)){
echo "<tr><td align=left bgcolor=#99CCFF>回復(fù):".date("Y年m月d日",$row3[addtime]);
if(isset($_SESSION["admin_name"]) && $_SESSION["admin_name"]!=""){
echo "<a href=delreply.php?id=".$row3["id"].">刪除</a>";
}
echo "</td></tr>";
echo "<tr><td align=left>".base64_decode($row3[content])."</td></tr>";
}
}
?>
<?php
if($page_count>1){
$prev_page=$page-1;
$next_page=$page+1;
if($page<=1){
echo "第一頁 | ";
}else{
echo "<a href='index.php?page=1'>第一頁</a> | ";
}
if($prev_page<1){
echo "上一頁 | ";
}else{
echo "<a href='index.php?page=".$prev_page."'>上一頁</a> | ";
}
if($next_page>$page_count){
echo "下一頁 | ";
}else{
echo "<a href='index.php?page=".$next_page."'>下一頁</a> | ";
}
if($page>=$page_count){
echo "最后一頁";
}else{
echo "<a href='index.php?page=".$page_count."'>最后一頁</a>";
}
}
?>
</table>
<?php
}
?>
<?php
if(isset($_SESSION["admin_name"]) && $_SESSION["admin_name"]!=""){
?>
<p><a href="logout.php">退出管理</a></p>
<?php
}else{
?>
<p><a href="login.php">登陸管理</a></p>
<?php
}
?>
saveadd.php:保存留言
復(fù)制代碼 代碼如下:
<?php
if(!$_POST["author"] || !$_POST["content"])
{
echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
echo "你沒有填寫留言姓名或內(nèi)容,2秒鐘返回首頁";
exit();
}else{
$imgflag=0;
function random($length)
{
$hash = 'IMG-';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
echo (double)microtime() * 1000000;
for($i = 0; $i < $length; $i++)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}
if($_FILES["upfile"]["name"]!=""){
$uploaddir="upfile/";
$type=array("jpg","gif","bmp","jpeg","png");
if(!in_array(strtolower(fileext($_FILES['upfile']['name'])),$type))
{
echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
$text=implode(",",$type);
echo "您只能上傳以下類型文件: ",$text,"<br>";
exit();
}
else
{
$filename=explode(".",$_FILES['upfile']['name']);
do
{
$filename[0]=random(10);
$randname=implode(".",$filename);
$uploadfile=$uploaddir.$randname;
} while(file_exists($uploadfile));
if (move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile)){
echo "上傳圖片成功";
$imgflag=1;
}
else{
echo "上傳圖片失??!";
$imgflag=0;
}
}
}
$author=base64_encode($_POST["author"]);
$content=base64_encode(ereg_replace("\r\n","<br>",htmlspecialchars($_POST["content"])));
$smiles=base64_encode($_POST["smiles"]);
if($_POST["title"]){
$title=base64_encode($_POST["title"]);
}else{
$title=base64_encode("無標(biāo)題");
}
$addtime=time();
if($imgflag==1){
$photo=base64_encode($randname);
}else{
$photo="NONE";
}
//保存數(shù)據(jù)
$sql="INSERT INTO messageboard(author,title,smiles,content,photo,addtime) VALUES('$author','$title','$smiles','$content','$photo',$addtime)";
mysql_query($sql,$conn);
echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
echo "謝謝您的留言,2秒鐘返回首頁";
}
?>
savereply.php:保存回復(fù)
<?php
if(isset($_SESSION["admin_name"]) && $_SESSION["admin_name"]!="")
{
if(!$_POST["content"])
{
echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
echo "你沒有填寫回復(fù)內(nèi)容,2秒鐘返回首頁";
exit();
}else{
$msgid=$_POST["msgid"];
$content=base64_encode(ereg_replace("\r\n","<br>",htmlspecialchars($_POST["content"])));
$addtime=time();
//保存數(shù)據(jù)
$sql="INSERT INTO reply(msgid,content,addtime) VALUES($msgid,'$content',$addtime)";
mysql_query($sql,$conn);
echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
echo "謝謝您的留言,2秒鐘返回首頁";
}
}
?>
相關(guān)文章
laravel修改用戶模塊的密碼驗(yàn)證實(shí)現(xiàn)
本文主要介紹了laravel修改用戶模塊的密碼驗(yàn)證實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
PHP Laravel 使用Swagger生成API文檔(基本概念和環(huán)境搭建)
Swagger是一種簡單、強(qiáng)大的RESTful API表現(xiàn)形式,這篇文章主要介紹了PHP Laravel 使用Swagger生成API文檔(基本概念和環(huán)境搭建),需要的朋友可以參考下2023-09-09
php 將bmp圖片轉(zhuǎn)為jpg等其他任意格式的圖片
有時(shí)候我們需要將bmp格式的圖片轉(zhuǎn)換為jpg或gif等格式,大家就可以參考下下面的代碼。2009-06-06
在PHP中運(yùn)行Linux命令并啟動SSH服務(wù)的例子
這篇文章主要介紹了在PHP中運(yùn)行Linux命令并啟動SSH服務(wù)的例子,因?yàn)閂PS的SSH服務(wù)掛了,導(dǎo)致無法進(jìn)入服務(wù)器,所以想了這么一個辦法,需要的朋友可以參考下2014-06-06
Laravel框架實(shí)現(xiàn)的批量刪除功能示例
這篇文章主要介紹了Laravel框架實(shí)現(xiàn)的批量刪除功能,結(jié)合實(shí)例形式分析了Laravel框架批量刪除功能相關(guān)的前端界面布局及后臺控制器實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-01-01
Windows下Apache + PHP SESSION丟失的解決過程全紀(jì)錄
這篇文章主要介紹了Windows下Apache + PHP SESSION丟失的解決過程全紀(jì)錄,花費(fèi)了很長時(shí)間,最終解決的方式卻令人啼笑皆非,郁悶之極。2015-04-04

