Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tôi có cần htmlentities () hoặc htmlspecialchars () trong các câu lệnh đã chuẩn bị không?

htmlentities htmlspecialchars được sử dụng để tạo đầu ra HTML được gửi đến trình duyệt.

Các câu lệnh chuẩn bị trước được sử dụng để tạo / gửi các truy vấn tới Công cụ cơ sở dữ liệu .

Cả hai đều cho phép thoát dữ liệu; nhưng chúng không thoát với cách sử dụng giống nhau.
Vì vậy, không, câu lệnh chuẩn bị sẵn (cho truy vấn SQL) không ngăn cản bạn sử dụng đúng cách htmlspecialchars / htmlentities (dành cho tạo HTML)

Giới thiệu về strip_tags :nó sẽ xóa các thẻ khỏi một chuỗi, trong đó htmlspecialchars sẽ chuyển đổi chúng thành các thực thể HTML.
Hai hàm đó không làm cùng một việc; bạn nên chọn cái nào để sử dụng tùy thuộc vào nhu cầu của bạn / những gì bạn muốn nhận được.

Ví dụ:với đoạn mã này:

$str = 'this is a <strong>test</strong>';
var_dump(strip_tags($str));
var_dump(htmlspecialchars($str));

Bạn sẽ nhận được loại đầu ra này:

string 'this is a test' (length=14)
string 'this is a &lt;strong&gt;test&lt;/strong&gt;' (length=43)

Trong trường hợp đầu tiên, không có thẻ; trong thứ hai, những cái đã thoát đúng cách.

Và, với đầu ra HTML:

$str = 'this is a <strong>test</strong>';
echo strip_tags($str);
echo '<br />';
echo htmlspecialchars($str);

Bạn sẽ nhận được:

this is a test
this is a <strong>test</strong>

Bạn muốn cái nào trong số đó? Điều đó là câu hỏi quan trọng ;-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi mysql 1025 (HY000):Lỗi khi đổi tên của './foo' (errorno:150) nghĩa là gì?

  2. rails + MySQL trên OSX:Thư viện không được tải:libmysqlclient.18.dylib

  3. Spring Boot:Jdbc javax.net.ssl.SSLException:đóng cửa đến trước khi nhận close_notify của ngang hàng

  4. Quyền truy cập bị Từ chối vì MYSQL ERROR 1045

  5. Làm thế nào để chỉ lấy các bảng, không phải các khung nhìn bằng cách sử dụng SHOW TABLES?