สอนทำเว็บไซต์

สร้างระบบสมาชิกในเว็บไซต์ด้วย PHP และ Laravel

การสร้างระบบสมาชิกในการสอนทำเว็บไซต์เป็นหนึ่งในฟีเจอร์ที่จำเป็นสำหรับการบริหารจัดการผู้ใช้และการรักษาความปลอดภัยของเว็บไซต์ Laravel ซึ่งเป็น PHP Framework ที่มีความสามารถสูงและใช้งานง่าย ทำให้การสร้างระบบสมาชิกสามารถทำได้อย่างรวดเร็วและมีประสิทธิภาพ ในบทความนี้เราจะมาดูขั้นตอนการสร้างระบบสมาชิกที่มีคุณสมบัติเบื้องต้นเช่น การสมัครสมาชิก, การเข้าสู่ระบบ, การยืนยันอีเมล และการจัดการผู้ใช้ โดยใช้ Laravel Framework

1. ติดตั้ง Laravel

ก่อนที่จะเริ่มต้นพัฒนา เราต้องติดตั้ง Laravel บนเครื่องของเราเพื่อเริ่มต้นการพัฒนาแอปพลิเคชัน ในการติดตั้ง Laravel จะใช้ Composer ซึ่งเป็นเครื่องมือจัดการแพ็คเกจใน PHP

ขั้นตอนการติดตั้ง Laravel

  1. ติดตั้ง Composer หากยังไม่ได้ติดตั้ง ดาวน์โหลด Composer
  2. สร้างโปรเจ็กต์ Laravel ใหม่โดยการรันคำสั่ง:
bash
composer create-project --prefer-dist laravel/laravel project_name
  1. เมื่อเสร็จสิ้นการติดตั้ง เข้าไปที่โฟลเดอร์โปรเจ็กต์ของคุณ:
bash
cd project_name
  1. ตั้งค่าไฟล์ .env สำหรับการเชื่อมต่อฐานข้อมูล โดยการตั้งค่าต่อไปนี้ในไฟล์ .env:
env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password

2. สร้างตารางสำหรับสมาชิกในฐานข้อมูล

เมื่อเราเตรียมการตั้งค่า Laravel เรียบร้อยแล้ว เราจะสร้าง migration สำหรับตาราง users เพื่อเก็บข้อมูลสมาชิก เช่น ชื่อ, อีเมล, รหัสผ่าน ฯลฯ

  1. สร้าง migration สำหรับ users:
bash
php artisan make:migration create_users_table --create=users
  1. ในไฟล์ migration ที่สร้างขึ้นใน database/migrations/xxxx_xx_xx_create_users_table.php ให้เพิ่มโค้ดเพื่อสร้างตาราง users:
php
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
  1. รัน migration เพื่อสร้างตารางในฐานข้อมูล:
bash
php artisan migrate

3. สร้างระบบสมัครสมาชิก

ในขั้นตอนนี้ เราจะใช้ฟีเจอร์ที่ Laravel เตรียมไว้ให้สำหรับการจัดการระบบสมาชิก ซึ่งจะช่วยให้การสมัครสมาชิกง่ายขึ้น

  1. สร้าง controller สำหรับการจัดการผู้ใช้:
bash
php artisan make:controller Auth/RegisterController
  1. ใน controller นี้เราจะใช้ฟังก์ชัน create เพื่อบันทึกข้อมูลของสมาชิกใหม่:
php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;

class RegisterController extends Controller
{
public function showRegistrationForm()
{
return view(‘auth.register’);
}

public function register(Request $request)
{
// Validate the form data
$validator = Validator::make($request->all(), [
‘name’ => ‘required|string|max:255’,
’email’ => ‘required|string|email|max:255|unique:users’,
‘password’ => ‘required|string|min:8|confirmed’,
]);

if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}

// Create the user
User::create([
‘name’ => $request->name,
’email’ => $request->email,
‘password’ => Hash::make($request->password),
]);

// Redirect or login the user after successful registration
return redirect()->route(‘login’);
}
}

4. สร้างหน้า Register

เราต้องสร้างหน้าเว็บสำหรับการสมัครสมาชิก (register) ที่ผู้ใช้จะกรอกข้อมูลของตนเอง

  1. สร้างไฟล์ resources/views/auth/register.blade.php สำหรับฟอร์มสมัครสมาชิก:
html
<form method="POST" action="{{ route('register') }}">
@csrf
<div>
<label for="name">Name</label>
<input type="text" name="name" id="name" value="{{ old('name') }}" required>
</div>

<div>
<label for=“email”>Email</label>
<input type=“email” name=“email” id=“email” value=“{{ old(’email’) }}” required>
</div>

<div>
<label for=“password”>Password</label>
<input type=“password” name=“password” id=“password” required>
</div>

<div>
<label for=“password_confirmation”>Confirm Password</label>
<input type=“password” name=“password_confirmation” id=“password_confirmation” required>
</div>

<button type=“submit”>Register</button>
</form>

5. การเข้าสู่ระบบ

Laravel มีฟีเจอร์การเข้าสู่ระบบ (login) ที่สามารถใช้งานได้ทันทีโดยไม่ต้องเขียนโค้ดมากมาย คุณสามารถใช้ Auth ในการจัดการการเข้าสู่ระบบได้

  1. ใน routes/web.php ให้เพิ่มเส้นทางสำหรับการเข้าสู่ระบบ:
php

use App\Http\Controllers\Auth\RegisterController;

Route::get(‘register’, [RegisterController::class, ‘showRegistrationForm’])->name(‘register’);
Route::post(‘register’, [RegisterController::class, ‘register’]);

  1. หากคุณต้องการฟังก์ชันเข้าสู่ระบบและออกจากระบบ (Login & Logout) คุณสามารถใช้คำสั่งของ Laravel เช่น Auth::login() และ Auth::logout() ซึ่งมีในฟังก์ชัน Auth พร้อมกับระบบตรวจสอบและยืนยันอีเมล

6. การยืนยันอีเมล

Laravel มีระบบการยืนยันอีเมลให้ใช้งานง่าย โดยคุณสามารถเปิดใช้ฟีเจอร์นี้ได้ใน model User:

  1. ให้ User model ใช้ MustVerifyEmail:
php

use Illuminate\Contracts\Auth\MustVerifyEmail;

class User extends Authenticatable implements MustVerifyEmail
{
// code here
}

  1. เปิดการยืนยันอีเมลใน routes/web.php:
php
Route::get('/email/verify', function () {
return view('auth.verify');
})->middleware('auth')->name('verification.notice');

สรุป

การสร้างระบบสมาชิกในการสอนทำเว็บไซต์ด้วย Laravel เป็นเรื่องง่ายและสะดวกมากเพราะ Laravel มีเครื่องมือและฟีเจอร์ที่เตรียมไว้ให้ใช้งานอยู่แล้ว เช่น การจัดการฐานข้อมูล, การยืนยันอีเมล, การเข้าสู่ระบบ และการจัดการผู้ใช้ ทำให้การสร้างระบบสมาชิกเป็นเรื่องที่ไม่ยุ่งยาก โดยสามารถปรับแต่งได้ตามต้องการ และสามารถขยายได้ในอนาคต

Leave A Comment