最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP實現(xiàn)的簡單留言板功能示例【基于thinkPHP框架】

 更新時間:2018年12月07日 12:06:55   作者:luckymaoyy  
這篇文章主要介紹了PHP實現(xiàn)的簡單留言板功能,結(jié)合實例形式分析了基于thinkPHP框架實現(xiàn)的留言板相關(guān)配置、數(shù)據(jù)庫操作、sql語句等實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下

本文實例講述了PHP實現(xiàn)的簡單留言板功能。分享給大家供大家參考,具體如下:

入口文件  文件名 index.php

<?php
// 應(yīng)用入口文件
// 檢測PHP環(huán)境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 開啟調(diào)試模式 建議開發(fā)階段開啟 部署階段注釋或者設(shè)為false
define('APP_DEBUG',True);//開發(fā)調(diào)試模式
//define('APP_DEBUG',false);//生產(chǎn)模式
// 定義應(yīng)用目錄
define('APP_PATH','./Message/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
// 親^_^ 后面不需要任何代碼了 就是如此簡單

配置文件 文件名 config.php

<?php
return array(
  //'配置項'=>'配置值'
  'SHOW_PAGE_TRACE'=>true,
  'DB_TYPE'        => 'mysqli',   // 數(shù)據(jù)庫類型
  'DB_HOST'        => '127.0.0.1', // 服務(wù)器地址
  'DB_NAME'        => 'msg',     // 數(shù)據(jù)庫名
  'DB_USER'        => 'root',   // 用戶名
  'DB_PWD'        => 'root',     // 密碼
  'DB_PORT'        => '3306',    // 端口
  'DB_PREFIX'       => 'ms_',  // 數(shù)據(jù)庫表前綴
);

控制器  文件名 MsgController.class.php

<?php
namespace Home\Controller;
use Think\Controller;
use Think\Model;
class MsgController extends Controller{
  public function index(){
    $msg = D('Msg');
    $info = $msg->order('id DESC')->select();
    $this->assign('info',$info);
    $this->display();
  }
  public function sendMsg(){
    $msg = new \Home\Model\MsgModel();
    if (!empty($_POST)){
      $data = $msg->create();
      if($data){
        $data['user_hobby'] = implode(',',$data['user_hobby']);
        $z = $msg->add($data);
        if ($z){
          $this->redirect('Msg/sendMsg');
        }
      }else{
        $this->assign('errorInfo',$msg->getError());
      }
    }
    $this->display();
  }
  public function upd($id){
    $msg = D('Msg');
    if (!empty($_POST)){
      $z = $msg->save($_POST);
      if ($z){
        $this->redirect('index',array(),2,'修改成功');
      }else{
        $this->redirect('upd',array('id'=>$id),2,'修改失敗');
      }
    }else{
      $info = $msg->find($id);
      $this->assign('info',$info);
      $this->display();
    }
  }
  public function addMsg(){
    $msg = D('Msg');
    if (!empty($_POST)){
      $z = $msg->add($_POST);
      if ($z){
        $this->redirect('index',array(),2,'添加成功');
      }else{
        $this->redirect('addMsg',array(),2,'添加失敗');
      }
    }else{
      $this->display();
    }
  }
  public function del($id){
    if(D('Msg')->delete($id)){
      $this->success('成功',U('index'),2);
    }else{
      $this->error('失敗',U('index'),2);
    }
  }
}

模板  文件名 MsgModel.class.php

<?php
namespace Home\Model;
use Think\Model;
class MsgModel extends Model{
  //是否批量驗證
  protected $patchValidate = true;
  protected $_validate = array(
    array('title','require','標(biāo)題不能為空!'), //默認情況下用正則進行驗證
    array('user','require','留言人不能為空!'),
    array('msg','require','內(nèi)容不能為空!'),
  );
  protected $_auto = array (
    array('status','1'), // 新增的時候把status字段設(shè)置為1
    array('id','NULL'),
    array('admin_user','ms'),
    array('replay','NULL'),
    array('update_time','time',3,'function'), // 對update_time字段在更新的時候?qū)懭氘?dāng)前時間戳
    array('send_msg_time','time',3,'function'),
  );
}

視圖  文件名 addMsg.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div>
  <form action="__SELF__" method="post" >
    <table border="1" width="100%" class="table_a">
      <tr>
        <td>留言時間</td>
        <td><input type="text" name="update_time"/></td>
      </tr>
      <tr>
        <td>留言人</td>
        <td><input type="text" name="user" /></td>
      </tr>
      <tr>
        <td>標(biāo)題</td>
        <td><input type="text" name="title" /></td>
      </tr>
      <tr>
        <td>內(nèi)容</td>
        <td><input type="text" name="msg" /></td>
      </tr>
      <tr>
        <td>回復(fù)</td>
        <td><textarea name="replay"></textarea></td>
      </tr>
      <tr>
        <td colspan="2" align="center">
          <input type="submit" value="添加">
          <a href="__CONTROLLER__/index" rel="external nofollow" rel="external nofollow" ><input type="button" value="返回"></a>
        </td>
      </tr>
    </table>
  </form>
</div>
</body>
</html>

視圖  文件名 index.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>留言列表 -- HoverTree</title>
  <style>
    .keleyitable {
      width: 800px;
    }
    .keleyitable table, td, th {
      border: 1px solid green;margin-top:10px;
    }
    .klytd {width:100px;text-align:right
    }
    .hvttd {
      width:500px}
  </style>
</head>
<body>
<div style="margin:0px auto;" class="keleyitable"><h2>留言列表</h2>
  <tr><td class="klytd"><a href="__CONTROLLER__/addMsg" rel="external nofollow" >添加</a></td><td class="hvttd"></td></tr>
  <volist name="info" id="vo">
    <table>
      <tr><td class="klytd">留言時間:</td><td class="hvttd">{$vo.update_time|date="Y-m-d H:i:s",###}</td></tr>
      <tr><td class="klytd">留言人:</td><td class="hvttd">{$vo.user}</td></tr>
      <tr><td class="klytd">標(biāo)題:</td><td class="hvttd">{$vo.title}</td></tr>
      <tr><td class="klytd">內(nèi)容:</td><td class="hvttd">{$vo.msg}</td></tr>
      <tr><td class="klytd">回復(fù):</td><td class="hvttd">{$vo.replay}</td></tr>
    </table>
    <tr><td class="klytd"><a href="__CONTROLLER__/upd/id/{$vo.id}" rel="external nofollow" >修改</a></td><td class="hvttd"></td></tr>
    <tr><td class="klytd"><a href="__URL__/del/id/{$vo.id}" rel="external nofollow" >刪除</a></td><td class="hvttd"></td></tr>
  </volist>
</div>
<div style="width:800px;margin:10px auto;font-family:Arial, Helvetica, sans-serif;text-align:center;">HoverTree &copy; 2014 keleyi.com </div>
<!--最近打算開發(fā)一個留言板,asp.net的開源項目,http://hovertree.codeplex.com -->
</body>
</html>

視圖  文件名 sendMsg.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <form action="" method="post">
    標(biāo)&nbsp;&nbsp;&nbsp;題: <input type="text" name="title"><span style="color:red;">{$errorInfo.title}</span><br><br>
    信&nbsp;&nbsp;&nbsp;息: <input type="text" name="msg"><span style="color:red;">{$errorInfo.msg}</span><br><br>
    留言人: <input type="text" name="user"><span style="color:red;">{$errorInfo.user}</span><br><br>
    <input type="submit" value="提交">
  </form>
</body>
</html>

視圖 文件名  upd.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div>
  <form action="__SELF__" method="post" >
    <input type="hidden" name="id" value="{$info.id}">
    <table border="1" width="100%" class="table_a">
      <tr>
        <td>留言時間</td>
        <td><input type="text" name="update_time" value="{$info.update_time}" /></td>
      </tr>
      <tr>
        <td>留言人</td>
        <td><input type="text" name="user" value="{$info.user}" /></td>
      </tr>
      <tr>
        <td>標(biāo)題</td>
        <td><input type="text" name="title" value="{$info.title}" /></td>
      </tr>
      <tr>
        <td>內(nèi)容</td>
        <td><input type="text" name="msg" value="{$info.msg}" /></td>
      </tr>
      <tr>
        <td>回復(fù)</td>
        <td><textarea name="replay">{$info.replay}</textarea></td>
      </tr>
      <tr>
        <td colspan="2" align="center">
          <input type="submit" value="修改">
          <a href="__CONTROLLER__/index" rel="external nofollow" rel="external nofollow" ><input type="button" value="返回"></a>
        </td>
      </tr>
    </table>
  </form>
  </div>
</body>
</html>

目錄結(jié)構(gòu)

數(shù)據(jù)庫 sql語句

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- 資料庫: `msg`
--
-- --------------------------------------------------------
--
-- 表的結(jié)構(gòu) `ms_msg`
--
CREATE TABLE IF NOT EXISTS `ms_msg` (
 `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
 `admin_user` varchar(100) NOT NULL COMMENT '管理員',
 `update_time` int(10) NOT NULL COMMENT '更新時間',
 `status` int(2) NOT NULL COMMENT '狀態(tài)',
 `send_msg_time` int(10) NOT NULL COMMENT '留言時間',
 `user` varchar(100) NOT NULL COMMENT '留言人',
 `title` varchar(100) NOT NULL COMMENT '標(biāo)題',
 `msg` varchar(200) NOT NULL COMMENT '內(nèi)容',
 `replay` varchar(200) NOT NULL COMMENT '回復(fù)',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='留言表' AUTO_INCREMENT=19 ;
--
-- 轉(zhuǎn)存資料表中的資料 `ms_msg`
--
INSERT INTO `ms_msg` (`id`, `admin_user`, `update_time`, `status`, `send_msg_time`, `user`, `title`, `msg`, `replay`) VALUES
(1, 'ms', 1479449110, 1, 1479449110, '1', '拉克絲的減肥', '對方科目了', 'NULL'),
(7, '', 321423432, 0, 0, 'kljflwk', 'kjsdfnlk', 'nlkdsjfn', 'kljnf'),
(3, 'ms', 1479451017, 1, 1479451017, '1', '輕松的發(fā)生我', '沃爾沃飛', 'NULL'),
(8, 'ms', 1479544687, 1, 1479544687, '', 'qwe', '', 'NULL'),
(9, 'ms', 1479544693, 1, 1479544693, 'qwe', 'qwe', 'qwe', 'NULL'),
(10, 'ms', 1479544970, 1, 1479544970, 'qwe', 'qwe', 'qwe', 'NULL'),
(11, 'ms', 1479544979, 1, 1479544979, '12', '12', '12', 'NULL'),
(12, 'ms', 1479545029, 1, 1479545029, '12', '12', '12', 'NULL'),
(13, 'ms', 1479546357, 1, 1479546357, '12', '12', '12', 'NULL'),
(14, 'ms', 1479547163, 1, 1479547163, '12', '12', '12', 'NULL'),
(16, 'ms', 1479547667, 1, 1479547667, '12', '12', '123', 'NULL'),
(17, 'ms', 2147483647, 1, 1479547682, '上來昆明3', '說的了付款', '藍山咖啡', '123213');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。

相關(guān)文章

  • php 生成Tab鍵或逗號分隔的CSV

    php 生成Tab鍵或逗號分隔的CSV

    這篇文章主要介紹了php 生成Tab鍵或逗號分隔的CSV的相關(guān)資料,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • php redis setnx分布式鎖簡單原理解析

    php redis setnx分布式鎖簡單原理解析

    這篇文章主要介紹了php redis setnx分布式鎖簡單原理解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 如何使用微信公眾平臺開發(fā)模式實現(xiàn)多客服

    如何使用微信公眾平臺開發(fā)模式實現(xiàn)多客服

    其實微信公眾平臺的多客服功能已經(jīng)出來好久了,并且一出來的時候我就已經(jīng)為自己的公眾號實現(xiàn)了,原本以為大家都已經(jīng)會了,但是今天還是有人問起這個多客服功能怎么使用,我找了下網(wǎng)上也沒什么好的教程,今天我就給大家發(fā)一篇比較簡單易懂的教程吧
    2016-01-01
  • php readfile()修改文件上傳大小設(shè)置

    php readfile()修改文件上傳大小設(shè)置

    如果文件上傳過大就會產(chǎn)生錯誤,本篇文章主要介紹了php readfile()修改文件上傳大小設(shè)置,有興趣的可以了解一下
    2017-08-08
  • laravel5環(huán)境隱藏index.php后綴(apache)的方法

    laravel5環(huán)境隱藏index.php后綴(apache)的方法

    今天小編就為大家分享一篇laravel5環(huán)境隱藏index.php后綴(apache)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Laravel框架路由和控制器的綁定操作方法

    Laravel框架路由和控制器的綁定操作方法

    這篇文章主要介紹了Laravel框架路由和控制器的綁定操作方法,結(jié)合實例形式分析了Laravel框架路由與控制器綁定的操作步驟、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2018-06-06
  • 用HTML/JS/PHP方式實現(xiàn)頁面延時跳轉(zhuǎn)的簡單實例

    用HTML/JS/PHP方式實現(xiàn)頁面延時跳轉(zhuǎn)的簡單實例

    下面小編就為大家?guī)硪黄肏TML/JS/PHP方式實現(xiàn)頁面延時跳轉(zhuǎn)的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • ThinkPHP模版引擎之變量輸出詳解

    ThinkPHP模版引擎之變量輸出詳解

    這篇文章主要介紹了ThinkPHP模版引擎的變量輸出用法,分析了變量輸出的常見用法與使用技巧,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • PHP檢查URL包含特定字符串實例方法

    PHP檢查URL包含特定字符串實例方法

    在本篇文章里,小編給大家分享了使用PHP檢查URL是否包含特定字符串的相關(guān)操作方法,有需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • yii2.0實現(xiàn)pathinfo的形式訪問的配置方法

    yii2.0實現(xiàn)pathinfo的形式訪問的配置方法

    這篇文章主要介紹了yii2.0實現(xiàn)pathinfo的形式訪問的配置方法的相關(guān)資料,需要的朋友可以參考下
    2016-04-04

最新評論

澎湖县| 津市市| 山阳县| 富蕴县| 庆阳市| 开平市| 北碚区| 泾川县| 水富县| 五河县| 肇州县| 江油市| 布拖县| 柳州市| 丰都县| 尖扎县| 京山县| 宝鸡市| 阜阳市| 灵武市| 清远市| 尼木县| 兰溪市| 南靖县| 商都县| 加查县| 泸州市| 康定县| 汤原县| 宁都县| 会东县| 凤山市| 阳朔县| 图木舒克市| 永定县| 金山区| 北碚区| 桂东县| 西林县| 左贡县| 咸丰县|