PHP+MYSQL的文章管理系统(一)


Posted in PHP onOctober 09, 2006

###############################################  
此篇文章属原创,如有引用,请标明作者信息。  
Email: leo_cdp@yeah.net
http://www.cfeng.net/
本文代码任意转载,使用请保留此声明
###############################################  
去年写了个文本管理总觉得有些不爽再加上申请了主机所以写个PHP+MYSQL的对文章进行管理测试期间
受到广大网友的支持现将代码公布
功能说明:
文章的基本操作:添加,修改,锁定,解锁,推荐,删除等待
并有强大功能的搜索,评论,推荐给朋友等功能,并对安全性进行着重加强,漂亮的界面人性化的设计。
主要文件列表:
setup.php    安装程序,运行后即可使用本系统!
index.php    显示
manager.php  添加,管理文章。
change.php   对已存在文章的操作。
edit_article.php 文章修改
commend.php  推荐文章给朋友。
read_article.php 文章阅读。
ping.php     发表文章评论。
search.php   文章搜索
type_manager.php  类型管理
login.php    管理员登陆。
config.php   主要配置文件
func.php     函数文件
footer.inc,header.inc,nav.inc包含文件。
list.txt     类型列表
以及其它一些周边程序
管理系统演示地址:
http://www.cfeng.net/article/
########################config.php 主要配置文件##########################
<?
$host="localhost";                   #数据库主机
$database_usn="cfeng.net";           ##数据库用户
$database_pwd="cfeng.net";           ##数据库密码
$database="cfeng.net";               ##数据库
$table="cfeng.net";                  ##要存放文章的表
$ping_tab="ping_tab1";               ##存放评论的表
$admin_usn="leo";                    ##管理员用户名
$admin_pwd="leo";                    ##管理员密码
$admin_mail="leo_cdp@yeah.net";      ##管理员信箱
$pagenum="20";                       ##每页显示文章数
$sess=md5($admin_usn.$admin_pwd);    ##登陆认证采用MD5生成
?>
#####################func.php  函数文件 ###################################
<?
require "./inc/config.php";
function mscon()##数据库链接
{   
  global $host,$database_usn,$database_pwd;
  @mysql_connect("$host","$database_usn","$database_pwd") or die("对不起,数据库连接错误!请稍候再来,或与管理员联系");
}
function check_login()
{  global $sess;
if(!session_is_registered("sess_0230a09a07cab1df8112d00b1f9a9719"))
   {
    if($sess_0230a09a07cab1df8112d00b1f9a9719!=$sess)
       {
         redir("login.php");
         exit;
       }
   }
}
function redir($addr)
  {
    header("location:$addr");
   }
function add_article()##本系统实行宽进严出所以添加文章部份显得略为简单!
{
   global $database,$table,$title,$cont,$type,$html;
   $dat=date(Y年m月d日);
   $title=htmlspecialchars($title);
   $query="insert into $table(title,cont,type,time,html) values('$title','$cont','$type','$dat','$html')";
   $res=mysql_db_query("$database",$query);
   if(!$res)
   echo mysql_error();
}
function add_hits($id)##添加浏览次数!
{
global $database,$table;
$query="update $table set hits=hits+1 where id=$id";
   $res=mysql_db_query("$database",$query);
}
function add_comm($id)##把本文加为推荐文章
{
global $database,$table;
$query="update $table set comm=1 where id=$id";
   $res=mysql_db_query("$database",$query);
}
function un_comm($id)##清除推荐!
{
global $database,$table;
$query="update $table set comm='0' where id=$id";
   $res=mysql_db_query("$database",$query);
}
function add_lock($id)##锁定文章
{
global $database,$table;
$query="update $table set locked='1' where id=$id";
   $res=mysql_db_query("$database",$query);
}

function un_lock($id)##清除锁定!
{
global $database,$table;
$query="update $table set locked=0 where id=$id";
   $res=mysql_db_query("$database",$query);
}
function add_p_num($id)##添加评论次数!
{
global $database,$table;
$query="update $table set p_num=p_num+1 where id=$id";
   $res=mysql_db_query("$database",$query);
}
function add_del($id)##删除文章!
{
global $database,$table;
$query="delete from $table where id='$id'";
   $res=mysql_db_query("$database",$query);
}
########################setup.php 安装文件######################
<?  
session_start();
require"./inc/func.php";
check_login();
?>
<?
if($sub)
{
   $file_cont="<?\n #don't edit thisfile use the setup.php\n";
   $file_cont.="\$host=\"$host\";#your database server address\n";
   $file_cont.="\$database_usn=\"$database_usn\";\n";
   $file_cont.="\$database_pwd=\"$database_pwd\";\n";
   $file_cont.="\$database=\"$database\";\n";
   $file_cont.="\$table=\"$table\";\n";
   $file_cont.="\$ping_tab=\"$ping_tab\";\n";
   $file_cont.="\$admin_usn=\"$admin_usn\";\n";
   $file_cont.="\$admin_pwd=\"$admin_pwd\";\n";
   $file_cont.="\$admin_mail=\"$admin_mail\";\n";
   $file_cont.="\$pagenum=\"$pagenum\";\n";
   $file_cont.="\$sess=md5(\$admin_usn.\$admin_pwd);\n";
   $file_cont.="\n";
   $file_cont.="?>";
   $fp=fopen("./inc/config.php","w");
   if(fputs($fp,$file_cont))
      echo "配置完成正检测各选项的正确性<BR>";
   else echo "文件写入错误,请检测文件所在目录的权限<br>";
   fclose($fp);
      echo "正在检测数据连接.........." ;
   if(@mysql_connect("$host","$database_usn","$database_pwd"))
      {
        echo  "成功!<BR>" ;
        $query="CREATE TABLE $table(
                     id int(4) NOT NULL auto_increment,
                     title varchar(55) NOT NULL,
                     cont text NOT NULL,
                     time varchar(14) NOT NULL,
                     type varchar(20) NOT NULL,
                     comm int(1) DEFAULT '0' NOT NULL,
                     p_num int(2) DEFAULT '0' NOT NULL,
                     locked int(1) DEFAULT '0' NOT NULL,
                     hits int(4) DEFAULT '0' NOT NULL,
                     html int(1) DEFAULT '1' NOT NULL,
                     PRIMARY KEY (id),
                     UNIQUE id (id),
                     KEY id_2 (id)
                     ) " ;
        if(mysql_db_query($database,$query))
          echo"数据库 $table 建立成功<BR>".mysql_error();
        else
          echo"数据库 $table 建立失败<BR>";
        $query="CREATE TABLE $ping_tab (
                      id int(4) NOT NULL auto_increment,
                      p_id int(4) DEFAULT '0' NOT NULL,
                      name varchar(50) NOT NULL,
                      mail varchar(200) NOT NULL,
                      p_cont text NOT NULL,
                      time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
                      ip varchar(15) NOT NULL,
                      PRIMARY KEY (id),
                      UNIQUE id (id),
                      KEY id_2 (id)
                      )";
        if(mysql_db_query($database,$query))
          {
            echo"用户评论数据库 $ping_tab 建立成功<BR>恭喜,文章管理系统安装成功!请<a href=login.php>这边走</a>进行基本设置!<BR>";
            $fp=fopen("setup.php","r");
            $file_cont=fread($fp,filesize("setup.php"));
            $file_cont="<? \nsession_start();\nrequire\"./inc/func.php\";\n check_login();\n?>\n".$file_cont;
            $fp=fopen("setup.php","w");
            fputs($fp,$file_cont);
            fclose($fp);
          }
        else
          echo"用户评论数据库$ping_tab建立失败<BR>";
    }
   else
      echo "数据库连接失败!请检测你用户名密码的正确性!<BR>";
  exit();
  }
require "./inc/header.inc";
?>
<script language="javascript">
function db_pwd()
{
  var theResult = true;
  var elem4 = null;

  if (document.forms[0].elements[2].value == "" || document.forms[0].elements[2].value!=document.forms[0].elements[3].value)
  {
    alert("您两次输入的数据库密码不一致,或者为空!");
    document.forms[0].elements[2].value="";
    document.forms[0].elements[3].value="";
    theResult = false;

     }
  return theResult;
}
function admin_pwd()
{
  var theResult = true;
  var elem4 = null;
if (document.forms[0].elements[8].value == "" || document.forms[0].elements[8].value!=document.forms[0].elements[9].value)
  {
    alert("您两次输入的管理员密码不一致,或者为空!");
    document.forms[0].elements[8].value="";
    document.forms[0].elements[9].value="";
    theResult = false;

     }
  return theResult;
}
function go()
{
var theResult=true;
theResult =db_pwd()&&admin_pwd();
return theResult;
}
</script>
</head>
<body bgcolor="#FFFFFF">
<? require "./inc/nav.inc";?>
<form name="form1" method="post" action="<? echo $PHP_SELF; ?>" onsubmit="return go()";>
  <table border="0" cellspacing="0" cellpadding="0" align="center" style=text-align:left;>
    <tr>
      <td colspan="3">
        <div align="center">蓝狐文章管理安装程序<br>
          (请正确填写以下内容否则程序将无法使用)</div>
      </td>
    </tr>
    <tr>
      <td>数据库服务器:</td>
      <td colspan="2">
        <input type="text" name="host" value="localhost" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>数据库用户名: </td>
      <td colspan="2">
        <input type="text" name="database_usn" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>数据库用户密码:</td>
      <td colspan="2">
        <input type="password" name="database_pwd" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>数据库密码确认:</td>
      <td colspan="2">
        <input type="password" name="database_pwd2" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>数据库名:</td>
      <td colspan="2">
        <input type="text" name="database" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>存放文章的表:</td>
      <td colspan="2">
        <input type="text" name="table" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>存放评论的表:</td>
      <td colspan="2">
        <input type="text" name="ping_tab" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>管理员用户名:</td>
      <td colspan="2">
        <input type="text" name="admin_usn" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>管理员密码:</td>
      <td colspan="2">
        <input type="password" name="admin_pwd" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>管理员密码确认:</td>
      <td colspan="2">
        <input type="password" name="admin_pwd2" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>管理员邮件地址:</td>
      <td colspan="2">
        <input type="text" name="admin_mail" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>每页显示文章数:</td>
      <td colspan="2">
        <input type="text" name="pagenum" class="border" size="30">
      </td>
    </tr>
    <tr>
      <td>
        <div align="center"><br>
        </div>
      </td>
      <td>
        <div align="left"><br>
          <input type="submit" name="sub" value="submit" class="border">
            
          <input type="reset" name="reset" value="reset" class="border">
        </div>
      </td>
    </tr>
  </table>
  <p>  </p>
  </form>
<?require "./inc/footer.inc";?> 

PHP 相关文章推荐
PHP脚本的10个技巧(7)
Oct 09 PHP
php下的权限算法的实现
Apr 28 PHP
mysql5的sql文件导入到mysql4的方法
Oct 19 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 PHP
PHP实现分页的一个示例
Oct 09 #PHP
用cookies来跟踪识别用户
Oct 09 #PHP
使用sockets:从新闻组中获取文章(一)
Oct 09 #PHP
使用sockets:从新闻组中获取文章(三)
Oct 09 #PHP
PHP+MYSQL的文章管理系统(二)
Oct 09 #PHP
使用sockets:从新闻组中获取文章(二)
Oct 09 #PHP
通过ODBC连接的SQL SERVER实例
Oct 09 #PHP
You might like
php多层数组与对象的转换实例代码
2013/08/05 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
php-fpm中max_children的配置
2019/03/15 PHP
初探jquery——表单应用范例
2007/02/20 Javascript
js常见表单应用技巧
2008/01/09 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
pycharm 使用心得(四)显示行号
2014/06/05 Python
Python数据类型之List列表实例详解
2019/05/08 Python
python 字典操作提取key,value的方法
2019/06/26 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
Django websocket原理及功能实现代码
2020/11/14 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
电气工程师岗位职责
2014/01/01 职场文书
普通党员对照检查材料
2014/08/28 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书