注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

山林客

简单不一定幸福,但幸福其实可以很简单。

 
 
 

日志

 
 
关于我

2004年毕业于中山大学,毕业后专注于网站开发和网络工程技术。先后取得SCWCD、CCNP认证,对Asp/Java有丰富的开发经验,对网络工程也有较深的研究。真诚欢迎大家多多指教、多多指点、多多指正,共同分享IT道路和人生道路上的喜怒哀乐。

网易考拉推荐

PHP+MySQL制作简单的留言本  

2008-12-29 20:38:21|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本例是在上一节《PHP+XML制作简单的留言本》的基础上修改而来。

界面:

程序安装界面:用于创建数据库、表,以及动态生成config.php文件

PHP+MySQL制作简单的留言本 - 瑞志.net - 山林客

 

留言显示页面:比上一个例子增加了分页和留言回复的功能

PHP+MySQL制作简单的留言本 - 瑞志.net - 山林客

主要代码:

install/index.php:程序安装页面

 <?php
if($_GET["action"]!=1)
{
?>
<form method="post" action="index.php?action=1">
<table border="1">
<tr>
 <td>MySQL主机名:</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>数据库名称:</td>
 <td><input type="text" name="database" value="ruizhi_messageboard"></td>
</tr>
<tr>
 <td>留言本每页记录数:</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>留言本标题:</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="关闭页面" 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("已经安装过了,如果要重新安装请先删除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'>进入系统首页</a>";
      }else{
       exit("文件写入失败");
      }
      fclose($fp);
     }
     
    }else{
     exit("不能执行CREATE TABLE语句:".$sql_create_table);
    }
   }else{
    exit("不能执行CREATE DATABASE语句:".$sql_create_database);
   }
   
   
  }else{
   exit("不能执行DROP DATABASE语句:".$sql_drop_database);
  }
 }else{
  exit("连接数据库失败,请检查MySQL主机名、用户名和密码");
 }
}

生成的config.php文件:

<?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:程序显示页面

<?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 "当前共有".$row_num."条留言";
echo "&nbsp;&nbsp;共分".$page_count."页显示";
echo "&nbsp;&nbsp;当前为第".$page."页";
?>

<p>

<?php
if($row_num==0){
 echo "暂时没有留言";
}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"].">回复</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>回复:".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:保存留言

<?php
if(!$_POST["author"] || !$_POST["content"])
{
 echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
 echo "你没有填写留言姓名或内容,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("无标题");
 }
 $addtime=time();
 if($imgflag==1){
  $photo=base64_encode($randname);
 }else{
  $photo="NONE";
 }
 
 
 //保存数据
 $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:保存回复

<?php
if(isset($_SESSION["admin_name"]) && $_SESSION["admin_name"]!="")
{

if(!$_POST["content"])
{
 echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
 echo "你没有填写回复内容,2秒钟返回首页";
 exit();
}else{
 $msgid=$_POST["msgid"];
 
 $content=base64_encode(ereg_replace("\r\n","<br>",htmlspecialchars($_POST["content"])));
 $addtime=time();
 
 //保存数据
 $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秒钟返回首页";

}
}
?>

 

 

 

  评论这张
 
阅读(1680)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018