laravel 登录+中间件拦截+红柚小说网小说采集+图片本地化
、、、、、、、、、、、、、、、、、、、、、、、登录界面
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>登录</title>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css"> </head>
<body>
<form action="/login/login" method="post" style="width: 300px">
@csrf
<div class="form-group">
<label for="name">账号</label>
<input type="text" class="form-control" name="name" placeholder="请输入账号">
</div>
<div class="form-group">
<label for="name">密码</label>
<input type="password" class="form-control" name="password" placeholder="请输入密码">
</div>
<input type="submit" value="立即登录">
</form>
</body>
</html>
<?php namespace App\Http\Controllers; use App\models\hongyouLoginModel;
use App\models\hongyouModel;
use Illuminate\Http\Request; class hongyouLoginController extends Controller
{
//
//登录
public function login(Request $request){
if ($request->isMethod('post')){
$params=$request->except('_token');
//调用模型
if (empty($params['name'])){
echo '用户名不可以为空';
header('refresh:2,url=/login/login');
die;
}
if (empty($params['password'])){
echo '密码不可以为空';
header('refresh:2,url=/login/login');
die;
}
$user=hongyouLoginModel::login($params);
if (empty($user)){
echo '账号不存在';
header('refresh:2,url=/login/login');
die;
}
if ($user['name']!=$params['name']){
echo '您输入的账号有误,请核对后再输入';
header('refresh:2,url=/login/login');
die;
}
if ($user['name']!=$params['name']){
echo '您输入的密码有误,请核对后再输入';
header('refresh:2,url=/login/login');
die;
//记录session
}
$request->session()->put('name',$user['name']);
echo '登录成功';
header('refresh:2,url=/hongyou/list');
}else{
return view('login.login');
}
}
}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>展示页面</title>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
</head>
<body>
<table class="table" border="1">
<tr>
<td>标题</td>
<td>图片</td>
<td>作者</td>
<td>分类</td>
<td>描述</td>
</tr>
@foreach($data as $k=>$v)
<tr>
<td>{{$v['title']}}</td>
<td><img src="{{$v['img']}}" alt="" width="100px"height="100px"></td>
<td>{{$v['author']}}</td>
<td>{{$v['cate']}}</td>
<td>{{$v['content']}}</td>
</tr>
@endforeach
</table>
{{$data->links()}}
</body>
</html>

、、、、、、、、、、、、、、、、、、、、、、模型页面
<?php namespace App\models; use Illuminate\Database\Eloquent\Model; class hongyouLoginModel extends Model
{
//
protected $table='testlogin';
public $primaryKey='id';
public $timestamps=false;
public static function login($params){
return self::where('name','=',$params['name'])
->first();
} }
、、、、、、、、、、、、、、、、、、中间件页面
<?php namespace App\Http\Middleware; use Closure; class hongyouLogin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$name = $request->session()->get('name');
if (empty($name)) {
echo '请先登录';
header('refresh:2,url=/login/login');
die;
} return $next($request);
}
}
、、、、、、、、、、、、、、、、、、、、、、kernel.php页面
<?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
]; /**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
//增加中间件
\App\Http\Middleware\hongyouLogin::class,
], 'api' => [
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
]; /**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
//增加中间件
'hongYouLogin'=>\app\http\middleware\hongyouLogin::class,
];
}
Query:list 采集页面
<?php namespace App\Http\Controllers; use App\models\hongyouModel;
use Illuminate\Http\Request;
use QL\QueryList; class hongyouController extends Controller
{ //
public function hongyouadd()
{
//采集的网址
$url = 'https://www.hongxiu.com/free';
$content = file_get_contents($url);
//范围
$range = '.book-img-text li';
$rules = [
'title' => ['h4', 'text'],
'img' => ['img', 'src'],
'author' => ['a[class="default name"]', 'text'],
'cate' => ['a[data-eid="qd_E07"]', 'text'],
'content' => ['.intro', 'text'],
];
$sql = QueryList::html($content)->range($range)->rules($rules)->queryData(); //图片本地化
foreach ($sql as $k=>$v){
$file= 'http:'.($v['img']);//拼接http://
$files=file_get_contents($file);//文件的内容读入到一个字符串中
//创建一个文件夹
$filename='./book/'.md5(time().$k).'.jpg';
//将文件放入在$filename
file_put_contents($filename,$files);
$sql[$k]['img']=substr($filename,1);
}
$res=hongyouModel::store($sql);
if ($res){
echo '采集成功';
header('refresh:2,url=/hongyou/list');
}else{
echo '采集失败';
}
}
public function list(){
$data=hongyouModel::list();
return view('hongyou.hongyoulist',compact('data'));
} }
报以下错误需要这样处理



laravel 登录+中间件拦截+红柚小说网小说采集+图片本地化的更多相关文章
- 后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户)
后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户) 一.总结 一句话总结: 1.中间件中验证用户是否登录:if(!Auth::guard('admin')->c ...
- Django中间件拦截未登录url
1.利用装饰器在视图中拦截未登录的url @login_required(login_url='/user/login/') def homepage(request): pass 这种方法适合于程序 ...
- Laravel 登录后跳转回登录前浏览的页面
一.经过 Auth 中间件检查后跳转至登录页面 也就是没有通过 auth 中间件的认证检查,被 auth 中间件拦截后跳转至登录页面.这种情况下,Laravel 默认会在用户登录成功后自动跳转回登录前 ...
- Python的scrapy之爬取6毛小说网的圣墟
闲来无事想看个小说,打算下载到电脑上看,找了半天,没找到可以下载的网站,于是就想自己爬取一下小说内容并保存到本地 圣墟 第一章 沙漠中的彼岸花 - 辰东 - 6毛小说网 http://www.6ma ...
- 基于Springmvc的登录权限拦截器
1.什么是拦截器 拦截器是指通过统一拦截从浏览器发往服务端的请求来完成功能的增强. 使用场景:解决请求的共性问题(如:乱码问题,权限验证问题等) 2.拦截器的基本工作原理 springmvc可以通过配 ...
- MVC - 单点登录中间件
本章将要和大家分享的是一个单点登录中间件,中间件听起来高深其实这里只是吧单点登录要用到的逻辑和处理流程封装成了几个方法而已,默认支持采用redis服务保存session的方式,也可以使用参数Func& ...
- 使用scrapy爬虫,爬取17k小说网的案例-方法一
无意间看到17小说网里面有一些小说小故事,于是决定用爬虫爬取下来自己看着玩,下图这个页面就是要爬取的来源. a 这个页面一共有125个标题,每个标题里面对应一个内容,如下图所示 下面直接看最核心spi ...
- SpringBoot整合Mybatis完整详细版二:注册、登录、拦截器配置
接着上个章节来,上章节搭建好框架,并且测试也在页面取到数据.接下来实现web端,实现前后端交互,在前台进行注册登录以及后端拦截器配置.实现简单的未登录拦截跳转到登录页面 上一节传送门:SpringBo ...
- SpringBoot日记——登录与拦截器篇
之前的文章我们把登录页写了出来,但是想要让登录现实他的基本功能,要如何做呢?本篇文章就来帮你实现第一步,让登录页对账号密码做校验,并且完成登录跳转. LoginController 1. 要实现登录, ...
随机推荐
- 势能分析(splay分析)
定义 第\(x\)次操作后,势能为\(\phi(x)\),该操作实际复杂度\(c(x)\),均摊复杂度\(a(x)\). 定义\(a(x)=c(x)+\phi(x)-\phi(x-1)\). 那么总复 ...
- 「CTSC 2011」幸福路径
[「CTSC 2011」幸福路径 蚂蚁是可以无限走下去的,但是题目对于精度是有限定的,只要满足精度就行了. \({(1-1e-6)}^{2^{25}}=2.6e-15\) 考虑使用倍增的思想. 定义\ ...
- (DDS)正弦波形发生器——幅值、频率、相位可调(二)
(DDS)正弦波形发生器--幅值.频率.相位可调(二) 主要关于调相方面 一.项目任务: 设计一个幅值.频率.相位均可调的正弦波发生器. 频率每次增加10kHz 相位每次增加 PI/2 幅值每次增加两 ...
- curl 查看接口的网络分段响应时间
示例如下 curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_tota ...
- @Resource注解和@Autowired注解
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11770982.html 1. @Resource 类来源: javax(Java扩展包) 类全 ...
- 各种字体.效果和名字对应图. --- by 王朋
原帖地址:http://www.oschina.net/question/565065_76244
- ubuntu中codeblocks设置代码黑色主题配色
说明 网上资料较杂乱,特整理以备留用和他人参阅. 配置文件下载 首先下载配置文件,命名为default.conf. 配置文件 官方配置文件网址 将配置文件替换ubuntu如下路径内的default.c ...
- Solution -「CF 1025D」Recovering BST
\(\mathcal{Description}\) Link. 给定序列 \(\{a_n\}\),问是否存在一棵二叉搜索树,使得其中序遍历为 \(\{a_n\}\),且相邻接的两点不互素. ...
- [LeetCode]3.无重复字符的最长子串(Java)
原题地址: longest-substring-without-repeating-characters/submissions 题目描述: 示例 1: 输入: s = "pwwkew&qu ...
- RISC-V 特权指令结构
机器模式 机器模式(缩写为 M 模式,M-mode)是 RISC-V 中 hart(hardware thread,硬件线 程)可以执行的最高权限模式.在 M 模式下运行的 hart 对内存,I/O ...