Trước tiên khi đưa dự liệu vào data chúng ta cần kiểm tra dự liệu đầu vào bằng các hàm sau:
addslashes(); thì thêm các ký tự đặc biệt vào
stripslashes(); thì xóa các ký tự đặc biệt
VÍ DỤ:
Ha Minh'laptrinhwebsitechuyennghiep => addslashes()=>Ha Minh\'laptrinhwebsitechuyennghiep
Ha Minh\'laptrinhwebsitechuyennghiep=>stripslashes()=>Ha Minh'laptrinhwebsitechuyennghiep
Để tránh hack SQl injetion và tránh lỗi khi insert vào CSDL.
Hoặc chúng ta cũng có thể làm cách khác là kiểm tra đầu vào của tiêu đề bài viết bằng cách chuyển các ký tự đặc biệt về html để tránh gây lỗi trong quá trình đưa dự liệu vào mysql bằng cách sau:
ví dụ
Ha Minh's Lập Trình Website Chuyên Nghiệp thì chúng ta kiểm tra đầu vào bằng cách này
cách 1:
loại bỏ các ký tự đặc biệt đơn giản bằng hàm str_replace("'",''',$stringcuaban);
cách 2:
loại bỏ các ký tự đặc biệt bằng hàm preg_replace('/'',''',$stringcuaban);
Như vậy các bạn hoàn toàn yên tâm sẽ không bị lỗi với các trường hợp có dấu nháy đơn trong tiêu đề bài viết nữa. nhưng nó có nhiều ký tự đặc biệt thì sao, điều ấy các bạn sử dụng cách 2 ở trên và viết theo mảng thì sẽ giải quyết hoàn toàn vấn đề của các bạn.
Với kiến thức hạn hẹp của mình, bài viết chỉ dừng lại ở đây, nếu các bạn có cách hay hơn thì comment ở bên dưới để cho bài viết được trọn vẹn hơn.
0 comments:
Post a Comment