Xử lý lỗi biểu mẫu PHP

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ày

Name
  
    
  

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ơn

Nú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ết

Chọ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ọn

Thuộ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ệt

hộ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ẫu

Phần tử biểu mẫu

Chủ Đề