1. And what about multiple file upload ? - If there is an UPLOAD_ERR_INI_SIZE error with multiple files - we can`t detect it normaly ? ...because that we have an array, but this error returns null and can`t use foreach. So, by having a multiple upload, we can`t normaly inform user about that. we can just detect, that sizeof[$_FILES["file"]["error"]] == 0 , but we can`t actualy return an error code. The max_file_size also is not an exit, becouse it refers on each file seperatly, but upload_max_filesize directive in php.ini refers to all files together. So, for example, if upload_max_filesize=8Mb , max_file_size = 7Mb and one of my files is 6.5Mb and other is 5Mb, it exeeds the upload_max_filesize - cant return an error, becouse we don`t know where to get that error.
Unfortunately we cannot get the file sizes on client side, even AJAX normaly can`t do that.
2. If in file field we paste something, like, D:\whatever , then there also isn`t an error to return in spite of that no such file at all.
Trong bài viết này, chúng ta sẽ xây dựng và xác thực một biểu mẫu web nhỏ bằng HTML và PHP. Biểu mẫu được tạo bằng HTML và việc xác thực cũng như xử lý nội dung của biểu mẫu được thực hiện bằng PHP. Mục tiêu của bài viết này là hướng dẫn bạn một số thành phần biểu mẫu HTML cơ bản và cách bạn có thể truy cập dữ liệu của chúng trong tập lệnh PHP của mình
Biểu mẫu chúng tôi sẽ tạo có chứa một số đầu vào. trường văn bản, nút radio, danh sách chọn nhiều tùy chọn, hộp kiểm và nút gửi. Các đầu vào này sẽ được xác thực để đảm bảo rằng người dùng đã cung cấp một giá trị cho từng đầu vào
Nếu một hoặc nhiều trường trống, biểu mẫu sẽ được hiển thị lại. Tuy nhiên, lần này, các trường trống sẽ có chuỗi lỗi “Thiếu” bên cạnh chúng. Nếu không có trường nào trống, các giá trị được cung cấp sẽ được hiển thị theo cách đơn giản
Bạn có thể tìm mã cho bài viết này trên GitHub
Biểu mẫu HTML
Hãy tạo biểu mẫu HTML. Mục đích của biểu mẫu là để công ty hư cấu “Thế giới trái cây” tiến hành khảo sát khách hàng về trái cây của họ. Biểu mẫu nắm bắt ba điều
- Thông tin chi tiết của người dùng [tên, địa chỉ và địa chỉ email]
- Sở thích tiêu thụ trái cây của người dùng [số lượng trái cây họ ăn mỗi ngày và loại trái cây yêu thích của họ]
- Nếu người dùng muốn có một tài liệu quảng cáo miễn phí
Trường văn bản
Các trường tên, địa chỉ và email sẽ được mã hóa bằng các phần tử
0
1
2
More than 2
3 và
0
1
2
More than 2
4 như thế nàyName
Address
Email
Các phần tử đầu vào HTML có một số thuộc tính. Đặt
0
1
2
More than 2
5 thành
0
1
2
More than 2
6 xác định chúng là các trường nhập một dòng chấp nhận văn bản. Thuộc tính
0
1
2
More than 2
7 được sử dụng để chỉ định tên trường và được sử dụng để truy cập phần tử trong quá trình xử lý PHP. Thuộc tính ID liên kết đầu vào với nhãn được liên kết của nó [thông qua thuộc tính
0
1
2
More than 2
8 của nhãn], điều này làm cho biểu mẫu dễ truy cập hơnNút radio
Nút radio lưu lượng trái cây người dùng ăn mỗi ngày
0
1
2
More than 2
Đặt
0
1
2
More than 2
5 thành My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
0 hiển thị đầu vào dưới dạng nút radio. Lưu ý cách mỗi nút được gán cùng một tên. Điều này coi các nút radio là một nhóm, cho phép người dùng chọn 0, 1 hoặc 2. Thuộc tính My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
1 khác nhau cho mỗi nút để cung cấp các giá trị khác nhau mà người dùng có thể chọn. Bởi vì các đầu vào được bao bọc trong các nhãn ở đây, các thuộc tính
0
1
2
More than 2
8 và My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
3 không cần thiếtChọn danh sách
Phần tử select lưu trữ lựa chọn trái cây yêu thích của người dùng
My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
Thuộc tính
0
1
2
More than 2
7 là một mảng [được xác định bởi dấu ngoặc vuông sau tên] vì cho phép có nhiều lựa chọn [do sự hiện diện của thuộc tính My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
5]. Nếu không có thuộc tính My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
5 thì chỉ có thể chọn một tùy chọnThuộc tính
My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
1 cho mỗi thành phần tùy chọn là giá trị sẽ được gửi tới máy chủ và văn bản giữa thẻ mở và đóng thẻ My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
8 là giá trị mà người dùng sẽ thấy trong menu chọn. Mỗi phần tử My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
8 phải có một giá trị riêng biệthộp kiểm
Would you like a brochure?
Một phần tử hộp kiểm được sử dụng để cho phép người dùng chọn xem họ có muốn một tài liệu quảng cáo hay không. Giá trị của nó sẽ được đặt thành “Có” nếu hộp được chọn. Nếu không, nó sẽ được đặt thành “Không” một cách hiệu quả
nút gửi
Cuối cùng nhưng không kém phần quan trọng là nút Gửi. Giá trị của phần tử
My favorite fruit
Apple
Banana
Plum
Pomegranate
Strawberry
Watermelon
1 của nó được hiển thị dưới dạng văn bản của nút. Nhấp vào nó gửi biểu mẫuPhần tử biểu mẫu