Dengan pembangunan Internet yang berterusan, fungsi log masuk pengguna telah menjadi bahagian penting dalam banyak laman web. Sebagai bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web, PHP juga boleh melaksanakan fungsi log masuk pengguna dengan menulis kod. Dalam artikel ini, kami akan memperincikan cara melaksanakan fungsi log masuk pengguna dalam PHP.
Sebelum mula menulis fungsi log masuk pengguna, kita perlu menyediakan prasyarat berikut:
Sebelum kita mula menulis kod, kita perlu mencipta jadual pengguna dalam pangkalan data untuk menyimpan maklumat pengguna. Anggapkan bahawa jadual pengguna kami dinamakan pengguna dan mengandungi medan berikut:
Anda boleh mencipta jadual pengguna dalam pangkalan data MySQL melalui pernyataan SQL berikut:
CREATE TABLE `users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT '', `email` varchar(255) NOT NULL DEFAULT '', `password` varchar(255) NOT NULL DEFAULT '', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `users_email_unique` (`email`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Dalam rangka kerja Laravel, kita boleh melaksanakan fungsi log masuk pengguna dengan menulis pengawal dan pandangan. Dalam artikel ini, kami akan menggunakan contoh kod berikut untuk melaksanakan fungsi log masuk pengguna.
Pertama, kita perlu mencipta fail pengawal AuthController dalam direktori app/Http/Controllers untuk mengendalikan log masuk pengguna:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; class AuthController extends Controller { public function getLogin() { return view('auth.login'); } public function postLogin(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { // 登录成功 return redirect()->intended('/'); } else { // 登录失败 return redirect()->back()->withErrors(['email' => '邮箱或密码不正确']); } } public function logout() { Auth::logout(); return redirect()->route('login'); } }
Dalam kod di atas, kami mentakrifkan getLogin, postLogin dan logout Tiga kaedah . Antaranya, kaedah getLogin digunakan untuk mengembalikan paparan halaman log masuk (auth.login), kaedah postLogin digunakan untuk memproses borang log masuk yang dihantar oleh pengguna, dan kaedah log keluar digunakan untuk log keluar.
Seterusnya, kita perlu mencipta fail paparan bernama auth/login.blade.php dalam direktori resources/views untuk memaparkan borang log masuk. Kandungan fail adalah seperti berikut:
@extends('layouts.app') @section('content') <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">登录</div> <div class="panel-body"> {!! Form::open(['route' => 'login.post', 'class' => 'form-horizontal']) !!} <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}"> {!! Form::label('email', '邮箱', ['class' => 'col-md-4 control-label']) !!} <div class="col-md-6"> {!! Form::email('email', old('email'), ['class' => 'form-control', 'required' => 'required', 'autofocus' => 'autofocus']) !!} @if ($errors->has('email')) <span class="help-block"> <strong>{{ $errors->first('email') }}</strong> </span> @endif </div> </div> <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}"> {!! Form::label('password', '密码', ['class' => 'col-md-4 control-label']) !!} <div class="col-md-6"> {!! Form::password('password', ['class' => 'form-control', 'required' => 'required']) !!} @if ($errors->has('password')) <span class="help-block"> <strong>{{ $errors->first('password') }}</strong> </span> @endif </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <div class="checkbox"> <label> {!! Form::checkbox('remember') !!} 记住我 </label> </div> </div> </div> <div class="form-group"> <div class="col-md-8 col-md-offset-4"> {!! Form::submit('登录', ['class' => 'btn btn-primary']) !!} <a class="btn btn-link" href="{{ route('password.request') }}"> 忘记密码? </a> </div> </div> {!! Form::close() !!} </div> </div> </div> </div> </div> @endsection
Dalam kod di atas, kami menggunakan sintaks enjin templat Blade rangka kerja Laravel untuk mencipta paparan borang log masuk dengan cepat.
Akhir sekali, kami perlu mengkonfigurasi laluan berkaitan log masuk pengguna dalam fail penghalaan route/web.php, seperti yang ditunjukkan di bawah:
Route::get('login', 'AuthController@getLogin')->name('login'); Route::post('login', 'AuthController@postLogin')->name('login.post'); Route::post('logout', 'AuthController@logout')->name('logout');
Dalam kod di atas, kami mentakrifkan tiga laluan, sepadan dengan halaman log masuk pengguna, pengguna menghantar borang log masuk dan pengguna log keluar.
Selepas penulisan dan konfigurasi kod di atas, kami telah menyelesaikan pelaksanaan fungsi log masuk pengguna. Kini, kita boleh melawati halaman http://your-domain.com/login dalam penyemak imbas, masukkan e-mel dan kata laluan yang betul, dan kemudian klik butang "Log Masuk" untuk berjaya log masuk ke tapak web.
Ringkasan
Melalui pengenalan artikel ini, kami telah mempelajari cara melaksanakan fungsi log masuk pengguna dalam PHP, termasuk mencipta jadual pengguna, menulis pengawal dan pandangan, mengkonfigurasi penghalaan dan langkah lain. Sudah tentu, artikel ini hanya menyediakan contoh mudah, dan logik pemprosesan yang lebih kompleks mungkin diperlukan dalam pembangunan sebenar. Saya harap pembaca dapat menguasai teknik yang diperkenalkan dalam artikel ini dan menggunakannya untuk mencapai fungsi log masuk pengguna yang lebih berkuasa.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi log masuk pengguna dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!