QRCODE VÀ TÌM HIỂU VỀ LẬP TRÌNH WEB TRÊN PHP/SQL
QRcode : Mã vạch thế hệ mới
QR Code hiện nay đã trở nên phổ biến, xuất hiện trên nhiều sản phẩm và trở thành phương thức nhận diện chính cho ứng dụng di động QR Code, viết tắt của Quick Response Code (Mã phản hồi nhanh), là dạng mã vạch hai chiều (2D) có thể được đọc bởi máy đọc mã vạch hoặc smartphone có camera và ứng dụng quét mã.
Mã QR có khả năng chứa đựng nhiều loại thông tin như địa chỉ web, thời gian sự kiện, thông tin liên hệ, địa chỉ email, tin nhắn SMS, nội dung văn bản và thông tin định vị địa lý Khi quét mã QR, tùy thuộc vào thiết bị, người dùng có thể được dẫn đến trang web, gọi điện thoại hoặc xem tin nhắn Điểm khác biệt giữa mã QR và mã vạch truyền thống là lượng dữ liệu mà chúng có thể lưu trữ; mã vạch chỉ có thể chứa 20 chữ số, trong khi mã QR có thể lưu trữ hàng ngàn ký tự Mã QR không chỉ nắm giữ nhiều thông tin hơn mà còn dễ sử dụng, giúp ích cho người dùng trong nhiều lĩnh vực Hơn nữa, mã QR có thể được đọc từ cả hai chiều và từ bất kỳ hướng nào mà không bị ảnh hưởng bởi chất liệu hay nền, do đó, mã QR đang trở thành xu hướng và dần thay thế mã vạch truyền thống.
Qrcode có 2 loại chính : động và tĩnh
QR code động, hay còn gọi là "QR code trực tiếp", cho phép chỉnh sửa liên kết chính sau khi đã được khởi tạo mà không cần can thiệp vào mã Khi quét, mã động sẽ chuyển hướng đến máy chủ lưu trữ hình ảnh đã quét Loại mã này tiện lợi hơn vì chỉ cần tạo một lần, bạn có thể thay đổi thông tin hiển thị như các liên kết (domain, web) mỗi khi quét.
Mã QR tĩnh khác với mã QR động ở chỗ nó lưu trữ thông tin trực tiếp dưới dạng văn bản hoặc dẫn đến trang web mà không cần liên kết thứ cấp Điều này có nghĩa là thông tin hoặc liên kết trong mã tĩnh không thể thay đổi hoặc chỉnh sửa, vì vậy bạn sẽ cần tạo mã mới mỗi khi muốn cập nhật Mã QR tĩnh là lựa chọn lý tưởng cho những ai muốn mã chứa thông tin vĩnh viễn, chẳng hạn như ngày sinh hoặc nhóm máu.
Thuật toán QRcode
2.1 Tạo một chuỗi nhị phân:
Để tạo mã QR code, bước đầu tiên là xây dựng một chuỗi nhị phân, bao gồm dữ liệu và thông tin về chế độ mã hóa cùng với độ dài của dữ liệu.
Trong phần này chúng ta sẽ tìm hiểu mã hóa chuỗi HELLO WORLD ở
QR code phiên bản 1, với mức độ sửa lỗi là Q
Bước 1: Mã hóa Bộ chỉ chế độ (Mode Indicator)
Một bộ chỉ chế độ là một chuỗi 4 bit thể hiện chế độ dữ liệu bạn đang sử dụng: kiểu số, kiểu chuỗi, kiểu nhị phân hoặc Nhật ngữ
Với chuỗi HELLO WORLD, là kiểu chuỗi, vậy nên Bộ chỉ chế độ sẽ là
Bước 2: Mã hóa độ dài của dữ liệu
Trong bước này, chúng ta xác định có bao nhiêu ký tự trong thông điệp, và chuyển độ dài đó thành một số nhị phân
Với chuỗi HELLO WORLD, có 11 ký tự kể cả khoảng trắng Ta chuyển 11 sang nhị phân, được 1011
Khi mã hóa độ dài dữ liệu, chúng ta sử dụng một số lượng bit nhất định Đối với QR code phiên bản 1, cần 9 bit để mã hóa độ dài dữ liệu Để đạt được đủ 9 bit, ta thêm số 0 vào đầu chuỗi, ví dụ: 000001011.
-Kiểu số: 10 bits -Kiểu chuỗi: 9 bits -Kiểu nhị phân: 8 bits -Kiểu Nhật ngữ: 8 bits
Tới đây chuỗi nhị phân chúng ta là: 0010 000001011
Bước 3: Mã hóa dữ liệu Để mã hóa chuỗi ký tự, ta chia chuỗi thành các cặp ký tự: HE,LL,O ,WO,RL,D
Đối với mỗi cặp ký tự, ta tính giá trị mã ASCII của ký tự đầu tiên, nhân với 45 và cộng với giá trị mã ASCII của ký tự thứ hai, sau đó chuyển đổi kết quả thành chuỗi nhị phân 11 bit Nếu ký tự không có cặp, ta chỉ cần lấy giá trị mã ASCII của nó và chuyển đổi thành chuỗi nhị phân 6 bit Đối với các chế độ khác như kiểu số, kiểu nhị phân và kiểu Nhật ngữ, ta áp dụng phương thức mã hóa dữ liệu khác.
Bước 4: Hoàn thành các bit
Để đảm bảo chuỗi bit đạt độ dài cần thiết, chúng ta cần xác định số lượng bit cần thiết cho việc tạo phiên bản và sửa lỗi.
Với QR code phiên bản 1, sửa lỗi mức độ Q Chúng ta phải tạo một chuỗi
Để đạt được độ dài 104 bit cho chuỗi bit, nếu chuỗi hiện tại ít hơn 104 bit, bạn cần thêm 4 số 0 vào cuối chuỗi Nếu sau khi thêm 4 số 0 mà chuỗi vẫn chưa đủ 104 bit, chỉ cần tiếp tục thêm số 0 cho đến khi đạt đủ 104 bit.
Chuỗi của chúng ta có 59 bit, ta thêm 4 số 0 vào cuối chuỗi (Còn nếu chuỗi có 102 bit thì ta thêm 2 số 0)
Chuỗi của ta bây giờ là:
Bước 5: Giới hạn chuỗi thành các chuỗi con 8 bit, sau đó thêm các số 0 nếu cần
Chúng ta chia chuỗi thành các nhóm 8 bit và nếu chuỗi con cuối cùng không đủ 8 bit, ta sẽ thêm 2 số 0 vào cuối để hoàn thiện.
Bước 6:Thêm các từ vào cuối nếu chuỗi quá ngắn
Nếu chuỗi bit của bạn chưa đủ dài, hãy thêm lần lượt hai chuỗi con đặc biệt 11101100 và 00010001 vào chuỗi của mình để mở rộng độ dài.
Chuỗi của chúng ta hiện có 10 chuỗi con và cần thêm 3 chuỗi con nữa Đầu tiên, hãy thêm chuỗi 11101100, sau đó là 00010001, và cuối cùng là 11101100 Nếu cần nhiều hơn, bạn có thể tiếp tục thêm theo thứ tự như vậy cho đến khi đạt đủ số lượng chuỗi con mong muốn.
Chuỗi của chúng ta bây giờ:
2.2 Tạo bộ mã sửa lỗi
Bước1: Chọn mức sửa lỗi
Để tạo mã sửa lỗi, bước đầu tiên là xác định số lượng từ cần thiết cho phiên bản QR và mức độ sửa lỗi Để biết thêm thông tin chi tiết, hãy tham khảo bảng sửa lỗi.
Bước 2: Tạo một thông điệp đa thức
Chúng ta chuyển 13 khối dữ liệu ở trên thành dạng thập phân:
Các số này sẽ là hệ số của đa thức Ta có:
Lũy thừa của số hạng đầu tiên được tính:
Số khối dữ liệu + số mã sửa lỗi -1 Ở đây là 13+13-1% Vậy nên số hạng đầu tiên là 32x 25
Bước 3: Tạo bộ tạo đa thức
Tiếp theo ta sẽ tạo một bộ tạo đa thức Ta chia thông điệp đa thức bởi bộ tạo này để tạo mã sửa lỗi
Các bộ tạo đa thức được hình thành từ một trường hữu hạn, hay còn gọi là trường Galois Mã QR sử dụng một trường Galois với 256 yếu tố, cho phép các số được giao dịch dao động từ 0 đến tối đa 255.
0 Để thực hiện việc phân chia đa thức, chúng ta sẽ được chuyển đổi qua lại giữa các ký hiệu α (alpha) và các số nguyên Alpha và các giá trị số nguyên từ bảng log và antilog
Bộ tạo đa thức có dạng (x – α)(x – α2)…(x – αt), trong đó t là số lượng mã sửa lỗi cần thiết trừ đi 1 Với 13 mã sửa lỗi yêu cầu, giá trị của t trong trường hợp này là 12.
Chúng ta thực hiện triển khai tất cả các thành phần (x – α) cho đến khi tạo ra một đa thức Công việc này khá phức tạp khi thực hiện bằng tay và cần sử dụng công cụ generator polynomial Tại đây, chúng tôi đã tạo ra 13 mã sửa lỗi với các hệ số như sau: α 0 x 25 + α 74 x 24 + α 152 x 23 + α 176 x 22 + α 100 x 21 + α 86 x 20 + α 100 x 19 + α 106 x 18 + α 104 x 17 + α 130 x 16 + α 218 x 15 + α 206 x 14 + α 140 x 13 + α 78 x 12.
Dưới đây, tôi cho thấy từng bước của việc phân chia đa thức cần thiết để tạo ra mã sửa lỗi
Kết quả của bước này ta được mã sửa lỗi:
Ta đặt đoạn mã sửa lỗi sau đoạn mã dữ liệu:
2.3 Chọn mẫu mặt nạ phù hợp
Chúng ta đã hoàn tất việc mã hóa dữ liệu, bước tiếp theo là lựa chọn mẫu mặt nạ tốt nhất Mẫu mặt nạ này thay đổi dựa trên các bit theo một quy tắc cụ thể và được định nghĩa trong tiêu chuẩn mã QR.
Có 8 mẫu mặt nạ Sử dụng mô hình mặt nạ cho phép chúng tôi để tạo ra tám mã QR khác nhau và sau đó chọn một trong đó sẽ được dễ dàng nhất cho một đầu đọc QR để quét Một đặc biệt mã QR có thể có các mẫu nhất chính xác quét mã QR Ví dụ, nếu điểm ảnh của cùng một màu sắc xảy ra gần nhau, một đầu đọc QR có thể gặp khó khăn khi đọc chính xác các điểm ảnh
Ngôn ngữ PHP, MySQL
PHP, viết tắt của “Personal Home Page”, được Rasmus Lerdorf phát triển vào năm 1994 Nhờ vào tính hữu dụng và khả năng phát triển mạnh mẽ, PHP nhanh chóng được áp dụng trong môi trường chuyên nghiệp và ngày càng trở nên phổ biến.
PHP (Hypertext Preprocessor) là ngôn ngữ kịch bản nhúng trong HTML, cho phép mã PHP được rải rác trong trang HTML Đây là công nghệ phía máy chủ (Server-Side) không phụ thuộc vào môi trường, cho phép PHP chạy trên nhiều hệ điều hành như Windows và Unix Điều này có nghĩa là mã PHP viết trên một máy chủ có thể hoạt động bình thường trên máy chủ khác mà không cần chỉnh sửa nhiều Khi một trang web sử dụng PHP, nó cần xử lý thông tin và xuất ra kết quả dưới dạng HTML PHP được thiết kế để thực hiện các tác vụ sau khi có sự kiện xảy ra, chẳng hạn như khi người dùng gửi biểu mẫu hoặc truy cập một URL.
2.1.2 Lý do nên dùng PHP Để thiết kế web động có rất nhiều ngôn ngữ lập trình khác nhau để lựa chọn, mặc dù cấu hình và tính năng khác nhau nhưng chúng vẵn đưa ra những kết quả giống nhau Chúng ta có thể lựa chọn cho mình một ngôn ngữ: ASP, PHP, Java, Perl, và một số loại khác nữa Vậy tại sao chúng ta lại nên chọn PHP? Rất đơn giản, có những lí do sau mà khi lập trình web chúng ta không nên bỏ qua sự lựa chọn tuyệt vời này:
- PHP được sử dụng làm web động vì nó nhanh, dễ dàng, tốt hơn so với các giải pháp khác
PHP có khả năng tích hợp chặt chẽ với hầu hết các cơ sở dữ liệu hiện có, mang đến tính linh động và bền vững, cùng với khả năng phát triển không giới hạn.
PHP là một mã nguồn mở miễn phí, cho phép người dùng truy cập và sử dụng tất cả các tính năng của nó Nhờ vào sự phát triển liên tục từ cộng đồng lập trình viên, PHP không ngừng được cải tiến và nâng cao, giúp khắc phục các lỗi trong các chương trình.
PHP là một ngôn ngữ lập trình dễ tiếp cận cho người mới, đồng thời cũng đáp ứng tốt mọi yêu cầu của các lập trình viên chuyên nghiệp Với khả năng linh hoạt và mạnh mẽ, PHP có thể hiện thực hóa mọi ý tưởng một cách xuất sắc.
PHP đã nhanh chóng bắt kịp ASP, trở thành một trong những ngôn ngữ kịch bản phổ biến nhất hiện nay, với hơn 12 triệu website sử dụng.
PHP là ngôn ngữ lập trình phía máy chủ, cho phép mã lệnh được xử lý trên máy chủ để phục vụ các yêu cầu từ người dùng thông qua trình duyệt Sơ đồ hoạt động của PHP minh họa cách thức này.
Khi người dùng truy cập website viết bằng PHP, máy chủ xử lý mã lệnh PHP theo các hướng dẫn mã hóa và gửi dữ liệu HTML tương ứng đến trình duyệt PHP thực chất là một trang HTML có nhúng mã PHP, với phần mở của mã được đặt trong thẻ Khi trình duyệt yêu cầu trang PHP, máy chủ sẽ đọc nội dung file, thực thi các đoạn mã PHP và thay thế chúng bằng kết quả nhận được, cuối cùng trả về một trang HTML hoàn chỉnh cho trình duyệt.
PHP có cấu trúc cơ bản với thẻ bắt đầu và kết thúc tương tự như ngôn ngữ HTML, nhưng cho phép nhiều cách thể hiện khác nhau.
Cú pháp chính
Trong PHP, để kết thúc một dòng lệnh, chúng ta sử dụng dấu chấm phẩy ";" Để chú thích một đoạn dữ liệu, có thể dùng dấu "//" cho từng dòng hoặc sử dụng cặp thẻ "/*…… */" cho từng cụm mã lệnh.
Ví dụ:
- Xuất giá trị ra trình duyệt chúng ta có những dòng cú pháp sau:
Thông tin bao gồm: biến, chuỗi, hoặc lệnh HTML …
Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "."
Biến được coi là vùng nhớ dữ liệu tạm thời, với giá trị có khả năng thay đổi Để khai báo biến, người dùng bắt đầu bằng ký hiệu "$", theo sau là một từ hoặc cụm từ, được viết liền hoặc có thể sử dụng gạch dưới.
Một biến được xem là hợp lệ khi nó thỏa các yếu tố:
- Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự, số hay dấu gạch dưới
- Tên của biến không được phép trùng với các từ khóa của PHP
Trong PHP, việc khai báo biến trước khi sử dụng là cần thiết, nhưng nhiều lập trình viên thường thực hiện việc này đồng thời với việc gán dữ liệu cho biến Biến trong PHP có thể nhận nhiều kiểu dữ liệu khác nhau, tùy thuộc vào ý định của lập trình viên.
Trong PHP, hằng được định nghĩa bằng hàm define, với cú pháp: define(string tên_hằng, giá_trị_hằng) Hằng là những giá trị không thể thay đổi, ngược lại với biến, có thể thay đổi trong quá trình thực thi chương trình.
Cũng giống với biến, hằng được xem là hợp lệ thì chúng phải đáp ứng một số yếu tố:
- Hằng không có dấu "$" ở trước tên
- Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh
-Hằng chỉ được phép gán giá trị duy nhất 1 lần
- Hằng thường viết bằng chữ in để phân biệt với biến
- Chuỗi: là một nhóm các kỹ tự, số, khoảng trắng, dấu ngắt được đặt trong các dấu nháy, ví dụ: ‘Hello’
Để tạo một biến chuỗi, chúng ta phải gán giá trị chuỗi cho một biến hợp lệ, ví dụ: $fisrt_name= "Nguyen";
Để liên kết một chuỗi và một biến chúng ta thường sử dụng dấu "."
2.1.5 Các phương thức được sử dụng trong lập trình PHP
Có 2 phương thức được sử dụng trong lập trình PHP là GET và POST
Phương thức GET được sử dụng để lấy dữ liệu từ form nhập liệu, nhưng nhiệm vụ chính của nó là truy xuất nội dung trang dữ liệu từ máy chủ web Ví dụ, với URL shownews.php?idP, ta có thể sử dụng hàm để thực hiện việc này.
$_GET[‘id’] sẽ được giá trị là 50
- Phương thức POST: phương thức này được sử dụng để lấy dữ liệu từ form nhập liệu và chuyển chúng lên trình chủ webserver
2.1.6 Cookie và Session trong PHP
Cookie và Session là hai phương pháp sử dụng để quản lý các phiên làm việc giữa người sử dụng và hệ thống
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Hiện này mã QRcode được sủ dụng rộng rãi là do sự tiện ích mà nó mang lại như:
Chương trình tạo mã QR code giúp việc check-in tự động trở nên dễ dàng hơn bằng cách lưu trữ thông tin cá nhân của người dùng như họ tên, email và số điện thoại Người quản trị chỉ cần nhập đầy đủ thông tin vào hệ thống, sau đó hệ thống sẽ tự động lưu trữ và tạo mã QR code dựa trên địa chỉ email của người dùng Điều này không chỉ giúp tra cứu thông tin sản phẩm nhanh chóng mà còn hỗ trợ trong việc gửi mail, SMS và thanh toán qua ngân hàng.
Người quản trị cung cấp mã QR code cho người dùng, cho phép họ check-in thông tin cá nhân vào hệ thống Sau khi quá trình check-in hoàn tất, thông tin của người dùng sẽ được lưu trữ an toàn trong hệ thống.
- Người quản trị hệ có thể kiểm tra ngày giờ check-in của từng thành viên trong danh sách check-in
II Biểu đồ nghiệp vụ
1 Biểu đồ ngữ cảnh hệ thống
Biểu đồ ngữ cảnh hệ thống a) Mô tả hoạt động
Trước khi thành viên có thể check-in tự động ở hệ thống thì quá trình sẽ được thực hiện như sau:
- Để tạo được mã qrcode cho thành viên thì trước tiên người quản trị phải điền đầy đủ thông tin thành viên vào danh sách thành viên
- Sau khi đã thêm thành công hệ thống sẽ lưu thông tin thành viên và đồng thời tạo một mã qrcode theo địa chỉ email của họ
Mã QR code được cung cấp bởi người quản trị cho thành viên, cho phép họ thực hiện check-in tại hệ thống Khi hệ thống nhận mã QR code thành công, thông tin sẽ được lưu vào danh sách check-in.
2 Biểu đồ phân rã chức năng
Mô tả chi tiết chức năng:
Chức năng khởi tạo thông tin cho phép người dùng check-in tại hệ thống, yêu cầu thành viên phải có trong danh sách Người quản trị cần nhập đầy đủ thông tin của thành viên, bao gồm họ tên, email và số điện thoại.
Chức năng 2 - Khởi tạo mã QR: Sau khi người dùng nhập đầy đủ thông tin, hệ thống sẽ tự động tạo mã QR cho từng thành viên Mã QR này sẽ được quản trị viên gửi đến từng thành viên để sử dụng.
Chức năng 3 – Check-in tự động cho phép thành viên quét mã để hệ thống nhận diện và tự động lưu lại thông tin của họ Nhờ đó, quá trình check-in của thành viên sẽ được thực hiện thành công một cách nhanh chóng và thuận tiện.
3 Ma trận thực thể chức năng
3.1 Danh sách hồ sơ dữ liệu a Thông tin thành viên b Danh sách mã QR c Danh sách check-in Các chức năng:
1 Khơi tạo thông tin thành viên
3 Check-in tự động 3.2 Ma trận thực thể chức năng
Các thực thể dự liệu a Danh sách thành viên b Danh sách mã QR c Danh sách check-in
Các chức năng nghiệp vụ a b c
1 Khởi tạo thông tin thành viên C
4 Biểu đồ luông dữ liệu
3.1 Biểu đồ luồng dữ liệu chức năng thêm thành viên
Sơ đồ mô tả quy trình thêm thành viên vào hệ thống, trong đó người quản trị cần cung cấp đầy đủ thông tin như Họ tên, Số điện thoại và Email Khi việc thêm thành viên hoàn tất, hệ thống sẽ tự động lưu thông tin vào danh sách thành viên.
3.2 Biểu đồ luồng dữ liệu chức năng khởi tạo mã QR
Sơ đồ mô tả quá trình khởi tạo mã QR code cho thành viên Khi quản trị viên nhập đầy đủ thông tin và xác nhận, hệ thống sẽ tự động tạo mã QR code dựa trên địa chỉ email của thành viên đó.
3.3 Biểu đồ luồng dữ liệu chưc năng check-in tự động
Sơ đồ mô tả chức năng check-in của hệ thống, nơi thành viên sử dụng mã QR code để thực hiện check-in Hệ thống tự động lưu trữ thông tin và thời gian check-in của thành viên vào danh sách.
Danh sách thành viên có thuộc tính :Mã thành viên, Tên thành viên, số điện thoại, Email
Danh sách check-in có thuộc tính : Mã dịch vụ, Email, Ngày giờ
5.2 Xác đinh các mối quan hệ
- THÀNH VIÊN có MÃ QR
- Mã QR được hệ thống tự động tạo từ thông tin thành viên
- THÀNH VIÊN sử dụng DỊCH VỤ
6 Thiết kế các bảng dữ liệu
Stt Tên trường Kiểu dữ liệu Ghi chú
1 Id(mã thành viên) int Khóa chính
Trong bảng user có các trường : id, hoten, sdt, email, maqr, trong đó có id(mã thành viên) là khóa chính
Stt Tên trường Kiểu dữ liệu Ghi chú
1 Dichvu_id int Khóa chính
3 User_id int Khóa ngoại
Trong bảng dichVu có các trường : dichvu_id, user_email,user_id ngaysudung trong đó có dichvu_id là khóa chính, user_id là khóa ngoại
Mô hình quan hệ của hệ thống
THUẬT TOÁN , ỨNG DỤNG VÀ THỰC NGHIỆM
Các bước mã hóa tạo một chuỗi nhị phân
- Bước1 Mã hóa Bộ chỉ chế độ (Mode Indicator):
Một bộ chỉ chế độ là một chuỗi 4 bit thể hiện chế độ dữ liệu bạn đang sử dụng: kiểu số, kiểu chuỗi, kiểu nhị phân hoặc Nhật ngữ
Với chuỗi HELLO WORLD, là kiểu chuỗi, vậy nên Bộ chỉ chế độ sẽ là 0010
- Bước 2 Mã hóa độ dài của dữ liệu:
Trong bước này, chúng ta xác định có bao nhiêu ký tự trong thông điệp, và chuyển độ dài đó thành một số nhị phân
VD: Với chuỗi HELLO WORLD, có 11 ký tự kể cả khoảng trắng
Ta chuyển 11 sang nhị phân, được 1011
Để mã hóa chuỗi ký tự, bước đầu tiên là chia chuỗi thành các cặp ký tự như HE, LL, O, WO, RL, D Tiếp theo, ta lấy giá trị mã ASCII của ký tự đầu nhân với 45 và cộng với giá trị mã ASCII của ký tự sau Cuối cùng, chuyển kết quả thu được thành chuỗi nhị phân 11 bit.
- Bước 4 Hoàn thành các bit:
Để đảm bảo chuỗi bit đạt đủ độ dài, cần xem xét số lượng bit cần thiết cho việc tạo phiên bản và sửa lỗi.
Chuỗi của chúng ta có 59 bit, ta thêm 4 số 0 vào cuối chuỗi (Còn nếu chuỗi có 102 bit thì ta thêm 2 số 0)
Chuỗi của ta bây giờ là:
- Bước 5 Giới hạn chuỗi thành các chuỗi con 8 bit, sau đó thêm các số
Trong bước này, chúng ta tiến hành chia chuỗi thành các nhóm 8 bit Đối với chuỗi con cuối cùng, nếu không đủ 8 bit, chúng ta sẽ bổ sung thêm số 0 cho đến khi đạt đủ số lượng Cụ thể, chuỗi của chúng ta sẽ thêm 2 số 0 vào sau chuỗi con cuối cùng.
- Bước 6 Thêm các từ vào cuối nếu chuỗi quá ngắn
Chuỗi của chúng ta chỉ có 10 chuỗi con, cần phải thêm vào 3 chuỗi con nữa Bắt đầu thêm 11101100, sau đó thêm 00010001, rồi tới
11101100 Nếu cần nhiều hơn thì cứ thêm lần lượt như vậy cho tới khi đủ số chuỗi con
Chuỗi của chúng ta bây giờ:
1.2 Ứng dụng thực nghiệm Đoạn code mô tả thư viện cần sủ dụng trong chương trình tạo mã QRcode
Để bắt đầu, cần kết nối đến thư viện “qrlib.php”, nơi chứa các tập tin thư mục gốc Tiếp theo, thiết lập biến $PNG_WEB_DIR = ‘temp/’ để chỉ định thư mục lưu trữ file ảnh mã QR Đoạn mã này thực hiện việc kiểm tra thông tin và tạo mã QR cho thành viên.
Sau khi kết nối tới csdl thành công thì chúng ta sử dụng thẻ
$errorCorretionLevel= ‘L’; đây là mức độ sửa lỗi được mã QR sử dụng trong bộ sửa lỗi Reed-Solomon, có 4 mức độ L,M,Q,H tương đương với 7%,15%,25%,30% phục hồi dữ liệu
$matrixPointSize = 4; là kích cỡ ảnh qrcode
Nếu có dữ liệu thông tin thành viên, tên ảnh sẽ được đặt theo ID của thành viên và được lưu vào file 'temp' với định dạng ảnh là png.
Biến $codeContents được gán bằng thông tin email của thành viên
Khi đã có đầy đủ những giá trị trên thì tiếp đến :
QRcode::png($codeContents, $filename,$errorCorrectionLevel,
$matrixPointSize, 2); sẽ thực thi nhiệm vụ còn lại tạo ra một code hoàn chỉnh
Hệ thống được thử nghiệm trên môi trường có các thông số như sau:
- Laptop Asus X550LD: Intel Core i5, RAM 8GB
- Hệ điều hành: Window 10 64 bit
3 Một Số Giao Diện Thử Nghiệm
Giao diện trang chủ
Trang index bao gồm ba phần chính: trang chủ, quản lý thành viên và danh sách check-in Phân quản lý thành viên được chia thành hai phần nhỏ, bao gồm danh sách thành viên và chức năng thêm mới thành viên.
Tiếp theo là đó phần tiêu đề và giời thiệu về website
Quản lý thành viên
- Trong phần Quản lý thành viên được chia ra làm 2 phần chính là : Danh sách thành viên và thêm thành viên
Giao diện của danh sách thành viên
Giao diện danh sách thành viên bao gồm các thông tin như STT, Họ Tên, Email, Số Điện Thoại (SDT), và Mã QR Mã QR được tạo ra dưới dạng hình ảnh png từ thông tin người dùng trong hệ thống, đồng thời giao diện còn cung cấp hai chức năng là sửa và xóa.
Giao diện sửa thành viên
Khi người quản trị muốn sửa thông tin thành viên thì sẽ kích vào biểu
Trong giao diện sửa có 3 phận tương ứng với 3 thông tin có thể sửa của thành viên đó là : họ tên, email, sdt
Sau khi điền đầy đủ thông tin cần chỉnh sửa, người quản trị nhấn nút sửa, hệ thống sẽ tự động lưu lại và chuyển về danh sách.
3.4 Giao diện thêm thành viên
Khi cần thêm thành viên người quản trị thực hiện thêm mới thì giao diện trên được hiện lên
Trong giao diện thêm mới thành viên có 3 thông tin bắt buộc đó là họ tên, email, sdt
Khi đã điền đầy đủ thông tin thành viên cần thêm mới người quản trị thực hiện kích vào nút button thêm
Sau đó hệ thống sẽ chuyển về danh sách thành viên và tự động lưu vào danh sách thành viên
3.5 Giao diện chức năng check-in Để thực hiện việc check-in thông tin thành viên trên hệ thống, thì thành viên sử dụng máy quét mã thực hiện quét mã QRcode của mình Bên dưới là email và ngày giờ mà hệ thống đã lưu
Khi mã QR code được quét qua ô “xin mời quét mã”, hệ thống sẽ tự động lưu trữ thông tin từ mã QR của thành viên, bao gồm địa chỉ email và thời gian check-in của người đó.
Giao diện chức năng check-in
Trong đồ án này, tôi đã nghiên cứu và tìm hiểu về việc tạo mã QR code bằng ngôn ngữ lập trình PHP kết hợp với hệ quản trị cơ sở dữ liệu MySQL, nhằm ứng dụng vào bài toán check-in tự động.
Nội dung của đồ án em đã đạt được những vấn đề như sau:
- Phát biểu và mô tả được nghiệp vụ bài toán
- Biểu diễn các nghiệp vụ bài toán bằng cách các sơ đồ tiến trình nghiệp vụ
- Phân tích thiết kế bài toán một cách đầy đủ
- Thiết kế được cơ sở dữ liệu quan hệ để lưu trữ dữ liệu
- Sử dụng hệ quản trị cơ sở dữ liệu SQL
- Sử dụng ngôn ngữ lập trình php tạo thành công mã QRcode bằng thông tin người dùng
- Ứng dụng thành công vào hệ thống check-in tự động
- Hệ thống được cài đặt thử nghiệm ban đầu trên localhost, rồi đưa lên hosting cho ra kết quả, đáp ứng được yêu cầu bài toán
- Chương trình còn sơ sài chưa tối ưu hết các chức năng
- Giao diện website còn đơn giản chưa bắt mắt
Chương trình cần được cải thiện về cả chức năng lẫn giao diện, vì hiện tại vẫn còn nhiều thiếu sót Rất mong nhận được sự hỗ trợ tận tình từ các thầy cô giáo và bạn bè để chương trình ngày càng hoàn thiện hơn.