花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>
&nbsp
<a href="__MODULE__/Login/Logout">[退出]</a>
</div>

thinkphp使用的MVC设计模式,不过我这里只是用了控制器和模板而没用模型,因为是刚刚开始学习感觉没用模型也可实现小程序。

初入thinkphp的更多相关文章

  1. Scala初入

    何为Scala物 Scala为基于JVM虚拟机中的面向对象与函数式编程思想并且完全兼容Java的混合编程语言,可以是Scala与Java是同根同源的,既然Scala与JAVA都是基于JVM之上的编程语 ...

  2. 初学HTML5、初入前端

    学习HTML5是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习 ...

  3. 0x00linux32位汇编初入--前期准备

    0x00汇编初入--前期准备 一.汇编工具 在linux平台下常用的编译器为as,连接器为ld,使用的文本编辑器为vim,汇编语法为att 以下是一些工具: addr2line 把地址转换为文件名和行 ...

  4. 初入职场的建议--摘自GameRes

    又开始一年一度的校招了,最近跑了几个学校演讲,发现很多话用短短的一堂职业规划课讲还远远不够,因为那堂课仅仅可能帮大家多思考怎样找到一份合适的工作,并没有提醒大家怎样在工作中发展自己的职业. 见过这么多 ...

  5. 【Xbox one S】开箱&开机&初入坑心得

    再来一发水贴,先上产品标准照镇贴: 前言 身为一个资深单机游戏玩家,常年混迹在PC平台,但内心深处一直对主机有种迷之向往,感觉那才是单机游戏的正处之地,坐沙发上拿着手柄对着电视跌宕起伏才是正确的游戏姿 ...

  6. Git初入

    Git记录 使用git 也有一段时间了, git的入门级了解也就不再多说, 但平常使用中, 仍然会遇到很多问题, 在此记录一二. 在查资料的过程中, 发现了两个比较好的资料: 特别是第二个, 相当详细 ...

  7. SuperMap iClient for JavaScript初入

    SuperMap iClient for JavaScript初入 介绍SuperMap for Js的简单使用. 推荐先看下这篇文档:SuperMap iClient for JavaScript ...

  8. 初入前端框架bootstrap--Web前端

    Bootstraps是一种简洁.直观.强悍的前端开发框架,它让web开发更迅速.简单.对于初入Bootstrap的小白,高效进入主题很重要,能为我们节省很多时间,下面我将对使用Bootstrap开发前 ...

  9. 初入pygame——贪吃蛇

    一.问题利用pygame进行游戏的编写,做一些简单的游戏比如贪吃蛇,连连看等,后期做完会把代码托管. 二.解决 1.环境配置 python提供一个pygame的库来进行游戏的编写.首先是安装pygam ...

随机推荐

  1. Java将网络地址对应的图片转成本地的图片

     只知道浏览器使用的是HTTP协议,那么如何将网络资源使用JavaHTTP下载下来呢! 这只是一个非常简单的小示例,只是不想每次碰到关于此方面的内容忘了就无从下手! 示例创建HttpURLConn ...

  2. Android图片加载库Fresco

    在Android设备上面,快速高效的显示图片是极为重要的.过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题.图片太大,但是手机的内存却很小.每一个像素的R.G.B和alpha通道总共要占用4 ...

  3. mongoDB常见的查询索引(三)

    1. _id索引     _id索引是绝大多数集合默认建立的索引     对于每个插入的数据,MongoDB会自动生成一条唯一的_id字段. 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  4. [WinForm]dataGridView自定动态设定序号列框

    你可以在数据绑定或者行数有很大变化时测量一下DataGridView最大行数的行数的宽度然后在绘制代码如下 SolidBrush solidBrush; StringFormat stringForm ...

  5. (NO.00002)iOS游戏精灵战争雏形(三)

    在Sprite中新建Sprites文件夹,在其中添加Player.cc文件,确保其类型为Sprite. 将其Root节点的CCSprite的精灵帧设置为Image/sprite-2.png,然后打开物 ...

  6. C语言的引用计数与对象树

    引用计数与对象树 cheungmine 2013-12-28 0 引言 我们经常在C语言中,用指针指向一个对象(Object)的结构,也称为句柄(Handle),利用不透明指针的技术把结构数据封装成对 ...

  7. Mahout fp-growth

    FP-growth Apriori算法的一个主要瓶颈在于,为了获得较长的频繁模式,需要生成大量的候选短频繁模式.FP-Growth算法是针对这个瓶颈提出来的全新的一种算法模式.目前,在数据挖掘领域,A ...

  8. CSS中让一个div的高度随着另外个一个统计的div的高度变化而变化的代码

     .w1002 .left_part{overflow:hidden; padding-bottom:9999px; margin-bottom:-9999px;display:inline;}

  9. 【一天一道LeetCode】#28. Implement strStr()

    一天一道LeetCode系列 (一)题目 Implement strStr(). Returns the index of the first occurrence of needle in hays ...

  10. Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...