php编写简单的文章发布程序


  本文标签:php,文章发布

--

-- 表的结构 `yi_article`

--

CREATE TABLE IF NOT EXISTS `yi_article` (

 `id` int(11) unsigned NOT NULL auto_increment,

 `title` varchar(256) NOT NULL,

 `content` mediumtext NOT NULL,

 `add_man` varchar(20) NOT NULL,

 `add_time` datetime NOT NULL,

 `views` int(11) NOT NULL,

 `tag` tinyint(4) NOT NULL,

 PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;

article.php

<?php
  class Article extends CI_Controller{
    public $tips;
    function __construct(){
      parent::__construct();
      //加载我自己的类库
      $this->load->library(myclass);
      $this->load->database();
      $this->load->helper(url);
      $this->tips=array(
        required=> [%s] 是必须填写的!,
        is_unique=>此 [%s] 已经存在,请输入其它名称!,
        min_lenght=> [%s] 最小长度为 [%s],
        max_length=>[%s] 最大长度为 [%s]
      );
    }
    function index(){
      echo "这里是文章的首页";
      echo "<br />";
      //加载url辅助函数
      $this->load->helper(url);
      $addr=site_url(article/article_list);
      echo "<a href=$addr>查看文章</a>";
      $addr=site_url(article/article_page);
      echo "<a href=$addr>查看分页</a>";
    }
    function article_list(){
      echo "这里是文章列表";
      //加载数据库模型
      //$this->load->model(article_model);
      //$this->article_model->index();
      //读取所有的文章
      $this->load->database();
      echo "<br />";
      $query=$this->db->where("id >",5)->select(id,title)->from(article)->order_by(id,desc)->limit(4)->get();
      $info=$query->result_array();//当然你可以用result()
      $this->myclass->p($info);
      echo "第一条记录的标题:".$info[0][title];
      echo "<br />";
      echo "第二条记录的标题:".$info[1][id];
      echo "<br />";
      echo "表article中共有这么些记录:".$this->db->count_all(article);
      echo "<br />";
      echo "本次共查询出这么些条记录:".$query->num_rows();
    }
    function article_page($page=1){
      ///////////////////////////////////
      $config=array();
      //第一步查询出总记录数
      $this->load->database();
      $config[total_rows]=$this->db->select(*)->from(article)->count_all_results();
      //每页记录数
      $config[per_page]=5;
      //基础url
      $this->load->helper(url);
      $config[base_url]=site_url(article/article_page);
      //显示的链接数
      $config[num_links]=100;
      //在地址栏显示当前页码
      $config[use_page_numbers]=true;
      //定义首页
      $config[first_link]=首页;
      //定义末页
      $config[last_link]=尾页;
      //上一页
      $config[prev_link]=上一页;
      //下一页
      $config[next_link]=下一页;
      //把分页包起来
      $config[full_tag_open]=<p>;
      $config[full_tag_close]=</p>;
      //第二步加载类库
      $this->load->library(pagination);
      $this->pagination->initialize($config);
      echo $this->pagination->create_links();
      /////////////////////////////////////
      $page=$page?intval($page):1;
      $start=($page-1)*$config[per_page];
      $query=$this->db->select(*)->from(article)->limit($config[per_page],$start);
      $info=$query->get()->result_array();
      $this->myclass->p($info);
      echo $this->pagination->create_links();
      //echo base_url(abc/def);
    }
    protected function _page($total_rows,$per_page,$base_url){
      ///////////////////////////////////
      $config=array();
      //第一步查询出总记录数
      //$this->load->database();////
      $config[total_rows]=$total_rows;
      //每页记录数
      $config[per_page]=$per_page;
      //基础url
      $this->load->helper(url);////
      $config[base_url]=site_url($base_url);
      //显示的链接数
      $config[num_links]=100;
      //在地址栏显示当前页码
      $config[use_page_numbers]=true;
      //定义首页
      $config[first_link]=首页;
      //定义末页
      $config[last_link]=尾页;
      //上一页
      $config[prev_link]=上一页;
      //下一页
      $config[next_link]=下一页;
      //把分页包起来
      $config[full_tag_open]=<p>;
      $config[full_tag_close]=</p>;
      //第二步加载类库
      $this->load->library(pagination);
      $this->pagination->initialize($config);
      return $this->pagination->create_links();
      /////////////////////////////////////
    }
    function page($page=1){
      $config[per_page]=5;
      $page=$page?intval($page):1;
      $start=($page-1)*$config[per_page];
      $query=$this->db->select(*)->from(article)->limit($config[per_page],$start);
      $info=$query->get()->result_array();
      return $info;
    }
    function article_add(){
      $this->load->library(form_validation);
      //开始设置验证规则
      //set_message可以传一个一维数组
      $chinesetips=$this->tips;
      $this->form_validation->set_message($chinesetips);
      /*
      $this->form_validation->set_message(required,  [%s] 是必须填写的!);
      $this->form_validation->set_message(is_unique, 此 [%s] 已经存在,请输入其它名称!);
      $this->form_validation->set_message(min_length,  [%s] 最小长度为 [%s]);
      $this->form_validation->set_message(max_length,  [%s] 最大长度为 [%s]);
      */
      $this->form_validation->set_rules(title,标题,trim|required|is_unique[article.title]|min_length[6]|max_length[12]);  
      $this->form_validation->set_rules(content,内容,required);
      $this->form_validation->set_rules(tag,状态,required);
      if($this->form_validation->run()==true){
        echo "表单验证成功!";
        print_r($this->input->post());
        $data=$this->input->post();
        unset($data[Submit]);
        $data[add_time]=date(Y-m-d H:i:s);
        $data[views]=0;
        $st=$this->db->insert(article,$data);
        if($st){
          echo "数据插入成功!";
          echo "新的id为:".$this->db->insert_id();
        }
        //echo get_magic_quotes_gpc();
      }else{
        echo "表单验证失败!";
        echo "<br />";
        echo validation_errors();
      }
    }
    function article_add_viewer(){
      $this->load->helper(url);
      $this->load->view(article_add);
    }
    function article_links(){
      $addr=site_url(article/article_mod_viewer/19);
      echo "<a href=$addr>修改19</a>";
    }
    function article_mod_viewer($id){
      if($id==""){
        echo "没有传递参数";
        exit;
      }
      $this->load->helper(url);
      //从数据库中查出来
      $query=$this->db->select()->from(article)->where(id,$id)->get();
      $info=$query->row_array();
      print_r($info);
      $this->load->view(article_mod,$info);
    }
    function abc($val){
      $this->form_validation->set_message(abc,不行);
      //p($val);
      return true;
    }
    function article_mod(){
      $this->load->library(form_validation);
      //开始设置验证规则
      //set_message可以传一个一维数组
      $chinesetips=$this->tips;
      $this->form_validation->set_message($chinesetips);
      $this->form_validation->set_rules(title,标题,trim|required|min_length[6]|max_length[12]|callback_abc);  
      $this->form_validation->set_rules(content,内容,required);
      $this->form_validation->set_rules(tag,状态,required);
      if($this->form_validation->run()==true){
        echo "表单验证成功!";
        print_r($this->input->post());
        $data=$this->input->post();
        $id=$data[id];
        unset($data[id]);
        unset($data[Submit]);
        $data[add_time]=date(Y-m-d H:i:s);
        $data[views]=0;
        //p($data);
        $st=$this->db->where(id,$id)->update(article,$data);
        if($st){
          echo "数据修改成功";
        }else{
          echo "数据修改失败";
        }
      }else{
        echo "表单验证失败!";
        echo "<br />";
        echo validation_errors();
      }
    }
    function article_del($id=){
      if($id==""){
        //exit(请传id);
      }
      $id=array(17,18,19);
      $this->db->where_in(id,$id)->delete(article);
      $st=$this->db->affected_rows();
      echo $st;
      if($st){
        echo "数据删除成功!";
      }else{
        echo "数据删除失败!";
      }
    }
  }
?>

article_add.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" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="Www.XiaZaiBa.Com" />
<title>无标题 1</title>
</head>
<body>
<form name="form1" action="<?php echo site_url(article/article_add)?>" method="post">
标题:<input name="title" type="text" value="" /><br />
内容:<input name="content" type="text" value="" /><br />
添加人:<input name="add_man" type="text" value="" /><br />
添加时间:系统自动记录<br />
状态:<input name="tag" type="radio" value="1" />显示 <input name="tag" type="radio" value="0" />隐藏<br />
<input type="submit" name="Submit" value="提交" />
</form>
</body>
</html>

article_mod.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" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="Www.XiaZaiBa.Com" />
<title>无标题 1</title>
</head>
<body>
<form name="form1" action="<?php echo site_url(article/article_mod)?>" method="post">
标题:<input name="title" type="text" value="<?php echo $title;?>" /><br />
内容:<input name="content" type="text" value="<?php echo $content?>" /><br />
添加人:<input name="add_man" type="text" value="<?php echo $add_man;?>" /><br />
添加时间:系统自动记录<br />
状态:<input name="tag" type="radio" value="1" <?php if($tag==1)echo checked;?> />显示 <input name="tag" type="radio" value="0" <?php if($tag==0)echo checked;?> />隐藏<br />
<input type="submit" name="Submit" value="提交" />
<input type="hidden" value="<?php echo $id;?>" name="id" />
</form>
</body>
</html>

以上所述就是本文的全部内容了希望大家能够喜欢 。