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的留言板项目,为什么说是半成品呢?因为没能实现留言板那种及时评论刷新的效果,可能还是在重定向上有问题 或者渲染写的存在问 ...
随机推荐
- 埃拉托色尼筛法(Sieve of Eratosthenes)求素数。
埃拉托色尼筛法(Sieve of Eratosthenes)是一种用来求所有小于N的素数的方法.从建立一个整数2~N的表着手,寻找i? 的整数,编程实现此算法,并讨论运算时间. 由于是通过删除来实现, ...
- iframe自适应高度
http://wenrunchang123.iteye.com/blog/1684843
- System.InvalidOperationException : 不应有 <Response xmlns=''>。
xml如下: <?xml version="1.0" encoding="UTF-8"?> <Response version="2 ...
- 2.5多重else嵌套的二次方程求根
#include<stdio.h> #include<math.h> int main() { double a, b, c, disc, x1, x2, realpart, ...
- Linux 下 查看以及修改文件权限
查看权限 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 其中: 最前面那个 - 代表的是类型 中间那三个 rw- ...
- spring jdbc 查询结果返回对象、对象列表
首先,需要了解spring jdbc查询时,有三种回调方式来处理查询的结果集.可以参考 使用spring的JdbcTemplate进行查询的三种回调方式的比较,写得还不错. 1.返回对象(queryF ...
- jQuery 人脸识别插件,支持图片和视频
jQuery Face Detection 是一款人脸检测插件,能够检测到图片,视频和画布中的人脸坐标.它跟踪人脸并输出人脸模型的坐标位置为一个数组.我们相信,面部识别技术能够给我们的 Web 应用带 ...
- Markdown段落首行缩进的实现办法
添加:
- JAVA过滤器
对于get请求和post请求全局过滤: 自己创建一个类,实现HttpServletRequestWrapper接口 package com.dh.deno; import java.io.Buffer ...
- [Machine Learning] 梯度下降法的三种形式BGD、SGD以及MBGD
在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点. 下面我们以线性回归算法来对三种梯度下降法进行比较. ...