thinkphp写的留言板

写一个thinkPHP5留言板的经验 开发环境:phpStudy 2018  php5.4.45版本 apache phpStorm 2018版本     第一次写php的项目,我是直接在thinkPHP5框架进行修改的,下面是我遇到的几个问题 一.我将虚拟域名设置为tp6.com,但无法直接访问到登录界面,必须通过http://tp6.com/Home/login/login这个域名手动跳转到login.html. ... 阅读详情
第一步当然是创建thinkphp项目了,这个简单,照着手册完全没问题。

1,新建一个文件件,就取个拼音名吧,为: liuyan,即项目名称,并创建一个index.php的文件,我们称之为项目入口文件。

2,把ThinkPHP核心目录放到liuyan项目里面来,打开index.php文件,添加如下内容:

<?php
define('THINK_PATH','ThinkPHP/');
define('APP_NAME','liuyan');
define('APP_PATH','.');
require(THINK_PATH."ThinkPHP.php");
$App= new App();
$App->run();
?>

运行index.php即可,会帮我们创建好项目的目录结构。

今天就到这里了,休息!

   项目创建完后,lib文件夹下面的Action文件夹下面会生成一个IndexAction.class.php文件,里面会有一个IndexAction的类index就是操作IndexAction类的一个方法。这里我们称之为控制器。

      接下来就是开始写程序呢。首先确定思路,然后设计数据库and把界面拉出来,现在就用table直接套,不加任何样式。

一:

1):在Tpl文件下面的default文件夹下面建立一个index文件夹,在index文件夹里做界面。建立的这个index文件夹名必须与其控制器的名称相对应。

我们做网页一般分三部分,header,bottom,center

2)我们先把头做出来,建立一一个head.html文件,输入如下代码:

<table width="562" border="1" align="center">
<tr>
    <td colspan="2" align="center">清清留言板</td>
</tr>
<tr>
    <td width="230" align="right"><a href="__URL__/index">浏览留言</a></td>
    <td width="230" align="left"><a href="__URL__/add">发布留言</a></td>
</tr>
</table>

暂且不管连接。
3)再做网页center部分。建立index.html文件,为浏览留言页面,输入如下代码:

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<include file="Index:head" />
<table width="562" height="118" border="1" align="center">
<tr>
    <td width="97" rowspan="2">&nbsp;</td>
    <td width="286" height="36">主题:</td>
    <td width="59"><a href="mailto:waterjiang@yahoo.cn " target="_blank">邮箱</a></td>
    <td width="92"><A target="blank" href="tencent://message/?uin=274032290&Menu=yes"><IMG border="0" src="http://wpa.qq.com/pa?p=1:274032290:1" alt="有事点这里"></A></td>
</tr>
<tr>
    <td height="74" colspan="3">&nbsp;</td>
</tr>
</table>
<include file="Index:bottom"/>

</body>
</html>


<include file="Index:head" />相当于php中的include函数。

4)最后做一个网站底部bottom.html

<table width="562" border="1" align="center">
<tr>
    <td colspan="2" align="center">技术支持:清清工作室。版权所有:2009——2010 爱网网络公司</td>
</tr>
</table>

5)然后打开控制器IndexAction.class.php:

class IndexAction extends Action{
    public function index(){
   $this->display();
    }

}

运行index.phpl就可以看到就面效果了:

6)最后再做一个发布页面。add.html

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<include file="Index:head"/>
<form action="__URL__/insert/" method="post">
<table width="562" border="1" align="center">
<tr>
    <td width="155" rowspan="7">这里有时间加个选择图像的</td>
    <td width="88">留言人</td>
    <td width="297"><input type="text" name="name" id="name"/></td>
</tr>
<tr>
    <td>Email</td>
    <td><input type="text" name="email" /></td>
</tr>
<tr>
    <td>QQ</td>
    <td><input type="text" name="qq" /></td>
</tr>
<tr>
    <td>留言主题</td>
    <td><input type="text" name="title" /></td>
</tr>
<tr>
    <td>留言内容</td>
    <td><textarea name="con" cols="40" rows="5"></textarea></td>
</tr>
   <tr>
    <td>验证码</td>
    <td><input type="text" /><img src="__URL__/ma" /></td>
</tr>

<tr>
    <td colspan="2" align="center"><input type="submit" value=" 提 交 " />&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value=" 重 置 " /></td>
    </tr>
</table>
</form>
<include file="Index:bottom"/>
</body>
</html>

这样前台页面就做完了。丑是丑,但练习还是冇问题的。


     前台搭建完了后自然是编码,写程序了。前台已经做出来了整系统个大思路肯定是出来了的。

1)数据库:
create database chat;

use chat;

CREATE TABLE `u_liuyan` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(20) character set utf8 collate utf8_bin NOT NULL,
`email` varchar(20) character set utf8 collate utf8_bin NOT NULL,
`qq` varchar(20) character set utf8 collate utf8_bin NOT NULL,
`title` varchar(45) NOT NULL,
`con` varchar(20) character set utf8 collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

2)进行数据库操作。

1,配置数据库。

在conf文件夹下面建立一个config.php文件,填充:

<?php
return array(
"DB_TYPE" =>'mysql',
"DB_HOST" =>'localhost',
"DB_NAME" =>'chat',
"DB_USER" =>'root',
"DB_PWD" =>'',
"DB_PREFIX" =>'u_', //表的前缀
)
?>

2,数据操作

a)在LIb/Model下面建立一个 LiuyanModel.class.php 的文件夹,里面代码:

class LiuyanModel extends Model
{

}

这样以来我们就可以对数据进行操作了。

命名是:要操作的数据表名+Model.class.php。

b)在INdexAction.calss.php中新加入如下代码(蓝色为新加代码):

class IndexAction extends Action{
public function index(){
$this->display();
}

public function insert()
{
$User = D("Liuyan");
$User->create();
$User->add();
}

public function verify() //这个函数是成验证码的,和入库操作无关。
{
import("ORG.Util.Image");
Image::buildImageVerify();
}
}

这时回忆一下在add.html里面的表单提交的action="__URL__/insert",既是提交到这里insert()函数来处理。

这样,往数据里插入数据就已经实现,但很明显我们不能让用户任意玩数据库里插数据,还得进行数据过滤。

c),过滤数据。回到LiuyanModel.class.php,新加入代码:

class LiuyanModel extends Model
{
//过滤表单
protected $_validate = array(
array('name','require','留言人姓名必须!',1),
array('email','email ','邮箱格式错误','2'),
array('qq','number','请输入正确的QQ'),
array('title','require','主题不能为空',1),
array('con','require','内容不能为空',1),
array('ma','checkma','验证码错误',0,'callback'),

);

//验证验证码
public function checkma()
{
return md5($_POST['ma']) == $_SESSION['verify'];
}
}

thinkphp内置了数据对象的自动验证功能,需要使用系统的自动验证功能,只需要在Model类里面定义$_validate属性,支持的验证因子格式:
验证条件
EXISTS_TO_VAILIDATE 或者0 存在字段就验证(默认)
MUST_TO_VALIDATE 或者1 必须验证
VALUE_TO_VAILIDATE或者2 值不为空的时候验证

使用规则:手册里的数据验证有详细说明。

然后需要在INdexAction.class.php里进行一个报错操作。

class IndexAction extends Action{
public function index(){
$this->display();
}

public function insert()
{
$User = D("Liuyan");
if($User->create())
{
$User->add();
}else
{
  $this->error($User->getError());
}
}

public function verify()
{
import("ORG.Util.Image");
Image::buildImageVerify();
}
}

这样,发表留言就出来了。


然后就是我们要获取验证表单时的错误提示,我们需在default建立一个public文件夹,在在文件下面建立一个success.html文件。我们随便建一个表格吧。

<table width="299" border="0" align="center">
<tr>
<td align="center">{$error}</td> //获取错误提示
</tr>
<tr>
<td align="center">{$message}</td> //获取成功提示
  </tr>
<tr>
<td align="center">点击 <a href="{$jumpUrl}">这里</a> 跳转</td>//上一页
</tr>
</table>
这样我们在发布留言时,有验证错误就会提示错误。
运用Thinkphp搭建简单留言板(附源码)-(上) 留言板系统我们只简单设计了三个页面,登录页面,注册页面,首页面。因为重点是要学习thinkphp关键技术,所以对页面要求不高。 第一步:用画图工具大致画出我们这三个页面。 首页面(在这里我们首页采用分帧技术,但是需要说明的是在实际项目中,前台页面一般不采用分帧,因为不利于搜索引擎收录,后台界面一般采用分帧): 登录页面: 注册页面: 第二步:我们需要从这些图中提取数据,建表。 阅读详情

相关推荐

Thinkphp5实战之留言板

本节主要通过Thinkphp5来实现简易留言板的基本功能。麻雀虽小,五脏俱全。从以下几个方面:目录布局、MCV的运用、对数据的增删改查、留言板功能逻辑等进一步认识Thinkphp5。打牢基础,才能做好生化,下面我们开始吧。 第一部分:留言板项目流程图及思维导图。 一、留言板项目流程图 二、留言板项目思维导图 包括项目需求,数据库设计、以及项目模块设计,思维导图一目了然。 留言板项目开发详解思维导图 ...

phpzt的专栏 1642

12月6日:thinkphp留言板

thinkphp的留言板

qq_53457276的博客 558

ThinkPHP与JS技术打造的留言板系统实战

在当今数字化的浪潮中,留言板系统作为一种基础的在线交流平台,其构建对于任何一个希望增强用户互动和反馈的网站来说都是至关重要的。本章节旨在提供一个对于留言板系统构建的概览,涵盖了从立项到规划,再到实施和测试的基本步骤。ThinkPHP是一个轻量级、高性能的PHP开发框架,它自诞生以来就秉承简洁、实用的设计理念,致力于快速开发与高性能。作为国内较为流行的PHP开发框架之一,ThinkPHP提供了丰富的开发功能,包括但不限于MVC模式支持、数据库抽象层、模板引擎等。

weixin_36431145的博客 1047

【留言板】使用Think PHP6+光年模板开发一个简单的留言板

框架实验开发一款留言板的一次,本文代码完全开源,仅供学习。

小苏 1303

用ThinkPHP写的在线留言板

用ThinkPHP写的在线留言板 留言板 ThinkPHP Ajax jQuery 无刷新滚动更新

thinkphp5 留言板代码 登录 发表留言等功能示例

thinkphp5 留言板代码 登录 发表留言等功能示例 高手请路过

thinkphp 开发留言板

看到女朋友一直在写留言板,然后就把她的前端页面都搬过来了,用tp二次开发了一下 thinkphp的文档来回看了几次了,还是要结合实际开发才能更好地掌握下来 路由 路由是我一开始折腾最多的,而且thinkphp每个版本的路由文件位置还不一样 为什么一开始就先搞路由呢,首先是路由在tp的开发文档中靠前,并且路由也相当于是一个大纲了,把这些定下来之后就方便后续的跳转了 路由配置文件 Route::get...

萍水间人的小天地 132

thinkphp 留言板

留言板html、php 等全部搭建ok、直接可以使用。

php 使用tp框架写留言板,(一)ThinkPHP实践之留言板前台-TTLSA

这里是源码下载地址,随着项目深入,会不定时更改源码文件https://github.com/tonyty163/message-board/archive/master.zip在这里的大部分代码是通过thinkphp的官方视频教程来学习的。如果觉得文字太枯燥的话,也可以看视频学习。视频链接:http://www.thinkphp.cn/document/313.html以后我们知识点的讲解,会专注...

weixin_31943957的博客 923

PHP实现的简单留言板功能示例【基于thinkPHP框架】

本文实例讲述了PHP实现的简单留言板功能。分享给大家供大家参考,具体如下: 入口文件  文件名 index.php <?php // 应用入口文件 // 检测PHP环境 if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define('APP_DEBUG',True);//开发调试模式 //define('APP_DEBUG',false);//生产模式 // 定义应用目录 define('APP_PATH','./Mess

基于thinkPHP框架实现留言板的方法

主要介绍了基于thinkPHP框架实现留言板的方法,简单分析了thinkPHP框架实现留言板的流程及控制器与模型的相关核心代码,需要的朋友可以参考下

php 使用tp框架写留言板,ThinkPHP5留言板

【实例简介】ThinkPHP写的留言板功能 : 列表页, 写留言 ,处理写留言表单, 编辑留言, 删除留言, 查看留言【实例截图】【核心代码】messagebox2└── messagebox2├── application│ ├── command.php│ ├── common.php│ ├── config.php│ ├── database.php│ ├── index...

weixin_33582311的博客 581

阿里系acw_sc__v3滑块验证码逆向分析与实战破解

本文深入解析阿里系acw_sc__v3滑块验证码的核心机制与逆向破解方法。通过分析加密参数生成、轨迹验证模块和动态加密策略,提供完整的自动化破解方案,包括设备指纹生成、缺口识别和轨迹加密等关键技术。文章还分享了常见问题的调试技巧,帮助开发者应对阿里系验证码的复杂防护体系。

wdx012345的博客 1832

php 使用tp框架写留言板,基于thinkPHP框架实现留言板的方法

这篇文章主要介绍了基于thinkPHP框架实现留言板的方法,简单分析了thinkPHP框架实现留言板的流程及控制器与模型的相关核心代码,需要的朋友可以参考下本文实例讲述了基于thinkPHP框架实现留言板的方法。分享给大家供大家参考,具体如下:奋斗了一天,终于THINKPHP小邓留言版的概念版出来了其实真的THINKPHP开发速度很快,作为一个互联网上“搬砖”的,从事这种 纯码农的事也是无可厚非的...

weixin_35980011的博客 477

迈德威视相机调用( 基于 Linux系统+ OpenCV )

迈德威视相机调用( 基于 Linux系统+ OpenCV )前言一、登录迈德威视官网,下载官方SDK二、代码调用与视频帧处理( 基于 OpenCV )总结 前言     此博客记录了迈德威视工业相机在 Linux 系统下的代码调用及其环境配置,通过 OpenCV 对视频帧进行处理。   一、登录迈德威视官网,下载官方SDK      迈德威视官网 : http://www.mindvision.com.cn/     1. 进入官网后,在服务支持中选择软件下载。    2. 选择Linux系统S.

kkkkkk0729的博客 5679

企业级AI Agent平台建设方案

本报告将深入剖析构成一个顶级AI Agent平台的各个功能层面,为构建者提供一份全面的战略蓝图。

分享AI和大数据领域的知识和研究 1582

thinkPHP简单留言板

1,新建一个文件件,就取个拼音名吧,为: liuyan,即项目名称,并创建一个index.php的文件,我们称之为项目入口文件。 2,把ThinkPHP核心目录放到liuyan项目里面来,打开index.php文件,添加如下内容: define('THINK_PATH','ThinkPHP/'); define('APP_NAME','liuyan'); define('APP

北极鱼 2230

路径搜索算法——RRT*算法

RRT算法是RRT算法的优化版本,通过引入路径优化机制实现渐进最优性。该算法在高维空间和复杂环境中表现优异,主要步骤包括随机采样、树扩展和邻近节点重新连接。相比RRT,RRT能够不断优化路径质量,但计算复杂度更高。Python实现展示了其核心逻辑:随机采样扩展树节点,检查碰撞,选择最优父节点,并通过重新连接优化路径。算法适用于机器人导航等场景,但需平衡计算效率与路径质量。

swaggytiger的博客 3062

[thinkPHP5项目实战_30]留言板功能完善

实现的功能:打开留言本页面展示留言,并提供留言功能: 打开application/index/controller/Guest.php控制器: <?php namespace app\index\controller; class Guest extends Basic { public function index() { if(request()->i

骑着代码去流浪 3531

毕业设计——基于卷积神经网络的高速公路团雾智能识别系统设计与实现(数据集+源码+可视化+综述)

同时,也可以结合其他技术,如雷达、红外传感器等,实现多源信息的融合与协同处理,提高系统的可靠性和稳定性。实验结果表明,该系统能够实现对高速公路团雾的准确、快速识别,为高速公路的安全运行提供了有力保障。团雾作为一种常见的气象现象,具有突发性、局地性和消散迅速的特点,对高速公路的行车安全构成严重威胁。通过设计合适的网络结构,如增加卷积层、池化层等,实现对图像中团雾特征的自动学习和提取。预处理:对采集到的图像进行去噪、增强等预处理操作,以提高图像质量,降低后续处理的难度。读取数据,随机分为训练集和验证集。

abackcab的博客 667

Windows C语言编程:Beep API实现蜂鸣器原理与实战

如果你在 Windows 上写过 C 语言程序,想给程序加个简单的提示音,第一个想到的可能是 printf("\a") 。这个转义字符确实能在某些终端里发出“嘀”的一声,但它太原始、太不可控了,而且很多时候根本没声音。那么,有没有一种更“Windows”、更可控、更专业的方法来让你的程序“说话”呢? 答案是肯定的,而且它比你想象的要强大和复杂。Windows 提供了一个名为 Beep 的 API 函数,专门用于生成蜂鸣声。你可能觉得这功能太简单,甚至有点过时——不就是让电脑“哔”一声吗?但恰恰是这个看似简单

weixin_34109408的博客 395

think php框架案例,实例解析基于thinkPHP框架实现留言板的方法

基于thinkPHP框架实现留言板的方法本文实例讲述了基于thinkPHP框架实现留言板的方法。分享给大家供大家参考,具体如下:奋斗了一天,终于THINKPHP小邓留言版的概念版出来了其实真的THINKPHP开发速度很快,作为一个互联网上“搬砖”的,从事这种 纯码农的事也是无可厚非的。代码就实现了如下功能1.留言功能。2.验证功能。3.分页显示功能。就是写了几行代码(PS:页面设计代码不算,就算控...

weixin_39562089的博客 450

【06】新国都——新国都 嵌入式笔试,校招,题目记录及解析

本文总结了新国都嵌入式校招笔试题目及解析,内容涵盖C语言基础、Linux系统、数据结构与算法等多个方面。主要包括:1)不定项选择题10道,涉及字符串常量、蓝牙与GPRS区别、编译错误识别等;2)判断题10道,考察Linux权限、循环控制、内存管理等;3)填空题5道,包括编码计算、逻辑运算、宏定义等;4)简答题2道,解析全局变量引用和进程线程区别。题目难度适中,重点考察嵌入式开发基础知识和编程能力,并提供详细解析和扩展知识链接,对准备嵌入式相关笔试具有参考价值。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1432

thinkphp5留言板

一、项目目的       为了提高新手对mvc模式的认识、加深thinkphp5知识的掌握程度,本文通过留言板示例进行展示。 二、项目需求    用户注册、登录    发表留言    删除本人留言    查看留言 三、数据表设计        分析项目需求,一个用户可以有多条留言,发现需要用户表和留言表两张表即可,需求中包含了用户注册、登录,所以用户表需要有账号、密码字段。发表留言...

Forever_and_ever的博客 7488

拼多多Android面试题及参考答案

Android 系统采用分层架构设计,从底层到上层依次为Linux 内核层硬件抽象层(HAL)系统运行时库层应用框架层应用层,共五层。位置:Linux 内核层与系统运行时库层之间,是“硬件与系统的隔离层”。核心作用:屏蔽硬件差异,为上层提供统一的硬件访问接口,解决 Android 开源与硬件厂商闭源的矛盾,具体功能如下:硬件能力抽象:将硬件的具体实现(如不同厂商的摄像头芯片、音频芯片)封装为标准化接口(如Camera HALAudio HAL。

大模型大数据攻城狮的专栏 1284

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 使用JQuery获取对象的几种方式
下一篇: PHP数组输出三种形式 PHP打印数组
HackProgramer
博客等级 码龄12年 255粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值