Step 1: tạo file xử lý logic cho chức năng Kích hoạt tài khoản

  • Tạo file kichhoattaikhoan.php
  • Nội dung file:
<?php
// Include file cấu hình ban đầu của `Twig`
require_once __DIR__.'/../../bootstrap.php';

// Truy vấn database
// 1. Include file cấu hình kết nối đến database, khởi tạo kết nối $conn
include_once(__DIR__.'/../../dbconnect.php');

// Lấy dữ liệu người dùng hiệu chỉnh gởi từ REQUEST GET
$kh_tendangnhap = $_GET['kh_tendangnhap'];
$kh_makichhoat = $_GET['kh_makichhoat'];

// Câu lệnh SELECT
$sqlSelect = <<<EOT
    SELECT *
    FROM khachhang
    WHERE kh_tendangnhap = '$kh_tendangnhap'
    LIMIT 1;
EOT;

// Thực thi SELECT
$result = mysqli_query($conn, $sqlSelect) or die("<b>Có lỗi khi thực thi câu lệnh SQL: </b>" . mysqli_error($conn) . "<br /><b>Câu lệnh vừa thực thi:</b></br>$sqlSelect");

// Sử dụng hàm `mysqli_num_rows()` để đếm số dòng SELECT được
// Nếu có bất kỳ dòng dữ liệu nào SELECT được <-> Người dùng có tồn tại và đã đúng thông tin kh_tendangnhap, kh_makichhoat
if(mysqli_num_rows($result) > 0) {
    // Cập nhật trạng thái của User này thành 1 (kích hoạt)
    $sqlUpdate = <<<EOT
        UPDATE khachhang
        SET kh_trangthai = 1
        WHERE kh_tendangnhap = '$kh_tendangnhap' AND kh_makichhoat = '$kh_makichhoat';
EOT;

    // Thực thi SELECT
    mysqli_query($conn, $sqlUpdate) or die("<b>Có lỗi khi thực thi câu lệnh SQL: </b>" . mysqli_error($conn) . "<br /><b>Câu lệnh vừa thực thi:</b></br>$sqlUpdate");

    // Kiểm tra xem có dòng nào được cập nhật hay không?
    if($conn->affected_rows > 0) {
        // Yêu cầu `Twig` vẽ giao diện được viết trong file `frontend/auth/user-activated.html.twig`
        echo $twig->render('frontend/auth/user-activated.html.twig');
    } else {
        echo 'Không tìm thấy tài khoản cần Cập nhật!';
    }
}
else {
    echo 'Không tìm thấy người dùng. Kích hoạt thất bại!';
}

Step 2: tạo file template cho Trang kích hoạt tài khoản thành công

  • Tạo file `templates/frontend/auth/user-activated.html.twig`
  • Nội dung:
{# Kế thừa layout frontend #}
{% extends "frontend/layouts/layout.html.twig" %}

{# Nội dung trong block title #}
{% block title %}
Đăng nhập
{% endblock %}
{# End Nội dung trong block title #}

{# Nội dung trong block headline #}
{% block headline %}
Đăng nhập
{% endblock %}
{# End Nội dung trong block headline #}

{# Nội dung trong block content #}
{% block content %}
<div class="container mt-4">
    <div class="row">
        <div class="col">
            <h1>Chúc mừng bạn đã kích hoạt tài khoản thành công!</h1>
            <a class="btn btn-outline-primary" href="/">Quay về Trang chủ</a>
            <a class="btn btn-primary" href="/frontend/auth/login.php">Đăng nhập ngay!</a>
        </div>
    </div>
</div>
{% endblock %}
{# End Nội dung trong block content #}