tp框架之留言板练习
登陆控制器与显示页面
<?php
namespace Admin\Controller;
use Think\Controller; class DengController extends Controller
{
function denglu()
{
$this->display();
} function dengluchuli()
{
$uid = $_POST["uid"];
$pwd = $_POST["pwd"];
$n = D("yuangong");
$attr = $n->find("$uid");
$mm = $attr['password'];
$name = $attr['name'];
if(!empty($pwd) && $pwd!="")
{
if($pwd!=$mm)
{
$this->ajaxReturn("密码或账号错误","eval");
}
else
{
session('uid',$uid);
session('name',$name);
$this->ajaxReturn("OK","eval");
}
}
else
{
$this->ajaxReturn("请输入密码","eval");
}
}
}
<!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>
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
</head> <body>
<div>账号:<input id="uid" type="text" /></div>
<div>密码:<input id="pwd" type="text" /></div>
<div><input id="btn" type="button" value="提交" /></div>
</body>
<script type="text/javascript">
$(document).ready(function(e) {
$("#btn").click(function(){
var uid = $("#uid").val();
var pwd = $("#pwd").val();
$.ajax({
url:"__CONTROLLER__/dengluchuli",
data:{uid:uid,pwd:pwd},
dataType:"TEXT",
type:"POST",
success:function(data){
if(data=="OK")
{
window.location.href="__MODULE__/Zhu/zhu";
}
else
{
alert(data);
}
}
});
}) });
</script>
</html>
</html>
父级控制器
<?php
namespace Admin\Controller;
use Think\Controller;
class FuController extends Controller
{
//构造函数
public function __construct()
{
parent::__construct();
if(session('?uid')) //判断uid是否登陆
{
}
else
{
$this->redirect("Admin/Deng/denglu", array(), 3, '请登录...'); //没有登录就跳转回登陆页面
exit;
}
}
}
主页控制器与显示页面
<?php
namespace Admin\Controller;
use Admin\Controller\FuController;
class ZhuController extends FuController
{
public function zhu()
{
$this->display();
} public function xianshi()
{
$uid = session('uid');
$n = D("yuangong");
$attr = $n->find("$uid");
$name = $attr['name']; $n = D("liuyan");
$attr = $n->where("Recever='$name' OR Recever='所有人'")->select(); $this->ajaxReturn($attr); //ajax返回方法 } public function qingchu()
{
session(null);
$this->redirect("Admin/Deng/denglu", array(), 1, '退出中...');
exit;
}
}
<!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>
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
</head> <body>
<table id="aa" width="100%" border="1" cellpadding="0" cellspacing="0"> </table>
<a href="__MODULE__/Liu/liuyan">发布信息</a>
<a href="__MODULE__/Zhu/qingchu">退出程序</a>
</body>
<script type="text/javascript">
$(document).ready(function(e) {
$.ajax({
url:"__CONTROLLER__/xianshi",
data:{},
type:"POST",
dataType:"JSON",
success: function(data){
var aa = "<tr><td>发件人</td><td>接收人</td><td>发送时间</td><td>内容</td></tr>";
var str = "";
for(a in data)
{
str = str+"<tr><td>"+data[a].sender+"</td><td>"+data[a].recever+"</td><td>"+data[a].times+"</td><td>"+data[a].comment+"</td></tr>";
}
$("#aa").html(aa+str);
}
}) });
</script>
</html>
发信控制器与显示页面
<?php
namespace Admin\Controller;
use Admin\Controller\FuController;
class LiuController extends FuController
{
public function liuyan()
{
$this->display();
} public function tianjia()
{
/*$jsr = $_POST["jsr"];
$nr = $_POST["nr"];
$sj = date("y-m-d H-i-s");
$fjr = session('uid');*/
$m = M("liuyan");
$data['Ids'] = '';
$data['Sender'] = session('name');
$data['Recever'] = $_POST["jsr"];
$data['Times'] = date("y-m-d H-i-s");
$data['Comment'] = $_POST["nr"];
$data['States'] = "";
$m->add($data);
/*$value = session('name');
$this->ajaxReturn($value); */
}
}
<!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>
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
</head> <body>
<div>接收人:<input id="jsr" type="text" /></div>
<div>内容:<input id="nr" type="text" /></div>
<div><input id="btn" type="button" value="提交" /></div>
<a href="__MODULE__/Zhu/zhu">查看信息</a>
<a href="__MODULE__/Zhu/qingchu">退出程序</a>
</body>
<script type="text/javascript">
$(document).ready(function(e) {
$("#btn").click(function(){
var jsr = $("#jsr").val();
var nr = $("#nr").val();
$.ajax({
url:"__CONTROLLER__/tianjia",
data:{jsr:jsr,nr:nr},
dataType:"TEXT",
type:"POST",
success:function(data){ }
});
}) });
</script>
</html>
</html>
tp框架之留言板练习的更多相关文章
- tp框架做留言板
首先是登录的LoginController.class.php 代码内容是 <?php namespace Admin\Controller; use Think\Controller; cla ...
- 【weiphp微信开发教程】留言板插件开发详解
基于weiphp框架的留言板插件教程: 1.功能分析 传统的留言板应该具有发布留言.查看留言.回复留言.管理留言等功能,本教程开发的是最基本的留言板,仅包含发布留言和查看留言两个功能,根据功能用boo ...
- LigerUi框架+jquery+ajax无刷新留言板系统的实现
前些天发布了LigerUi框架的增.删.改代码,一堆代码真的也没一张图片.有的网友推荐上图,所有今天把涉及到这个框架的开源的留言板共享给大家.在修改的过程中可能有些不足的地方希望大家拍砖. 因为留言板 ...
- Django web框架开发基础-django实现留言板功能
1.创建项目 cmd django-admin startpoject cloudms 2.创建APP cmd django-admin startapp msgapp 3.修改settings,T ...
- 用 Express4 写一个简单的留言板
Knowledge Dependence:阅读文本前,你需要熟悉 Node.js 编程.Express 以及相关工具和常用中间件的使用. Node.js 以其单线程异步非阻塞的特点,越来越被广大的 W ...
- 基于TP框架的ThinkCMF,控制器display方法源码分析
昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...
- Flask实战-留言板-安装虚拟环境、使用包组织代码
Flask实战 留言板 创建项目目录messageboard,从GreyLi的代码中把Pipfile和Pipfile.lock文件拷贝过来,这两个文件中定义了虚拟环境中需要安装的包的信息和位置,进入m ...
- Flask学习之旅--简易留言板
一.写在前面 正所谓“纸上得来终觉浅,方知此事要躬行”,在看文档和视频之余,我觉得还是要动手做点什么东西才能更好地学习吧,毕竟有些东西光看文档真的难以理解,于是就试着使用Flask框架做了一个简易留言 ...
- Python 每日一练 | Flask 实现半成品留言板
留言板Flask实现 引言 看了几天网上的代码,终于写出来一个半成品的Flask的留言板项目,为什么说是半成品呢?因为没能实现留言板那种及时评论刷新的效果,可能还是在重定向上有问题 或者渲染写的存在问 ...
随机推荐
- BZOJ2730: [HNOI2012]矿场搭建
传送门 图的连通性相关的必和割点割边之类的有关. 题目要求对于一个无向图,任意一点被删除后,所有点都和某些指定点是联通的. 这道题比较简单的做法就是求出来所有的块.对于一个块,如果块里有两个及两个以上 ...
- HD3033I love sneakers!(分组背包+不懂)
I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Android File存储
原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/Android_File_store.html 一 概念 Android系统中提供了一种文件读写的方 ...
- C#技术漫谈之垃圾回收机制(GC)
GC的前世与今生 虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久.早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是 ...
- Clang: Undefined symbols, but it is there using nm.
https://stackoverflow.com/questions/36662920/xcode-clang-link-build-dynamic-framework-or-dylib-not-e ...
- centos 7.0 编译安装php 7.0.3
php下载页面 http://cn2.php.net/downloads.php 7.0.3多地区下载页面 http://cn2.php.net/get/php-7.0.3.tar.gz/from/a ...
- HTML中的SVG
HTML5中的SVG是Scalable Vector Graphic的简称,是一种用来绘制矢量图的HTML5标签,由万维网联盟定制,是一个基于可扩展标记语言,用于绘制二维可缩放矢量图形. 是一种使用X ...
- mysql 主从单库单表同步 binlog-do-db replicate-do-db
方案一:两边做主从. SELECT SUM(DATA_LENGTH)+SUM(INDEX_LENGTH) FROM information_schema.tables WHERE TABLE_SCHE ...
- swift3.0变化总结
Swift 3.0 做出的改变很大,在这篇文章中,我将尽我所能,利用代码样例给大家解释Swift 3.0最重要(要命)的改变,希望大家能够做好升级Swift 3.0 的准备.Swift 3.0的改变不 ...
- tomcat用root权限也起不来
昨晚把服务器弄的启动不了了,先来还原一下作案现场, 错误操作过程:替换classes目录下的某个目录,比如com,由于替换了classes文件,所以需要重启tomcat,在bin目录下执行sh sta ...