Laravel:学习的登录系统问题
我正在尝试登录学习,所以我跟踪了一段来自youtube的视频,视频编码与此相同。它应该能够检查输入数据的格式,检查用户是否已经登录,检查用户是否在未登录的情况下访问下一页,但最后,即使我已经输入了正确的输入,它也只会显示电子邮件和密码所需的错误。请帮忙。这是我的密码 web.phpLaravel:学习的登录系统问题,laravel,authentication,Laravel,Authentication,我正在尝试登录学习,所以我跟踪了一段来自youtube的视频,视频编码与此相同。它应该能够检查输入数据的格式,检查用户是否已经登录,检查用户是否在未登录的情况下访问下一页,但最后,即使我已经输入了正确的输入,它也只会显示电子邮件和密码所需的错误。请帮忙。这是我的密码 web.php <?php use Illuminate\Support\Facades\Route; Route::get('/main', 'MainController@index'); Route::
<?php
use Illuminate\Support\Facades\Route;
Route::get('/main', 'MainController@index');
Route::post('/main/checklogin', 'MainController@checklogin');
Route::get('main/successlogin', 'MainController@successlogin');
Route::get('main/logout', 'MainController@logout');
我不会评论您的任何其他代码是否有效,但导致验证错误的原因是表单输入的名称与您尝试验证的字段的名称不匹配
在表单中,您的输入称为登录电子邮件
和登录密码
。但是,在控制器中,您正在验证是否提供了名为email
的字段和名为password
的字段(因为它们是必需的)
因此,要么将表单名称更改为电子邮件
和密码
,要么将验证字段更改为登录电子邮件
和登录密码
,我已经尝试过了,效果很好。从没想过规则中的电子邮件和密码实际上是我输入的名称。谢谢你,伙计。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Login</title>
<!--CSS-->
<link rel="stylesheet" href="{{ asset('css/styles.css') }}" type="text/css">
<link rel="stylesheet" href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css' />
<script type="text/javascript" src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js'></script>
</head>
<body>
<div class="login-page-frame">
<div class="header-login-page-frame">
<h3>Login</h3>
</div>
<div class="inner-login-form-frame">
@if(isset(Auth::user()->email))
<script>window.location="/main/successlogin";</script>
@endif
@if($message = Session::get('error'))
<div class="alert alert-danger alert-block">
<button type="button" class="close" data-dismiss="alert"></button>
<strong>{{$message}}</strong>
</div>
@endif
@if(count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form method="post" action="{{ url('/main/checklogin') }}" class="login-form">
{{ csrf_field() }}
<input type="email" placeholder="email" name="login-email" class="form-control">
<br>
<input type="password" placeholder="pass" name="login-password" class="form-control">
<br>
<input type="submit" name="login" class="btn-login" value="login">
</form>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Halaman Utama</title>
</head>
<body>
<div class="container box">
<h3 align="center">Selamat Datang</h3>
<br />
@if(isset(Auth::user()->email))
<div class="alert alert-danger success-block">
<strong>Welcome {{ Auth::user()->email }}</strong>
<br />
<a href="{{ url('/main/logout/') }}">Logout</a>
</div>
else
<script>window.location="/main";</script>
@endif
</div>
</body>
</html>
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
use Auth;
use Input;
class MainController extends Controller
{
//
function index(){
return view('login');
}
function checklogin(Request $request){
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|alphaNum|min:3'
]);
$user_data=array(
'email' => $request->get('login-email'),
'password' => $request->get('login-password')
);
if(Auth::attempt($user_data)){
return redirect('main/successlogin');
}else{
return back()->with('error', 'Wrong Login Details');
}
}
function successlogin(){
return view('halamanUtama');
}
function logout(){
Auth::logout();
return redirect('main');
}
}