初入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 ...
随机推荐
- 文件I/O实践(3) --文件共享与fcntl
文件共享 一个进程打开了两个文件 文件表条目(file-table-entry): 1.文件状态标志(file-status-flags): 读/写/追加/同步/非阻塞等; 2.当前文件偏移量 3.v ...
- 如何成为一名优秀的web前端工程师
我所遇到的前端程序员分两种: 第一种一直在问:如何学习前端? 第二种总说:前端很简单,就那么一点东西. 我从没有听到有人问:如何做一名优秀.甚至卓越的WEB前端工程师. 何为:前端工程师? 前端工程师 ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十八)
现在需要实现具体的游戏逻辑大致如下: 玩家点击某条赛道选择一个选手,然后会弹出菜单窗口让玩家输入压赌的金额,如果输入的金额值非法,则在GameInterface下部的状态栏中显示提示,要求玩家重新输入 ...
- linux的string操作(字符串截取,长度计算)
按指定的字符串截取 1.第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ...
- 【面试笔试算法】Program 3 : Complicated Expression(网易游戏笔试题)
时间限制:50000ms 单点时限:5000ms 内存限制:256MB 描述 在lisp语言中,表达式都用前缀法表示,例如,1 + 2 在lisp中使用(+ 1 2)来表示,其中,表达式的括号是必需的 ...
- MongoDB之Java测试代码(DAO层)
MongoInit.java是数据库初始化及连接类 MongoUtils.java是对mongodb的各种操作方法 MongoInit.java package com.wlwcloud.datate ...
- DTN学习,theONE模拟器网络相关资料整理
下面是一个百度空间的: http://hi.baidu.com/jensenliao 博客园的一篇博客:theONE模拟器简介(主要讲述,软件配置,软件结构) http://www.cnblogs.c ...
- 解决idea的项目启动报404的问题
最近在学习IDEA,由于之前一直使用的是Eclipse,所以初次接触IDEA就接触到了不少的坑,其中最让人头疼的大概就是如何让IDEA顺利的启动起来了,这方面我就不细讲了,网上已经有了不少的教程,稍后 ...
- 页面加载完之前显示Loading
1.第一种方式 HTML <body class="is-loading"> <div class="curtain"> <div ...
- IT轮子系列(六)——Excel上传与解析,一套代码解决所有Excel业务上传,你Get到了吗
前言 在日常开发当中,excel的上传与解析是很常见的.根据业务不同,解析的数据模型也都不一样.不同的数据模型也就需要不同的校验逻辑,这往往需要写多套的代码进行字段的检验,如必填项,数据格式.为了避免 ...