Form là cái gì đó rất thường gặp trên các website. Hình thức biểu mẫu có thể đơn giản như một mẫu điền chỉ có một trường duy nhất để nhập địa chỉ email, vài trường để khai báo thông tin về một người, một tổ chức cho đến phức tạp như một bảng biểu trông giống Excel.
PHP nhận thông tin từ front-end như thế nào
Khi người dùng bấm nút Submit để gửi thông tin từ một form, thông tin này sẽ được trình duyệt web gửi lên server, thường thông qua giao thức POST. Ở phía server, PHP sẽ đón được thông tin này chứa trong một mảng $_POST, mảng này có các trường tương ứng với thuộc tính name ở HTML.
Truy cập vào mảng $_POST như bất cứ mảng nào trong PHP mà bạn từng biết đến. Mảng $_POST là dạng mảng có index là các chuỗi thay vì sử dụng các con số, người ta gọi mảng dạng này là associative array.
Như vậy, giả sử với form trên, ta có HTML như sau:
Khi bấm nút Send, dữ liệu sẽ được đẩy lên web server bằng phương thức POST. Lúc này, bạn có thể lấy được các thông tin này bằng cách truy cập vào các phần tử mảng. Ví dụ:
$_POST['username'] : chứa giá trị của Your Name
$_POST['email'] : chứa giá trị email
$_POST['message'] : chứa giá trị của lời nhắn
Chú ý: dữ liệu từ INPUT có type phải khác với file. Nếu là file, nghĩa là upload file thì PHP sẽ không sử dụng mảng $_POST để chứa file được upload.
Bóc tách các trường để xử lý
Để đơn giản hóa vấn đề, và cũng là bài dành cho người bắt đầu nên chúng tôi chỉ minh họa việc tóm bắt thông tin gửi lên, lưu lại thành file thay vì kết nối cơ sở dữ liệu để lưu vào các table. Việc đó để dành cho tương lai khi làm việc với CSDL.
Nội dung file contact.php như sau:
Khi điền form và bấm nút Send, nếu không có sai sót nào, kết quả nhận được:
Chúng ta có thể cải tiến chút ít trong việc xử lý form bằng cách lưu lại nội dung để có thể biết được thông tin nhằm xử lý. Ở đây, chúng ta sẽ lưu thành file. Nội dung file contact.php thay đổi thành: