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. 要实现登录, ...
随机推荐
- ApacheJemeter的简单使用
前言:最近由于工作需要进行接口测试,故简单复习一下ApacheJemeter的使用 安装包下载地址: 链接:https://pan.baidu.com/s/11ywNWRUkFNNBCWw4HiO6B ...
- VC 获取多个mac地址
转载请注明来源:https://www.cnblogs.com/hookjc/ #include <IPHlpApi.h>#include <iostream>#pragma ...
- iOS WKWebView 使用笔记
首先添加Webkit框架
- udp的第一个例子
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import j ...
- JAVA! static的作用
是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只 ...
- DockerClient端与DockerDaemon的通信安全
DockerClient端与DockerDaemon的通信安全 容器的安全性问题的根源在于容器和宿主机共享内核.如果容器里的应用导致Linux内核崩溃,那么整个系统可能都会崩溃.与虚拟机是不同的,虚拟 ...
- nginx的优化和防盗链
nginx的优化和防盗链 目录 nginx的优化和防盗链 一.nginx的优化 1. 隐藏版本号 (1)隐藏版本号的原因 (2)查看版本号的方法 (3)隐藏方法一:修改配置文件 (4)隐藏方法二:修改 ...
- HashMap自动扩容机制源码详解
一.简介 HashMap的源码我们之前解读过,数组加链表,链表过长时裂变为红黑树.自动扩容机制没细说,今天详细看一下 往期回顾: Java1.7的HashMap源码分析-面试必备技能 Java1.8的 ...
- Docker入门的亿点点学习
前段时间花了些时间学习了亿点点docker,也算是入门了吧,顺便记了一下笔记拿出来分享给想要接触docker的兄弟们. 没有服务器的兄嘚可以去腾讯云或者阿里云领取免费的试用产品嗷,如果已经领取过了,又 ...
- AI 神经网络学习
神经网络学习 1.输出与输入的关系(感知基): $$ y=\begin{Bmatrix} 1 & {\overrightarrow{x}\cdot \overrightarrow{w}+b&g ...