<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
</head>
<body>
<form action="/admin/login/loginSuccess" method="post" style="width: 300px;">
<div class="form-group">
<label for="name">账号</label>
<input type="text" class="form-control" name="account">
</div>
<div class="form-group">
<label for="name">密码</label>
<input type="password" class="form-control" name="password">
</div>
<div>
<input type="checkbox" value="1" name="free">7天免登录 </div>
<input type="submit" value="立即登录" class="btn btn-success">
</form>
</body>
</html>

控制器
<?php namespace app\admin\controller; use app\admin\model\LoginModel;
use think\Controller;
use think\Cookie;
use think\Request;
use think\Validate; class Login extends Controller
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function login()
{ if (Cookie::has('name')) {
$this->success('登录成功','/admin/login/loginShow');
}
return view(); } public function loginSuccess()
{
$params = input();
//验证
$rule = [
'account' => 'require',
'password' => 'require',
];
$msg = [
'account.require' => '账号不可以为空',
'password.require' => '密码不可以为空',
];
$validate = new Validate($rule, $msg);
$result = $validate->check($params);
if (!$result) {
$this->error($validate->getError());
}
//验证用户信息
$data = LoginModel::getLoginInfo($params);
// var_dump($data);
if ($params['account'] != $data['name']) {
$this->error('账号输入错误', '/admin/login/login');
}
if ($params['password'] != $data['password']) {
$this->error('密码输入错误', '/admin/login/login');
}
//7天免登录
if (isset($params['free'])) {
Cookie::set('name', $data['name'], 3600 * 24 * 7);
$this->success('登录成功','/admin/login/loginShow');
}
}
public function loginShow(){
$this->success('登录成功','/admin/exam/create');
} }

模型

<?php

namespace app\admin\model;

use think\Model;

class LoginModel extends Model
{
//
protected $table='login';
public static function getLoginInfo($params){
return self::where('name',$params['account'])->find();
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
</head>
<body>
<form action="/admin/login/loginSuccess" method="post" style="width: 300px;">
<div class="form-group">
<label for="name">账号</label>
<input type="text" class="form-control" name="account">
</div>
<div class="form-group">
<label for="name">密码</label>
<input type="password" class="form-control" name="password">
</div>
<div>
<input type="checkbox" value="1" name="free">7天免登录

</div>
<input type="submit" value="立即登录" class="btn btn-success">
</form>
</body>
</html>

think php 7天免登录的更多相关文章

  1. SourceTree 免登录跳过初始设置 - 转

    转自:http://www.cnblogs.com/xiofee/p/sourcetree_pass_initialization_setup.html 在SourceTree的配置目录新建(或修改) ...

  2. 火车采集器 帝国CMS7.2免登录发布模块

    帝国cms7.2增加了金刚模式,登录发布有难度.免登录发布模块配合火车采集器,完美解决你遇到的问题. 免登录直接获取栏目列表 通过文件内设置密码免登录发布数据 帝国cms7.2免登陆文章发布接口使用说 ...

  3. hadoop中master免登录slave

    hadoop集群免登录配置 在主机master上执行如下: 1. $cd ~/.ssh(如果没有此目录,可以手动创建) 2. $ssh-keygen -t rsa  ----------------- ...

  4. linux 多台 主机的免登录ssh的配置

    1.首先检查 有没有安装ssh rpm-qa | grep ssh 如果没有安装 yum install ssh 2.在每一台机器上执行  ssh-keygen -t rsa  会在root/.ssh ...

  5. 【mac】ssh免登录密码

    mac ssh免登录密码 在mac或者Linux上需要使用ssh登服务器,每次都需要输密码感觉很麻烦,搜了一下找到一个脚本,实践后发现可行. 1.创建脚本xx.sh $ vim xx.sh 输入: # ...

  6. Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型

    1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  7. 微博爬虫“免登录”技巧详解及 Java 实现(业余草的博客)

    一.微博一定要登录才能抓取? 目前,对于微博的爬虫,大部分是基于模拟微博账号登录的方式实现的,这种方式如果真的运营起来,实际上是一件非常头疼痛苦的事,你可能每天都过得提心吊胆,生怕新浪爸爸把你的那些账 ...

  8. Retrofit2.0 ,OkHttp3完美同步持久Cookie实现免登录(二)

    原文出自csdn: http://blog.csdn.net/sk719887916/article/details/51700659: 通过对Retrofit2.0的<Retrofit 2.0 ...

  9. Selenium+Python ---- 免登录

    1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  10. Saiku免登录嵌入其他系统使用(十一)

    Saiku免登录嵌入其他系统使用 Saiku可通过iframe嵌入其他系统使用,但是正常情况下都需要先登录系统,然后还需要登录saiku,最后才能访问saiku中的数据 下面来讲解一下如何使Saiku ...

随机推荐

  1. MySQL 新增表分区很慢,转移大表数据

    问题: MySQL (version 5.7.26) 数据库有一批表 xxx_yyy,由于评估的数据量可能比较大,因此每张表都设置了表分区,把每个月的数据保存在单独的分区里. 那么如果每年年末,没有提 ...

  2. 如何修改TOMCAT的默认主页为你自己项目的主页

    感谢作者:xxs673076773 原文链接:https://www.iteye.com/blog/xxs673076773-1134805 (最合适的) 最直接的办法是,删掉tomcat下原有Roo ...

  3. Nodejs中调用系统命令、Shell脚本的方法和实例

    每种语言都有自己的优势,互相结合起来各取所长程序执行起来效率更高或者说哪种实现方式较简单就用哪个,nodejs是利用子进程来调用系统命令或者文件,文档见http://nodejs.org/api/ch ...

  4. NS前缀

    NS来自于NeXTStep的一个软件 NeXT Software OC中不支持命名空间(namespace) NS是为了避免命名冲突而给的前缀 看到NS前缀就知道是Cocoa中的系统类的名称

  5. mybatis 字段类型映射一览表

  6. Charles抓包工具介绍

    1.Charles是什么? Charles是一款基于http协议的代理服务器,通过称为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的. 2.Charles有哪些用途? (1)能够分析前 ...

  7. JMeter使用流程

    JMeter使用流程 首先我们要新建一个线程组,线程组的作用模拟多个访问对象,对系统可以进行压力测试 添加"HTTP Cookie管理器": 添加"Http请求默认值&q ...

  8. Solution -「CF 232E」Quick Tortoise

    \(\mathcal{Description}\)   Link.   在一张 \(n\times m\) 的网格图中有空格 . 和障碍格 #,\(q\) 次询问,每次查询从 \((x_1,y_1)\ ...

  9. C#Winform 注册使用全局快捷键详解

    C#.NET Winform 注册使用全局快捷键详解 借助于全局快捷键,用户可以在任何地方操控程序,触发对应的功能.但 WinForms 框架并没有提供全局快捷键的功能.想要实现全局快捷键需要跟 Wi ...

  10. C#字符串Base64编解码

    C#字符串Base64编解码 首先讲一下什么是Base64编码所谓Base64就是一种基于64个可打印字符来表示二进制数据的方法.Base64编码是从二进制到字符的过程,常用于在网络上传输不可见字符( ...