laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)
laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)
一、总结
一句话总结:
数据库的paginate方法:$data=\DB::table("user")->orderBy("id","desc")->paginate(10);
页面links方法:{{$data->links()}}
分页效果 1、控制器
$data=\DB::table("user")->orderBy("id","desc")->paginate(10); // simplePaginate 简化的分页效果
// paginate 正常分页效果
// 加载用户管理页面
return view('admin.user.index')->with("data",$data); 2、页面中
{{$data->links()}}
1、lavarel的两种分页效果?
简化分页效果:只有上一页下一页按钮:$data=\DB::table("user")->orderBy("id","desc")->simplePaginate(10);
正常分页效果:还有指定页的按钮 :$data=\DB::table("user")->orderBy("id","desc")->paginate(10);
分页效果 1、控制器
$data=\DB::table("user")->orderBy("id","desc")->paginate(10); // simplePaginate 简化的分页效果
// paginate 正常分页效果
// 加载用户管理页面
return view('admin.user.index')->with("data",$data); 2、页面中
{{$data->links()}}
2、lavarel中如何使用验证码,比如登录的时候?
引入外部验证码
书写验证码路由:因为验证码使用的很普遍
引入外部验证码 1、把验证码文件夹拷贝到指定目录 (D:\laravel\yzmedu\yzm2\resources) 2、书写路由
Route::get("admin/yzm","Admin\LoginController@yzm"); 3、控制器中生成验证码
// 引入验证码类
include "../resources/code/Code.class.php"; // 实例化验证码类 $code=new \Code(); // 生成验证码 $code->make(); 4、获取验证码 $code->get();
3、lavarel中如何引入一个外部的类,比如验证码类?
include关键字:include "../resources/code/Code.class.php";
引入外部验证码 1、把验证码文件夹拷贝到指定目录 (D:\laravel\yzmedu\yzm2\resources) 2、书写路由
Route::get("admin/yzm","Admin\LoginController@yzm"); 3、控制器中生成验证码
// 引入验证码类
include "../resources/code/Code.class.php"; // 实例化验证码类 $code=new \Code(); // 生成验证码 $code->make();
4、lavarel中如何找到根命名空间?
反斜杠:$code=new \Code();
引入外部验证码 1、把验证码文件夹拷贝到指定目录 (D:\laravel\yzmedu\yzm2\resources) 2、书写路由
Route::get("admin/yzm","Admin\LoginController@yzm"); 3、控制器中生成验证码
// 引入验证码类
include "../resources/code/Code.class.php"; // 实例化验证码类 $code=new \Code(); // 生成验证码 $code->make();
5、验证码点击自动更新如何实现?
js点击事件:点击自动更换img地址:onclick="imgs(this)"
带随机数做参数:不然地址一样,地址不会被更新:obj.src='/admin/yzm?code='+Math.random();
<div class="input-group">
<span class="input-group-addon"> <span class="glyphicon glyphicon-lock"></span></span>
<input type="text" class="form-control" name="code" placeholder="请输入验证码">
<img src="/admin/yzm" onclick="imgs(this)" alt="">
</div>
<script> function imgs(obj){
// 更换地址
obj.src='/admin/yzm?code='+Math.random();
}
</script>
// 验证码方法 public function yzm(){
// 引入验证码类
include "../resources/code/Code.class.php"; // 实例化验证码类 $code=new \Code(); // 生成验证码 $code->make();
}
6、验证码验证如何实现及原理?
看文档或者看源代码:非常简单,这里是个get函数获取验证码数据,和用户传过来的验证码比较一下即可:$yzm=$code1->get();
验证码原理就是session():可能需要按照需求改一下验证码相关的函数
验证码验证
// 后台登录处理 public function check(Request $request){ // 接收数据 $name=$request->input("name");
$pass=$request->input("pass");
$code=$request->input("code"); // 判断用户名是否输入 if ($name) {
# code...
// 判断密码
if ($pass) {
# code...
// 验证码是否正确 // // 引入验证码类
include "../resources/code/Code.class.php"; // // 实例化验证码类 $code1=new \Code(); // 获取验证码 $yzm=$code1->get(); if ($yzm==strtoupper($code)) {
// 获取数据库 if ($data=\DB::table("user")->where('name','=',$name)->first()) {
// 将数据库中密码解密
$dataPass=\Crypt::decrypt($data->pass); if($dataPass==$pass){ session(['adminUserInfo'=>['name'=>$name,'id'=>$data->id]]);
return redirect('admin');
}else{
return back()->withInput()->with("error","密码错误"); } }else{
return back()->withInput()->with("error","用户名不存在"); }
}else{
return back()->withInput()->with("error","验证码有误"); } }else{
return back()->withInput()->with("error","请输入密码"); }
}else{
return back()->withInput()->with("error","请输入用户名");
}
// exit();
// // 判断 // if ($_POST['name']=='admin' && $_POST['pass']=='123') { // }else{ // return back();
// }
}
7、lavarel的session中可以存储数组数据么?
可以:session(['key' => 'value']);
Route::get('home', function () {
// 获取 session 中的一条数据...
$value = session('key'); // 指定一个默认值...
$value = session('key', 'default'); // 存储一条数据至 session 中...
session(['key' => 'value']);
});
二、内容在总结中
laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)的更多相关文章
- laravel基础课程---9、视图(lavarel的模板语法和tp相比怎样)
laravel基础课程---9.视图(lavarel的模板语法和tp相比怎样) 一.总结 一句话总结: lavarel的模板语法比thinkphp好用很多:和html代码配合的更好 lavarel比t ...
- laravel基础课程---14、表单验证(lavarel如何进行表单验证)
laravel基础课程---14.表单验证(lavarel如何进行表单验证) 一.总结 一句话总结: lavarel的验证的功能比tp要[简单]且[强大]很多 直接控制器中:添加[规则数组]和[修改提 ...
- laravel基础课程---13、数据库基本操作2(lavarel数据库操作和tp对比)
laravel基础课程---13.数据库基本操作2(lavarel数据库操作和tp对比) 一.总结 一句话总结: 非常非常接近:也是分为两大类,原生SQL 和 数据库链式操作 学习方法:使用时 多看手 ...
- laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)
laravel基础课程---12.lavarel的ajax操作2(lavarel的ajax使用总结) 一.总结 一句话总结: 比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可 1. ...
- laravel基础课程---11、lavarel的ajax操作(ajax优劣势是什么)
laravel基础课程---11.lavarel的ajax操作(ajax优劣势是什么) 一.总结 一句话总结: 优势:用户友好度:异步通信,不会频繁刷新页面,用户友好度比较高 优势:减轻数据库压力 缺 ...
- laravel基础课程---16、数据迁移(数据库迁移是什么)
laravel基础课程---16.数据迁移(数据库迁移是什么) 一.总结 一句话总结: 是什么:数据库迁移就像是[数据库的版本控制],可以让你的团队轻松修改并共享应用程序的数据库结构. 使用场景:解决 ...
- laravel基础课程---8、laravel响应和视图(响应是什么)
laravel基础课程---8.laravel响应和视图(响应是什么) 一.总结 一句话总结: 就是向请求返回的响应数据(一般为html(视图),当然也可以是变量值):所有的路由及控制器必须返回某个类 ...
- laravel基础课程---10、数据库基本操作(如何使用数据库)
laravel基础课程---10.数据库基本操作(如何使用数据库) 一.总结 一句话总结: 1.链接数据库:.env环境配置里面 2.执行数据库操作:DB::table('users')->up ...
- laravel基础课程---7、文件处理、闪存、cookie(cookie原理和使用场景)
laravel基础课程---7.文件处理.闪存.cookie(cookie原理和使用场景) 一.总结 一句话总结: 页面请求服务器的时候是把这个页面中所有的cookie都带上了的,cookie里面也存 ...
随机推荐
- greenDAO学习分享总结
greenDAO(最新版本号V2.0.0的Readme) ======== greenDAO is a light & fast ORM solution for Android that m ...
- js 扩展replaceAll
//扩展replaceAll; String.prototype.replaceAll = function(s1,s2) { return this.replace(new RegExp(s1,&q ...
- 【Python】程序在运行失败时,一声不吭继续运行pass
在前面程序出现异常时,我们都会给一个提示,告诉用户,程序为什么会异常,但是现在我们想在程序出现异常时,不做处理,让程序默默的往下执行,不要做声. 那么我们就引入了pass语句 def count_wo ...
- Node.js学习笔记(3)——关于回调函数和函数的回调
说明:本人是node.js的初学者,尝试向别人解释这是怎么回事是自我学习的一个好方法.如果你发现有些地方并不是那么正确,欢迎提出来让我知道以便修正,共同进步,谢过^_^. 欢迎交流,本人微 ...
- DataTable行处理
DataTable dt=new DataTable(); 新增行: DataRow addDR= mydatatable.NewRow();addDR["ID"] = " ...
- INSTALL_FAILED_UID_CHANGED解决的方法
近期开发过程中又遇到了这个问题,最终找到了一个比較好的解决的方法.在此记录下. 打开手机或者pad中的设置----->安全----->未知来源(同意安装非安卓市场应用程序). 把这个取消, ...
- List集合的遍历方法
估计你永远都不会忘记这三个方法了...... public static void main(String[] args) { //超级for循环遍历方法 List<String> lis ...
- URL Handle in Swift (二) — 响应链处理 URL
最后更新: Swift4时候的博客,以前在 CMD markdown 上编辑的,现在搬到这里 在上篇文章-URL Handle in Swift (一) -- URL 分解中,我们已经将URL进行了分 ...
- Android Calendar的学习与运用
[java]mport java.text.DateFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; ...
- erlang的随机数 及 random:uniform()函数
每次调用会更新进程字典里的random_seed变量,这样在同一个进程内每次调用random:uniform()时,随机数种子都不同,所以生成的随机数都不一样(调用完random:uniform()后 ...