PHP+mysql+Laravel实现用户Email注册和登录了,要求数据进行MD5加密。给出从配环境到安装应用及整个过程的详细步骤
时间: 2023-12-30 22:03:15 浏览: 31
以下是使用 PHP+MySQL+Laravel 实现用户 Email 注册和登录,并对数据进行 MD5 加密的详细步骤:
1. 环境配置
- 安装 PHP、MySQL 和 Composer
- 安装 Laravel:运行命令 `composer global require laravel/installer`
- 创建新项目:运行命令 `laravel new project-name`
2. 数据库配置
- 打开 `.env` 文件,设置数据库连接信息
```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database_name
DB_USERNAME=database_username
DB_PASSWORD=database_password
```
- 运行命令 `php artisan migrate` 创建用户表
3. 注册页面
- 在 `routes/web.php` 中添加注册页面路由
```php
Route::get('/register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('/register', 'Auth\RegisterController@register');
```
- 创建注册页面模板 `resources/views/auth/register.blade.php`
```html
<form method="POST" action="{{ route('register') }}">
@csrf
<label for="name">{{ __('Name') }}</label>
<input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus>
<label for="email">{{ __('Email') }}</label>
<input id="email" type="email" name="email" value="{{ old('email') }}" required>
<label for="password">{{ __('Password') }}</label>
<input id="password" type="password" name="password" required>
<label for="password-confirm">{{ __('Confirm Password') }}</label>
<input id="password-confirm" type="password" name="password_confirmation" required>
<button type="submit">{{ __('Register') }}</button>
</form>
```
- 在 `app/Http/Controllers/Auth/RegisterController.php` 中添加注册逻辑
```php
use App\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
class RegisterController extends Controller
{
use RegistersUsers;
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}
```
4. 登录页面
- 在 `routes/web.php` 中添加登录页面路由
```php
Route::get('/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Auth\LoginController@login');
```
- 创建登录页面模板 `resources/views/auth/login.blade.php`
```html
<form method="POST" action="{{ route('login') }}">
@csrf
<label for="email">{{ __('Email') }}</label>
<input id="email" type="email" name="email" value="{{ old('email') }}" required autofocus>
<label for="password">{{ __('Password') }}</label>
<input id="password" type="password" name="password" required>
<button type="submit">{{ __('Login') }}</button>
</form>
```
- 在 `app/Http/Controllers/Auth/LoginController.php` 中添加登录逻辑
```php
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected function attemptLogin(Request $request)
{
$credentials = $request->only('email', 'password');
$credentials['password'] = md5($credentials['password']);
return $this->guard()->attempt(
$credentials, $request->filled('remember')
);
}
}
```
至此,用户 Email 注册和登录已经完成,并对密码进行了 MD5 加密。