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的留言板项目,为什么说是半成品呢?因为没能实现留言板那种及时评论刷新的效果,可能还是在重定向上有问题 或者渲染写的存在问 ...
随机推荐
- 【原创】JEECMS v6~v7任意文件上传漏洞(2)
文章作者:rebeyond 受影响版本:v6~v7 漏洞说明: JEECMS是国内Java版开源网站内容管理系统(java cms.jsp cms)的简称.该系统基于java技术开发,继承其强大.稳定 ...
- windows 下的sleep 命令
方法一 ping -n 3 127.0.0.1 > nul 其中3是需要sleep的秒数 方法二 timeout /t 3 /nobreak > nul 其中3是需要sleep的秒数
- php二维数组相同id的数量相加
数组样式 $arr = array( array( , , , ), array( , , , ), array( , , , ), array( , , , ), ); 处理办法 $item=arr ...
- Quartz.NET总结(四)Quartz 远程调度
前面篇已经介绍了Quartz.NET的配置,使用和Cron表达式表达式的写法.基本上后台的定时任务的定时执行已经完成,并能正确的按照执行计划,执行相关的job . 然后,如果任务需要更新,停止某个任务 ...
- windows server 2012 使用问题
1.端口映射,把宿主机的端口映射到hyper-v创建的虚拟机上 访问宿主机的公网IP的某个端口,就等于访问这个虚拟机上的端口 具体实现: 在宿主机上命令行输入 添加一个端口映射 netsh inter ...
- Vue.js简单实践
直接上代码,一个简单的新闻列表页面(.cshtml): @section CssSection{ <style> [v-cloak] { display: none; } </sty ...
- Mysql中sql_mode详解
阅读目录 简介 sql_mode常用值 session与global 简介 MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式.这样,应用程序就能对服务器操作进 ...
- 第3月第23天 EAIntroView
1. EAIntroView,界面和模型分离.EAIntroPage数据模型,EAIntroView界面. https://github.com/ealeksandrov/EAIntroView
- windows XP上实现python2.7.5和python3.4.3共存
windows XP上实现python2.7.5和python3.4.3共存过程记录: 1. 首先安装python2.7.5和python3.4.3,两个版本安装顺序不分前后; 2. 检查系统环境变量 ...
- 自动布局报错(两条连线冲突):Unable to simultaneously satisfy constraints
这个报错有些长: Unable to simultaneously satisfy constraints. Probably at least one of the constraints i ...