{"id":260,"title":"laravel\u5b66\u4e60\u7b14\u8bb0","good":0,"bad":0,"hit":2302,"created_at":"2017-03-09 09:46:39","content":"
\u8bfe\u7a0b\u5730\u5740\uff1ahttps:\/\/ke.qq.com\/course\/135139#term_id=100151501<\/p>
<\/p>
------------------------------------------\u7b2c\u4e00\u8bfe\u7b14\u8bb0------------------------------<\/p>
cmd\u4e0b\u5230\u7ad9\u70b9\u76ee\u5f55\u4e0b\uff1a<\/p>
create-project laravel\/laravel blog --prefer-dist<\/p>
<\/p>
\u5c06\u865a\u62df\u7ad9\u70b9\u6307\u5411public\u76ee\u5f55<\/p>
<\/p>
\u6570\u636e\u5e93\u914d\u7f6e\uff1a<\/p>
config\/database.php\u4e0b\u52a0\u8868\u524d\u7f00<\/p>
'prefix' => env('DB_PREFIX', ''),<\/p>
\u6839\u76ee\u5f55\u4e0b.env\u6570\u636e\u5e93\u914d\u7f6e\u4e2d\u52a0\u4e0a<\/p>
DB_PREFIX=hurong_<\/p>
<\/p>
\u5efa\u63a7\u5236\u5668\uff1a<\/p>
php artisan make:controller IndexController<\/p>
<\/p>
\u8def\u7531\u914d\u7f6e\uff1a<\/p>
app\/Http\/routes.php\u4e2d<\/p>
Route::get('admin\/login','Admin\\LoginController@index');<\/p>
<\/p>
\u6570\u636e\u5e93\u64cd\u4f5c\uff1a<\/p>
<?php<\/p>
<\/p>
namespace App\\Http\\Controllers\\Admin;<\/p>
<\/p>
use Illuminate\\Http\\Request;<\/p>
use Illuminate\\Support\\Facades\\DB;<\/p>
<\/p>
use App\\Http\\Requests;<\/p>
<\/p>
class LoginController extends CommonController<\/p>
{<\/p>
\/\/<\/p>
public function index()<\/p>
{<\/p>
$pdo = DB::connection()->getPdo();<\/p>
dd($pdo);<\/p>
return view('admin.login');\/\/\u6a21\u677f\u5bf9\u5e94\u5728\/resources\/views\/admin\/login.blade.php<\/p>
}<\/p>
}<\/p>
<\/p>
\u6a21\u677f\u6587\u4ef6\u8def\u5f84<\/p>
<link rel="stylesheet" href="{{asset('resources\/views\/admin\/style\/css\/admin.css')}}"\/><\/p>
<\/p>
------------------------------------------\u7b2c2\u8bfe\u7b14\u8bb0------------------------------<\/p>
\u5982\u679c\u539f\u751f\u7684session\u4e0d\u80fd\u7528\uff0c\u5219\u8981\u5728index.php\u4e2d\u5f00\u542fsession_start();<\/p>
\u9a8c\u8bc1\u7801\uff1a<\/p>
\u8def\u7531\u4e2d\u589e\u52a0\u8def\u7531<\/p>
\u63a7\u5236\u5668\u4e2d\u5f15\u5165\u9a8c\u8bc1\u7801\u7c7b\uff0cnew\u7684\u65f6\u5019\u6ce8\u610f\u547d\u540d\u7a7a\u95f4 new \\Code();\u4ee5\u5b9e\u9a8c\u8def\u5f84\u4e3a\u51c6<\/p>
\u6a21\u677f\u4e2d\u5f15\u7528\u8def\u5f84\uff1a<\/p>
<img src="{{URL('admin\/code')}}" onclick="this.src='{{URL('admin\/code')}}?'+Math.random()" \/><\/p>
<\/p>
------------------------------------------\u7b2c3\u8bfe\u7b14\u8bb0------------------------------<\/p>
\u767b\u5f55\u8868\u5355\u63d0\u4ea4<\/p>
\u8def\u7531\u4e2d\u8981\u7528any,\u8868\u5355get,post\u65b9\u5f0f\u90fd\u5339\u914d<\/p>
Route::any('admin\/login','Admin\\LoginController@login');<\/p>
\u5728\u63a7\u5236\u5668\u4e2d\u7528\u8fd9\u79cd\u65b9\u5f0f\u5224\u65ad\u662f\u5426\u63d0\u4ea4\u8868\u5355\uff0c\u7c7b\u4f3cthinkphp\u4e2d\u7684IS_POST:<\/p>
if($input = Input::all()){\/\/use Illuminate\\Support\\Facades\\Input;<\/p>
\tpost\u63d0\u4ea4\u8868\u5355<\/p>
\tif($code_server!=$code_input){\/\/strtoupper\u8f6c\u5927\u5199<\/p>
\t\treturn back()->with('msg','\u9a8c\u8bc1\u7801\u9519\u8bef');\/\/\u8fd9\u4e2a\u9519\u8bef\u4fe1\u606f\u662f\u5426\u5728session\u4e2d\u7684\uff0c\u6a21\u677f\u663e\u793a\u65b9\u5f0f\u89c1\u4e0b\u9762<\/p>
\t}<\/p>
}else{<\/p>
\t\u663e\u793aget\u8bf7\u6c42\u65f6\u7684\u6a21\u677f<\/p>
}<\/p>
<\/p>
<\/p>
\u63d0\u4ea4\u62a5\u9519\u662f\u8981\u5728\u6a21\u677f\u4e2d\u52a0csrf\u8868\u5355\u9a8c\u8bc1token:<\/p>
<form>\u8868\u5355\u4e2d\u52a0<\/p>
{{csrf_field()}}<\/p>
<\/form><\/p>
<\/p>
\u6a21\u677f\u4e2d\u663e\u793a\u9519\u8bef\u63d0\u793a\uff1a<\/p>
@if(session('msg'))<\/p>
<p>{{session('msg')}}<\/p><\/p>
@endif<\/p>
<\/p>
------------------------------------------\u7b2c4\u8bfe\u7b14\u8bb0------------------------------<\/p>
use Crypt;<\/p>
crypt\u5bc6\u7801\u52a0\uff0c\u89e3\u5bc6<\/p>
1\uff0c\u52a0\u8def\u7531\uff0c\u7528any<\/p>
2,\u5728\u65b9\u6cd5\u4e2d\u52a0\u5bc6:\u52a0\u5bc6\u540e\u7684\u957f\u5ea6\u5f88\u957f\uff0c\u8868\u7684\u8bbe\u8ba1\u4e0a\u8981\u8bbe\u5927\u70b9varchar(255)\u4ee5\u4e0a<\/p>
$jiami_str=Cryp::encrypt(\u4e00\u4e2a\u5b57\u7b26\u4e32);\/\/\u52a0\u5bc6\u5f97\u5230\u4e00\u4e2a\u968f\u673a\u5b57\u7b26\u4e32<\/p>
\u89e3\u5bc6\uff1a<\/p>
Cryp::decrypt($jiami_str);<\/p>
\u5c06\u6570\u636e\u5e93\u4e2d\u5b58\u50a8\u7684\u5bc6\u7801\u89e3\u5bc6\u540e\u4e0e\u8f93\u5165\u7684\u5bc6\u7801\u8fdb\u884c\u5bf9\u6bd4\u5224\u65ad\u662f\u5426\u6b63\u786e<\/p>
<\/p>
\u3010\u521b\u5efa\u6a21\u578b\u3011\u8fdb\u884c\u6570\u636e\u5e93\u64cd\u4f5c<\/p>
php artisan make:model User<\/p>
\u4ee5\u4e0a\u521b\u5efa\u7528\u6237\u6a21\u578b\uff1b<\/p>
\u5728app\/Http\u4e0b\u5efaModel\u76ee\u5f55,\u5c06User\u6a21\u578b\u79fb\u52a8\u5230\u8fd9\u4e2a\u76ee\u5f55\u4e0b\uff0c\u6b64\u6587\u4ef6\u8def\u5f84\uff1aapp\/Http\/User.php<\/p>
\u6539\u547d\u540d\u7a7a\u95f4 App\\Http\\Model;<\/p>
class User extends Model{<\/p>
\tprotected $table='user';\/\/\u8868\u540d<\/p>
\tprotected $primaryKey='user_id';\/\/\u4e3b\u952e\u5b57\u6bb5\u540d<\/p>
\tpublic $timestamps=false;\/\/\u7cfb\u7edf\u9ed8\u8ba4\u7684\u66f4\u65b0\u6216\u521b\u5efa\u65f6\u95f4\u5b57\u6bb5\uff0c\u8868\u91cc\u6ca1\u7528\u5230\uff0c\u6240\u4ee5\u4e3afalse<\/p>
<\/p>
}<\/p>
<\/p>
\u63a7\u5236\u5668\u7684\u65b9\u6cd5\u4e2d\u8bfb\u6570\u636e\u5e93\u8868\u4e2d\u7684\u6570\u636e\uff1a<\/p>
$user = User::all();\/\/all\u67e5\u6240\u6709\u4e8c\u7ef4\u6570\u636e,first()\u67e5\u7b2c\u4e00\u6761\uff0c\u4e00\u7ef4\u6570\u636e<\/p>
if(Crypt::decrypt($user->password) != $user_password_input){<\/p>
\t\u5bc6\u7801\u8f93\u9519\u4e86<\/p>
}<\/p>
<\/p>
\/\/\u9a8c\u8bc1\u901a\u8fc7\uff0c\u5c06\u7528\u6237\u4fe1\u606f\u5b58\u50a8\u5728session\u4e2d<\/p>
session(['user'=>$user]);<\/p>
dd(session('user'));\/\/\u53d6session<\/p>
<\/p>
\u767b\u5f55\u6210\u529f\u8df3\u8f6c<\/p>
return redirect('admin\/index');<\/p>
------------------------------------------\u7b2c5\u8bfe\u7b14\u8bb0------------------------------<\/p>
\u6b22\u8fce\u754c\u9762<\/p>
\u5efa\u8def\u7531<\/p>
\u5efa\u63a7\u5236\u5668\uff0c\u62d6\u76ee\u5f55\uff0c\u6539\u547d\u540d\u7a7a\u95f4<\/p>
public function IndexController extends CommonController{<\/p>
\t<\/p>
\tpublic function index(){<\/p>
\t\treturn view('welcome');\/\/\u7cfb\u7edf\u9ed8\u8ba4\u6b22\u8fce\u754c\u9762\uff0cadmin.index\u81ea\u5df1\u5b9a\u7684\u6a21\u677f<\/p>
\t}<\/p>
}<\/p>
<\/p>
\u6a21\u677f\u4e2d\u7528blade\u6a21\u677f\u5f15\u64ce\u8f93\u51fa\u53d8\u91cf<\/p>
{{PHP_OS}}\u8f93\u51fa\u64cd\u4f5c\u7cfb\u7edf\uff1b\u5176\u5b9e\u5c31\u662f$_SERVER\u4e2d\u7684\uff0c\u5982{{$_SERVER['SERVER_SOFTWARE']}}\u5c31\u662fphp\u4e2d\u7684$_SERVER['SERVER_SOFTWARE']<\/p>
\u4e5f\u53ef\u4ee5\u7528\u539f\u751fphp\u5728\u6a21\u677f\u4e2d\uff0c\u5982<?php echo '11';?><\/p>
\u66f4\u591a\u89c1:bbs.houdunwang.com\/thread-101222-1-1.html<\/p>
<\/p>
\u65f6\u533a\u4fee\u6539\u5728\/config\/app.php\u4e2d<\/p>
<\/p>
\u6a21\u677f\u516c\u7528\u6a21\u677f\uff0c\u6a21\u677f\u5934\uff0c\u6a21\u677f\u5e95\u90e8\uff1a<\/p>
\u5f53\u524d\u6a21\u677f\u4e2d\uff1a<\/p>
@extends('layouts.admin') \u8fd9\u4e2a\u662f\u6a21\u677f\u516c\u5171\u90e8\u5206\uff0c\u8def\u5f84\uff1aresources\/views\/layouts\/admin.blade.php<\/p>
@section('content')<\/p>
\u8fd9\u4e2d\u95f4\u653e\u4e0d\u4e00\u6837\u7684\u6a21\u677f\u5185\u5bb9<\/p>
@endsection<\/p>
<\/p>
\u516c\u5171\u6a21\u677fadmin.blade.php\u8bbe\u7f6e<\/p>
<html><\/p>
<head><\/p>
css\u5f15\u5165<\/p>
js\u5f15\u5165<\/p>
<body><\/p>
@yield('content') \u8fd9\u4e2a\u8868\u793a\u5176\u5b83\u6a21\u677f\u7684\u66ff\u6362\u533a<\/p>
<\/body><\/p>
<\/html><\/p>
<\/p>
<\/p>
------------------------------------------\u7b2c6\u8bfe\u7b14\u8bb0------------------------------<\/p>
\u540e\u53f0\u672a\u767b\u5f55\u7684\u6743\u9650\u68c0\u6d4b<\/p>
\u7528\u4e2d\u95f4\u4ef6\u5b9e\u9a8c\uff0c\u4e0d\u592a\u597d\u8bb0\u7b14\u8bb0\uff0c\u770b\u89c6\u9891\u5427<\/p>
<\/p>
------------------------------------------\u7b2c7\u8bfe\u7b14\u8bb0------------------------------<\/p>
\u9a8c\u8bc1\u6570\u636e\uff0c\u6539\u5bc6\u7801<\/p>
$rules=[<\/p>
\t'password'=>'required|between:6,20|confirmed', \/\/\u6ce8\u610f\u8981\u5c06\u8868\u5355\u4e2d\u7684\u786e\u8ba4\u5bc6\u7801input\u7684name\u540d\u6539\u6210password_confirmation<\/p>
<\/p>
];<\/p>
$mesage=[<\/p>
\t'password.required'=>'\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a',<\/p>
\t'password.between'=>'\u5bc6\u7801\u957f\u5ea66\u523020\u4f4d',<\/p>
\t'password.confirmed'=>'\u4e24\u6b21\u8f93\u5165\u7684\u5bc6\u7801\u4e0d\u4e00\u6837',<\/p>
];<\/p>
$validator = Validator::make($input,$rules,$message);\/\/use Validator;<\/p>
if($validator->passes()){<\/p>
\t$user =\tUser::first();<\/p>
\tCrypt::decrypt($user->user_password);\/\/\u89e3\u6790\u5bc6\u7801\u8fdb\u884c\u5bf9\u6bd4<\/p>
\t\u5982\u679c\u4e0d\u5bf9<\/p>
\tretrn back()->with('errors','\u5bc6\u7801\u8f93\u5165\u9519\u8bef');\/\/\u6ce8\u610f\u662ferrors<\/p>
\t\u5982\u679c\u5bf9,\u66f4\u65b0\u6570\u636e\u5e93<\/p>
\t$user->user_password = Crypt::encrypt($input['password']);<\/p>
\t$user->update();\/\/\u6216save();<\/p>
}else{<\/p>
\t\u9a8c\u8bc1\u4e0d\u901a\u8fc7<\/p>
\t$result=$validator->errors()->all();<\/p>
\tdd($result);<\/p>
\treturn back()->withErrors($validator);\/\/\u5c06\u9519\u8bef\u4fe1\u606f\u4f20\u8fc7\u6765,\u6709s<\/p>
<\/p>
\t\/\/\u5728\u6a21\u677f\u4e2d\u663e\u793a\u9519\u8bef\uff1a<\/p>
\t@if(count($errors)>0)<\/p>
\t\t@foreach($erors->all() as $error)<\/p>
\t\t{{$error}}<\/p>
\t\t@endforeach<\/p>
\t@endif<\/p>
}<\/p>
<\/p>"}