Lập trình PHP nâng cao Lập trình web

Tạo captcha trong PHP

Trong bài viết Tạo captcha trong PHP Aki sẽ hướng dẫn các bạn các hàm xử lý hình ảnh trong PHP để tạo ra hình ảnh captcha, và cách sử dụng SESSION để kiểm tra captcha người dùng đã nhập đúng hay chưa.

CAPTCHA  là chữ viết tắt của Completely Automated Public Turing test to tell Computers and Humans Apart, đây là dạng công cụ (hình ảnh, audio, …) dùng để phân biệt giữa người và chương trình máy tính.

Captcha dùng để xác định liệu có phải là một người dùng đang truy cập hệ thống hay một chương trình máy tính đang truy cập hệ thống

Hệ thống tập tin và thư mục sử dụng trong bài viết này:

Tạo captcha trong PHP

1/ Tạo khối hình với chiều cao, chiều rộng và màu của khối hình đó

Tạo captcha trong PHP

2/ Thêm văn bản vào khối hình ảnh

Tạo captcha trong PHP

3/ Tạo chuỗi ngẫu nhiên và truyền vào hình ảnh để làm captcha

Tạo captcha trong PHP

4/ Gắn captcha vào form

Nội dung tập tin index.php

Chú ý đường dẫn của thẻ img trong mã nguồn trên chín là đường dẫn tạo ra file hình captcha mà chúng ta đã sử dụng ở các ví dụ trên

Nội dung tập tin captcha.php

Kết quả nhận được

Tạo captcha trong PHP

Như vậy qua các nội dung mà chúng ta thực hiện các bạn thấy hình ảnh captcha đã được tạo ra, tuy nhiên một câu hỏi đặt ra lúc này là làm sao so sánh giá trị người dùng nhập vào đúng với văn bản nằm trong hình vẽ được ?

Cách giải quyết lúc này chính là SESSION, chúng ta sẽ lưu trữ nội dung text trong hình ảnh captcha và so sánh với giá trị người dùng họ nhập vào.

  • Nếu hai giá trị này trùng khớp chứng tỏ người dùng nhập đúng captcha
  • Nếu hai giá trị này không trùng khớp chứng tỏ người dùng nhập không đúng captcha

Nội dung tập tin captcha.php

Nội dung tập tin proccess.php

Kết thúc bài viết Tạo captcha trong PHP chúng ta đã biết cách xử lý vấn đề captcha trong PHP, tuy nhiên Aki sẽ không khuyến khích các bạn sử dụng cách này vì đây chỉ là một bài viết giúp các bạn captcha được tạo ra như thế nào mà thôi. Trong bài viết tiếp theo Aki sẽ giới thiệu cho các bạn cách sử dụng class có sẵn để xử lý tình huống captcha này.

Series Navigation<< Xử lý hình ảnh với PHPThumbGửi mail với PHPMailer >>
Nguồn: laptrinhweb.org