Vấn đề tự động loại bỏ các ký tự đặc biệt khi lưu vào CSDL NukeViet

Thứ sáu - 24/07/2015 05:04
NukeViet không cho phép lưu các ký tự đặc biệt vào CSDL vì lý do bảo bật, song bạn cũng có thể dùng thủ thuật để lưu chúng, và chấp nhận rủi ro....
Cũng như Vấn đề tự động loại bỏ thẻ html khi lưu vào CSDL NukeViet NukeViet không cho phép lưu các ký tự đặc biệt vào CSDL, các ký tự này thường là dấu ngoặc kép, dấu nháy đơn, dấu và, hai dấu lớn bé mặc định đã được chấp nhận vì nó là ký tự đánh dấu thẻ trong HTML.

Khi submit, các hàm xử lý chuỗi của NukeViet sẽ làm việc và cắt bỏ những ký tự mà nó không cho phép, giải pháp ở đây là mã hóa dữ liệu trước khi submit. Việc này có thể do javascript đảm nhận. Trong bài viết này, mình sử dụng Hàm mã hóa, giải mã hóa ký tự đặc biệt trong javascript. Xem code mẫu http://developers.mynukeviet.net/code/Ham-ma-hoa-giai-ma-hoa-ky-tu-dac-biet-trong-javascript-8/
 
function htmlspecialchars(str)
{
	if ( typeof (str) == "string")
	{
		str = str.replace(/&/g, "&");
		str = str.replace(/"/g, """);
		str = str.replace(/'/g, "'");
		str = str.replace(/</g, "<");
		str = str.replace(/>/g, ">");
	}
	return str;
}

function un_htmlspecialchars(str)
{
	if (typeof(str) == "string")
	{
		str = str.replace(/>/ig, ">");
		str = str.replace(/</ig, "<");
		str = str.replace(/'/g, "'");
		str = str.replace(/"/ig, '"');
		str = str.replace(/&/ig, '&');
	}	
	return str;
}
Trước khi gửi dữ liệu (submit form), bạn dùng hàm htmlspecialchars để mã hóa dữ liệu từ nguồn dữ liệu bạn muốn lưu (Ví dụ bên dưới lấy từ ckeditor)
var id_editor = 'about_bodytext';// Mã hóa dữ liệu trước khi submit
$('#form').submit(function(){
	var bodytext = CKEDITOR.instances.id_editor.getData();
	CKEDITOR.instances.about_bodytext.setData( htmlspecialchars( bodytext ) );});// Giải mã dữ liệu khi hiển thị
	CKEDITOR.instances.id_editor.setData( un_htmlspecialchars( CKEDITOR.instances.id_editor.getData() )
);
Sau khi xử lý xong, bạn có thể dùng các cấu trúc như class="abc", onclick="open_modal();",..... trong nội dung bài viết.

Tổng số điểm của bài viết là: 15 trong 3 đánh giá

Xếp hạng: 5 - 3 phiếu bầu
Click để đánh giá bài viết

  Ý kiến bạn đọc

Trung tâm ứng dụng NukeViet
Ghi rõ nguồn khi sao chép thông tin từ website này.

Powered by NukeViet - a product of VINADES.,JSC