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, hay còn gọi là mã phản hồi nhanh, là một dạng mã vạch hai chiều (2D) ngày càng phổ biến, thường được thấy trên nhãn bìa sản phẩm và được sử dụng rộng rãi trong các ứng dụng di động Nó có thể được quét bằng máy đọc mã vạch hoặc smartphone có camera và ứng dụng chuyên dụng.
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à vị trí địa lý Khi quét mã QR bằng thiết bị đọc, người dùng có thể được dẫn đến trang web, gọi điện thoại hoặc xem tin nhắn So với mã vạch truyền thống chỉ lưu giữ khoảng 20 chữ số, mã QR có thể chứa hàng ngàn ký tự nhờ cấu trúc hai chiều Điều này giúp mã QR dễ sử dụng và mang lại lợi ích lớn cho người dùng trong nhiều lĩnh vực Thêm vào đó, mã QR có thể được đọc từ nhiều hướng khác nhau mà không bị ảnh hưởng bởi chất liệu hay nền, do đó, nó đ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.
QRcode động, hay còn gọi là "QRcode trực tiếp", cho phép chỉnh sửa liên kết chính mà không cần can thiệp vào mã code sau khi được khởi tạo Khi quét mã, người dùng sẽ được chuyển hướng đến máy chủ lưu trữ hình ảnh tương ứng Loại mã này tiện lợi hơn vì chỉ cần tạo một lần và có thể thay đổi thông tin hiển thị, như các liên kết (domain, web), mỗi khi mã được quét.
QR code tĩnh khác với QR code độ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 QR code tĩnh không thể thay đổi hay chỉnh sửa, vì vậy bạn sẽ cần tạo một mã mới mỗi khi muốn cập nhật QR code tĩnh rất phù hợp cho những ai muốn lưu trữ thông tin vĩnh viễn, chẳng hạn như ngày sinh và 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 chứa dữ liệu, thông tin về chế độ mã hóa và độ dài 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 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 cho đến khi đủ: 000001011.
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
Để mã hóa dữ liệu, với mỗi cặp ký tự, ta nhân giá trị mã ASCII của ký tự đầu với 45 và cộng với giá trị mã ASCII của ký tự sau, sau đó chuyển đổi kết quả thành chuỗi nhị phân 11 bit Đối với các ký tự không có cặp, ta chỉ cần lấy giá trị mã ASCII 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 khác.
Bước 4: Hoàn thành các bit
Để đảm bảo chuỗi bit thu được có đủ độ dài, chúng ta cần xem xét số lượng bit cần thiết để 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 chuỗi bit có độ dài 104 bit, nếu chuỗi hiện tại ngắn hơn 104, chúng ta cần thêm 4 số 0 vào cuối chuỗi Nếu sau khi thêm 4 số 0 mà độ dài vẫn chưa đủ 104 bit, chúng ta sẽ 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.
Trong bước này, chúng ta chia chuỗi thành các nhóm 8 bit Đối với chuỗi con cuối cùng, nếu chưa đủ 8 bit, chúng ta sẽ thêm các số 0 vào cuối cho đến khi đạt đủ độ dài 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
Nếu chuỗi bit của chúng ta chưa đủ dài, chúng ta có thể thêm hai chuỗi con đặc biệt là 11101100 và 00010001 một cách thay phiên nhau vào chuỗi bit hiện tạ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, tiếp theo là 00010001, và sau đó lại thêm 11101100 Nếu cần thêm nhiều hơn, hãy 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ờ:
Bước đầu tiên trong việc tạo mã sửa lỗi 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 mong muốn Để 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 xuất phát từ một trường hữu hạn, hay còn gọi là trường Galois Mã QR sử dụng trường Galois với 256 yếu tố, điều này có nghĩa là các số được giao dịch sẽ luôn nằm trong khoảng tối đa là 255 và tối thiểu là 0.
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 Để có 13 mã sửa lỗi, 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 thu được đa thức Quá trình này khá phức tạp khi thực hiện bằng tay, vì vậy cần sử dụng công cụ generator polynomial Trong bài viết này, chúng ta đã 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
Hiện nay, sau khi đã mã hóa dữ liệu, bước tiếp theo là lựa chọn mẫu mặt nạ phù hợp nhất Mẫu mặt nạ được xác định dựa trên các bit theo một quy tắc cụ thể Các mẫu mặt nạ này được quy định 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 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 mở rộng, PHP nhanh chóng được áp dụng trong môi trường chuyên nghiệp và đã trở thành một công cụ quan trọng trong phát triển web.
PHP, viết tắt của "PHP: Hypertext Preprocessor", là một ngôn ngữ kịch bản được nhúng trong HTML, cho phép chèn mã PHP vào các trang HTML một cách linh hoạt Là một công nghệ phía máy chủ, PHP hoạt động độc lập với môi trường và có khả năng kết nối chặt chẽ với máy chủ, mang lại hiệu suất cao cho việc phát triển web.
Công nghệ PHP có hai yếu tố quan trọng: thứ nhất, mọi hoạt động diễn ra trên máy chủ, và thứ hai, tính chất không phụ thuộc môi trường cho phép PHP chạy trên hầu hết các hệ điều hành như Windows, Unix và nhiều biến thể khác Mã kịch bản PHP viết trên một máy chủ sẽ hoạt động bình thường trên máy chủ khác mà không cần chỉnh sửa hoặc chỉ cần chỉnh sửa rất ít Để sử dụng ngôn ngữ PHP, một trang web cần đáp ứng tất cả các quá trình xử lý thông tin và xuất ra kết quả bằng ngôn ngữ HTML Khác với các ngôn ngữ lập trình khác, PHP được thiết kế để thực hiện hành động chỉ khi có sự kiện xảy ra, chẳng hạn như khi người dùng gửi một biểu mẫu hoặc chuyển tới 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 lại tính linh động và bền vững Ngoài ra, PHP cũng cho phép khả năng phát triển không giới hạn, đáp ứng nhu cầu ngày càng cao của người dùng.
PHP là một ngôn ngữ lập trình mã nguồn mở, mang lại cho người dùng nhiều tính năng miễn phí Sự phát triển liên tục của PHP được thúc đẩy bởi cộng đồng lập trình viên, những người không ngừng cải tiến và khắc phục các lỗi trong các ứng dụng.
PHP là một ngôn ngữ lập trình dễ tiếp cận cho người mới bắt đầu, đồng thời cũng đáp ứng đầy đủ các yêu cầu phức tạp của 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ể thực hiện xuất sắc mọi ý tưởng mà lập trình viên đề ra.
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, 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 xử lý mã lệnh trên máy chủ để phục vụ các trang web theo yêu cầu của người dùng thông qua trình duyệt Sơ đồ hoạt động của PHP thể hiện quy trình này một cách rõ ràng.
Khi người dùng truy cập vào website viết bằng PHP, máy chủ sẽ xử lý mã lệnh PHP theo các hướng dẫn đã được mã hóa và gửi dữ liệu phù hợp (mã lệnh HTML) đến trình duyệt web Trình duyệt sẽ hiển thị dữ liệu này dưới dạng một trang HTML tiêu chuẩn PHP thực chất là một trang HTML có nhúng mã PHP, với phần mở của PHP được đặt trong thẻ mở Khi trình duyệt truy cập vào một trang PHP, máy chủ đọc nội dung file PHP, 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 nội dung HTML cho trình duyệt.
Cấu trúc cơ bản của PHP bao gồm thẻ bắt đầu và kết thúc tương tự như ngôn ngữ HTML, nhưng PHP 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ể sử dụng dấu "//" cho từng dòng hoặc dùng cặp thẻ "/*…… */" cho các 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 là khu vực lưu trữ dữ liệu tạm thời với giá trị có thể thay đổi Biến bắt đầu bằng ký hiệu "$" và theo sau là một từ hoặc cụm từ, được viết liền hoặc có 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à điều cần thiết, nhưng các lập trình viên thường thực hiện đồng thời việc khai báo và gán dữ liệu cho biến Biến trong PHP có thể được gán nhiều kiểu dữ liệu khác nhau, tùy thuộc vào ý định của người lập trình.
Trong PHP, hằng được định nghĩa là những giá trị không thể thay đổi, trái ngược với biến có thể thay đổi Để tạo một hằng, chúng ta sử dụng hàm define với cú pháp: define(string tên_hằng, giá_trị_hằng).
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Â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 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 Việc 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 thanh toán và gửi thông tin qua email hoặc SMS.
Người quản trị sẽ cung cấp mã QR code cho người dùng Khi nhận được mã QR code, người dùng có thể thực hiện check-in thông tin cá nhân tại hệ thống Sau khi quá trình check-in thành công, thông tin của người dùng sẽ được lưu trữ 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 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ọ
Sau khi mã được tạo, người quản trị sẽ cung cấp mã này cho các thành viên Với mã QR code, thành viên có thể thực hiện việc check-in tại hệ thống Hệ thống sẽ lưu trữ thông tin check-in sau khi nhận mã QR code thành công.
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 Quản trị viên sẽ 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 hoàn tất việc nhập 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 sau khi được tạo ra.
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 Nhờ đó, thành viên sẽ hoàn tất quá trình check-in 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 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 để hoàn tất việc thêm thành viên Sau khi thực hiện thành công, 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ả quy 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
Hệ thống check-in được mô tả qua sơ đồ trên, cho phép thành viên sử dụng mã QR code để thực hiện check-in Khi thành viên quét mã, hệ thống sẽ tự động ghi nhận thông tin cùng thời gian check-in 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
- 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
Đối với mỗi cặp ký tự, ta sẽ lấy giá trị mã ASCII của ký tự đầu tiên, nhân với 45, rồi cộng với giá trị mã ASCII của ký tự thứ hai Kết quả thu được sẽ được chuyển đổi thành một chuỗi nhị phân 11 bit.
- Bước 4 Hoàn thành các bit:
Để đảm bảo chuỗi bit thu được có đủ độ dài, cần xem xét số lượng bit cần thiết để tạo phiên bản và thực hiện 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ố
Chúng ta sẽ chia chuỗi thành các nhóm 8 bit Đối với chuỗi con cuối cùng, nếu chưa đủ 8 bit, ta sẽ thêm số 0 vào cuối cho đến khi đạt đủ 8 bit 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 lưu trữ 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 chứa 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’; đâylà 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à lưu trữ trong file 'temp' với định dạng 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 Trong phần quản lý thành viên, có hai mục nhỏ là danh sách thành viên và 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 hiển thị các thông tin quan trọng bao gồm STT, Họ Tên, Email, Số Điện Thoại (SDT) và Mã QR, cùng với hai chức năng sửa và xóa Mã QR là hình ảnh định dạng png được tạo ra từ thông tin người dùng trong hệ thống.
Giao diện sửa thành viên
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 email và thời gian check-in.
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ề cách 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 cả về chức năng lẫn giao diện, vì hiện tại vẫn còn nhiều thiếu sót Chúng tôi rất mong nhận được sự hỗ trợ tận tình từ các thầy cô giáo và các bạn để chương trình ngày càng hoàn thiện hơn.