初入thinkphp
花3天时间入门了php和thinkphp框架,紧接着就做了一个小后台,简单使用了thinkphp框架封装的一些类和函数。
现在来总结一下:
//登陆函数
public function Login()
{
//判断函数是否首次被调用
if(!IS_POST)
$this->display();
else
{
//使用I函数来活得模板传来的数据
$map['user_name']=I('post.username');
$map['user_psd']=I('post.userpsd');
//empty函数判断变量是否为空
if(empty($map['user_name'])||empty($map['user_psd']))
$this->error('用户名或密码没写');
//与数据库中的数据对比
$UserInfo = M('zx_admin')->where($map)->select();
if(empty($UserInfo[0]['user_name']))
$this->error('用户名或密码错误');
else
{
//设置session值以便之后调用
session('user',$UserInfo[0]);
$this->success('登陆成功',U('Index/index'));
} }
}
//添加数据函数
public function add(){
if(!IS_POST)
$this->display();
else
{
//数组形式获取提交的数据,用I函数也可实现比如I('post.').
$article = $_POST;
//获取当前时间 date()函数是php原生函数
$article['time'] = date('Y-m-d',time());
if(empty($article['title'])||empty($article['article']))
{
$this->error('数据不完整');
}
$model = M('zx_article');
//对上传类进行配置
$config = array(
'autoSub' => false,
'hash' => false,
'maxSize' => 3145728,
'rootPath' =>'./Public/',
'savePath' => './Uploads/',
'saveName' => array('uniqid',''),
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
);
//实例化一个上传函数 $upload = new Upload($config);
$info = $upload->upload();
if(!$info)
{
$this->error($upload->getError());
}
else {
$article['photo'] = $info['photo']['savename'];//将上传后文件的名字传给数组
}
$result = $model->data($article)->add();
$this->success('成功提交数据','Index/show');
}
}
1 //登陆界面表单
2 //{:U()}无参调用U函数获取当前位置的URL
3 <form class="form-horizontal" action={:U()} method="post">
4 <div class="form-group">
5 <label class="col-md-2 control-label text-primary">账户</label>
6 <div class="col-md-10">
7 <input type="text" id="username" name="username" class="form-control" placeholder="输入账户"/>
8 </div>
9 </div>
10 <div class="form-group">
11 <label class="col-md-2 control-label text-primary">密码</label>
12 <div class="col-md-10">
13 <input type="password" id="userpsd" name="userpsd" class="form-control" placeholder="输入密码"/>
14 </div>
15 </div>
16 <div class="form-group">
17 <button class="btn btn-primary col-md-offset-4 w-50">登陆</button>
18 </div>
19 </form>
<table class="table table-bordered table-striped table-hover">
<thead>
<tr>
<th>
序号
</th>
<th>
标题
</th>
<th>
添加时间
</th>
<th>
浏览量
</th>
<th>
显示状态
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
//使用内置标签来循环输出数据
<volist name="data" id="vo">
<tr>
<td>
{$vo['article_id']}
</td>
<td>
{$vo['title']}
</td>
<td>
{$vo['time']}
</td>
<td>
{$vo['view']}
</td>
<td> </td>
<td>
<div class="btn-group">
<a class="btn btn-primary" href="{:U('Index/update?article_id='.$vo['article_id'])}">//传id以编辑>
编辑
</a>
<a class="btn btn-danger" href="{:U('Index/article_delete?article_id='.$vo['article_id'])}">
删除
</a>
</div>
</td>
</tr>
</volist>
</tbody>
</table>
//显示当前管理员
<div class="inline-block user">
当前用户:
{$_SESSION['user']['user_name']}<br/>//使用之前设置的session,不需要函数传参进来
<a href="#">[设置]</a>
 
<a href="__MODULE__/Login/Logout">[退出]</a>
</div>
thinkphp使用的MVC设计模式,不过我这里只是用了控制器和模板而没用模型,因为是刚刚开始学习感觉没用模型也可实现小程序。
初入thinkphp的更多相关文章
- Scala初入
何为Scala物 Scala为基于JVM虚拟机中的面向对象与函数式编程思想并且完全兼容Java的混合编程语言,可以是Scala与Java是同根同源的,既然Scala与JAVA都是基于JVM之上的编程语 ...
- 初学HTML5、初入前端
学习HTML5是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习 ...
- 0x00linux32位汇编初入--前期准备
0x00汇编初入--前期准备 一.汇编工具 在linux平台下常用的编译器为as,连接器为ld,使用的文本编辑器为vim,汇编语法为att 以下是一些工具: addr2line 把地址转换为文件名和行 ...
- 初入职场的建议--摘自GameRes
又开始一年一度的校招了,最近跑了几个学校演讲,发现很多话用短短的一堂职业规划课讲还远远不够,因为那堂课仅仅可能帮大家多思考怎样找到一份合适的工作,并没有提醒大家怎样在工作中发展自己的职业. 见过这么多 ...
- 【Xbox one S】开箱&开机&初入坑心得
再来一发水贴,先上产品标准照镇贴: 前言 身为一个资深单机游戏玩家,常年混迹在PC平台,但内心深处一直对主机有种迷之向往,感觉那才是单机游戏的正处之地,坐沙发上拿着手柄对着电视跌宕起伏才是正确的游戏姿 ...
- Git初入
Git记录 使用git 也有一段时间了, git的入门级了解也就不再多说, 但平常使用中, 仍然会遇到很多问题, 在此记录一二. 在查资料的过程中, 发现了两个比较好的资料: 特别是第二个, 相当详细 ...
- SuperMap iClient for JavaScript初入
SuperMap iClient for JavaScript初入 介绍SuperMap for Js的简单使用. 推荐先看下这篇文档:SuperMap iClient for JavaScript ...
- 初入前端框架bootstrap--Web前端
Bootstraps是一种简洁.直观.强悍的前端开发框架,它让web开发更迅速.简单.对于初入Bootstrap的小白,高效进入主题很重要,能为我们节省很多时间,下面我将对使用Bootstrap开发前 ...
- 初入pygame——贪吃蛇
一.问题利用pygame进行游戏的编写,做一些简单的游戏比如贪吃蛇,连连看等,后期做完会把代码托管. 二.解决 1.环境配置 python提供一个pygame的库来进行游戏的编写.首先是安装pygam ...
随机推荐
- Unity UGUI图文混排源码(一)
Unity UGUI图文混排源码(一):http://blog.csdn.net/qq992817263/article/details/51112304 Unity UGUI图文混排源码(二):ht ...
- 【一天一道LeetCode】#52. N-Queens II
一天一道LeetCode系列 (一)题目 Follow up for N-Queens problem. Now, instead outputting board configurations, r ...
- python的exec
exec "一条python语句" 这样会执行python 语句.用于执行储存在字符串或文件中的Python语句. 当然 也可以 用 exec(str)这种方式, 总之一句话,尽量 ...
- [面试算法题]有序列表删除节点-leetcode学习之旅(4)
问题描述 Write a function to delete a node (except the tail) in a singly linked list, given only access ...
- hibernate 动态多数据库
最近老师给了一个任务,需求是这样的 服务器A上有一张表,里面存放了若干个服务器的信息,表的字段包括: private int id; private String serverName; privat ...
- 【Java编程】Java学习笔记<二>
种访问权限,而类的访问控制级别只有public和缺省的,当为public时,可以被任何包的其他类访问,当为缺省时,只能被同一包的其他类访问.如果类自身对另一个类是不可见的,即使类的成员声明为publi ...
- Android服务器——TomCat服务器的搭建
Android服务器--TomCat服务器的搭建 作为一个开发人员,当然是需要自己调试一些程序的,这个时候本地的服务器就十分方便了,一般都会使用TomCat或者IIS服务器,IIS就比较简单了,其实t ...
- Linux性能监测:监测目的与工具
Linux性能监测:监测目的与工具介绍 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不是说现在优化了,测试了 ...
- Linux下进程通信方式(简要概述)
http://blog.sina.com.cn/s/blog_65c209580100u0ee.html (1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先 ...
- SharePoint 入门级介绍
前言:接触SharePoint两年有余,从一开始的小白,变成现在的菜鸟,一路走来,学到很多,现在,想把自己知道的东西,写给大家,尤其是刚刚接触SharePoint的人们,做一个简单的参考.从一开始接触 ...