Các ví dụ này sẽ chỉ ra cách xử lý các biểu mẫu PHP có lưu ý đến tính bảo mật. Xác nhận đúng cách dữ liệu biểu mẫu là điều quan trọng để bảo vệ biểu mẫu của bạn khỏi tin tặc và những kẻ gửi thư rác
Biểu mẫu HTML mà chúng ta sẽ làm việc trong các chương trình này, bao gồm các trường nhập liệu khác nhau. trường văn bản bắt buộc và tùy chọn, nút radio và nút gửi
Các quy tắc xác thực cho các biểu mẫu trên như sau
File Quy tắc xác thực Tên bắt buộc, yêu cầu bắt buộc, bao gồm các ký tự và khoảng trắngE-mailrequired, yêu cầu bắt buột, địa chỉ email đúng định dạng [chứa @ và. ]Websitetùy chọn, yêu cầu không bắt buột, chứa URL có giá trịNhận xét tùy chọn, yêu cầu không bắt buột, chứa nhiều dòng thông tin nhập vàoGenderrequired, yêu cầu bắt buột, chọn một tùy chọn
Trước tiên, chúng tôi sẽ xem xét mã HTML thuần túy cho biểu mẫu
Trường văn
Tên trường, email và trang web là các yếu tố nhập văn bản và trường nhận xét là một vùng văn bản. Code HTML as after
Name: E-mail: Website: Comment:
Các nút Radio
Các trường được giới hạn là các nút radio và mã HTML như sau
Gender: Female Male Other
Dạng phần tử
Mã HTML của biểu mẫu biểu mẫu như sau
Khi biểu mẫu được gửi đi, dữ liệu biểu mẫu được gửi bằng method = "post"
Biến $_SERVER["PHP_SELF"] là gì?
$_SERVER["PHP_SELF"] là một siêu biến toàn cục trả về tên tệp của lệnh hiện đang thực thi
Vì vậy,
8 sẽ gửi dữ liệu biểu mẫu đã gửi đến trang chính đó, thay vì chuyển sang một trang khác. Bằng cách này, người dùng sẽ nhận được thông báo lỗi trên cùng một trang với biểu mẫuHàm htmlspecialchars[] là gì?
Hàm
9 chuyển đổi các ký tự đặc biệt thành HTML thông thường có thể thực hiện được. Điều này có nghĩa là nó sẽ thay thế các ký tự HTML đặc biệt như @, #, $. . Điều này ngăn chặn những kẻ tấn công khai thác mã bằng cách chèn mã HTML hoặc Javascript [Các cuộc tấn công Tập lệnh chéo trang web] trong các biểu mẫu
Lưu ý quan trọng về biểu mẫu PHP
Biến
8 có thể bị hacker sử dụngNếu
Gender: Female Male Other0 được sử dụng trong trang của bạn thì người dùng có thể nhập dấu gạch chéo [/] rồi thực thi một số lệnh Cross Site Scripting [XSS]
Cross-site scripting [XSS] là một loại lỗi truy cập mật mã máy tính thường thấy trong các ứng dụng Web. XSS cho phép những kẻ tấn công đưa tập lệnh phía máy khách vào các trang Web được người dùng khác xem
Giả sử chúng ta có biểu mẫu sau trong một trang có tên "test_form. php"
">
Bây giờ, nếu người dùng nhập URL bình thường vào thanh địa chỉ như "http. //www. ví dụ. com/test_form. php", thì đoạn mã trên sẽ được giao dịch thành công
Tuy nhiên, hãy xem nhận xét rằng người dùng nhập URL sau đó vào thanh địa chỉ
http. //www. ví dụ. com/test_form. php/%22%3E%3Cscript%3Ealert['hacked']%3C/script%3E
Trong trường hợp này, mã trên sẽ được giao dịch thành
This code add a command tag and a command warning. Và khi tải trang, mã JavaScript sẽ được thực thi [người dùng sẽ thấy một hộp cảnh báo]. Đây chỉ là một ví dụ đơn giản và vô hại về cách khai thác biến PHP_SELF
Xin lưu ý rằng bất kỳ mã JavaScript nào cũng có thể được thêm vào bên trong thẻ
Gender: Female Male Other1
Gender: Female Male Other2
Gender: Female Male Other3 của PHP]
Gender: Female Male Other4] khỏi dữ liệu đầu vào của người dùng [với dấu gạch chéo ngược [] trong PHP]
Bước tiếp theo là tạo ra một chức năng sẽ thực hiện tất cả các công việc kiểm tra cho chúng ta [điều kiện này thuận tiện hơn nhiều so với việc viết đi viết lại cùng một đoạn mã]
Chúng ta sẽ đặt tên cho hàm là
Gender: Female Male Other5
Bây giờ, chúng ta có thể kiểm tra từng biến
Gender: Female Male Other6 bằng hàm
Gender: Female Male Other5 và tập lệnh như sau
Ví dụ
Ví dụ
Gender: Female Male Other3
View results
Lưu ý rằng khi bắt đầu tập lệnh, chúng ta sẽ kiểm tra xem biểu mẫu đã được gửi bằng cách sử dụng biến
Gender: Female Male Other8 hay chưa. Nếu REQUEST_METHOD là POST, thì biểu mẫu đã được gửi và nó sẽ được xác thực. Nếu nó chưa được gửi, thì bỏ xác thực và hiển thị một biểu mẫu trống
Tuy nhiên, trong ví dụ trên, tất cả các trường bắt đầu là tùy chọn. Good active command ngay cả khi người dùng không nhập bất kỳ dữ liệu nào
Làm việc với biểu mẫu trong php bao gồm các vấn đề. use $_GET, $_POST ;
$_GET và $_POST
- $_GET. is array in PHP used to contain the parameters in url
- $_POST. is array in PHP used for contain các giá trị trong biểu mẫu POST
- To see this cấu trúc 2 mảng. use print_r command. Ví dụ
Gender: Female Male Other5
- Pick up 1 value in $_GET, $_POST, used $_POST[‘key’] , $_GET[‘key’]. Ví dụ
Gender: Female Male Other6
Tạo biểu mẫu
a. Tạo trang formThemSP. php và code
Gender: Female Male Other7
Lấy dữ liệu khi gửi
Gender: Female Male Other8
Show back value in form
- Khi gửi, trang web sẽ tải lại, dẫn đến giá trị người dùng đã nhập trong quyền kiểm soát sẽ bị mất. for should have to show back
- Hiển thị giá trị cho các quyền kiểm soát trong biểu mẫu bằng cách gán giá trị trong thuộc tính giá trị. Ví dụ
Gender: Female Male Other9
Show the error
- Việc kiểm tra dữ liệu trong biểu mẫu có thể có một số lỗi cần thông báo
To current error, at the head form if found the error variable has value, the current out
1Xử lý kiểu tệp dữ liệu
Nhận thông tin của tệp qua $_FILES[‘nameCủaControl’]. Ví dụ
2$h is an array bao gồm 5 phần tử. tên, kích thước, loại, tmp_name, lỗi. in which
- Tên. là tên của tệp hình mà người dùng đã gửi
- kích thước. size of file
- loại. loại dữ liệu trong tệp được gửi
- tmp_name. đường dẫn file đã được lưu trong thư mục tmp
- lỗi. for know has not error
Gửi tệp lưu bằng cách di chuyển từ vị trí lưu tạm đến vị trí mới bằng lệnh move_uploaded_file[$tmp_name, $newPath];
3Xử lý submit ở file khác
File address other khai báo trong thuộc tính action of form
Form has method is GET
- Ít khi dùng hơn bài đăng
- Chỉ sử dụng phương thức get khi thực sự cần thiết , đó là khi cần đưa các biến trong biểu mẫu lên địa chỉ giúp người dùng mà không cần người dùng nhập các biến
- Ví dụ 1. pagetin in type with tham số idLT. => Select in select 1 loại tin rồi gửi để hiện tin trong loại
bản demoGET1. php
4Show form type tin
Gender: Female Male Other60
Ví dụ 2. có trang tin theo từ khóa với tham số tukhoa. è gõ từ khóa trong biểu mẫu rồi gửi để hiển thị tin chứa từ khóa [bài toán tìm kiếm]
bản demoGET2. php
Gender: Female Male Other61
Form search search with method get used for input từ khóa lên url
Gender: Female Male Other62
Cơ sở dữ liệu thaylongweb_tintuc
Các vấn đề khi làm việc với form trong php cơ bản như trình bày ở trên, vẫn còn một số vấn đề khác thầy sẽ trình bày sau