Norwyn

New Member

Download miễn phí Bảy bước thiết kế trang web ấn tượng và hiệu quả





Thông thường, trong các ứng dụng web, người thiết kếmuốn giới hạn sựtruy cập đến một sốtrang web thông qua việc chứng thực người dùng (authentication) nhằm mục đích cho phép những người có quyền thực sựmới được phép truy cập và thực hiện một sốtrang web nào đó. Ví dụcác trang web dùng cho việc cập nhật CSDL từxa chỉcho phép người quản trịthực hiện hay trong các ứng dụng nhưdiễn đàn thảo luận, thông thường các trang gửi bài mới chỉcho phép những người đã đăng kí thực hiện mà thôi, Để đạt được mục đích này, có hai cách tiếp cận:
-Dùng chức năng bảo mật của hệthống: Cách này giới hạn quyền truy cập đến các trang web cần
bảo vệbằng quyền trên hệthống tập tin NTFS. Ví dụ, nếu muốn giới hạn quyền truy cập đến tập tin
admin.asp, ta xác lập quyền cho một người dùng nào đó được quyền đọc, thi hành mà thôi. Cách
này có hạn chếlà người dùng trang web phải có tài khoản trên server. Điều này sẽthực sựkhó
khăn khi đa sốcác ứng dụng web thường được hosting tại các server của các ISP.
-Dùng các đoạn mã chương trình tựviết: Cách này sửdụng cookies (thông qua biến kiểu Session)
kết hợp với CSDL vềngười dùng đểlàm việc này! Cách làm này cho phép đáp ứng khá hoàn hảo
nhu cầu bảo mật các trang web và tương thích dễdàng trong trường hợp hosting ởcác server khác
nhau.
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

hi đề cập đến Unicode trong lập trình, cần xác định rõ chúng ta dùng bảng mã Unicode theo
dạng biến đổi nào: UCS-2, UTF-8, hay UTF-16, … UCS-2 được dùng trong các hệ quản trị cơ sở dữ liệu
như SQL Server 7.0/2000, Microsoft Access 2000, UTF-8 thường được dùng trong các ứng dụng web, trong
khi UTF-16 lại được dùng trong các hệ thống như Windows 2000/XP, Java, …
2. Lập trình web với tiếng Việt Unicode
2.1. Chỉ định bảng mã dùng trong trang web
Khi một trang web được server chuyển xuống cho client, trình duyệt sẽ dùng thông tin về bảng mã mà trang
web đó sử dụng để chuyển dãy các byte trong tài liệu đó thành các kí tự tương ứng để hiển thị lên màn
hình. Ngoài ra, một khi dữ liệu trong các FORM được gửi đi sau khi người dùng submit, trình duyệt cũng sẽ
căn cứ vào bảng mã này để chuyển đổi dữ liệu khi truyền đi. Ví dụ, nếu trang web được chỉ định dùng bảng
3
mã windows-1252 thì khi FORM được submit, dữ liệu sẽ được mã hóa theo bảng mã này cho dù trước đó
trong các hộp điều khiển của FORM, dữ liệu được gõ dưới dạng Unicode [3].
Việc chỉ định bảng mã có vai trò rất quan trọng trong việc hiển thị đúng nội dung mà người thiết kế mong
muốn, bởi vì nếu không chỉ định bảng mã được dùng trong trang web hiện hành một cách rõ ràng, trình
duyệt sẽ sử dụng bảng mã mặc định. Ví dụ, nếu dữ liệu chuyển đến cho trang web là E1 BB 81, nếu chỉ
định bảng mã là UTF-8 thì 3 byte này chính là biểu diễn mã của kí tự “ề” trong khi nếu hệ thống dùng bảng
mã mặc định, ví dụ như windows-1252, thì 3 byte này lại được xem như là biểu diễn 3 kí tự khác nhau và sẽ
được hiển thị là “á»”.
Để chỉ định bảng mã mà trang web hiện hành sử dụng, ta dùng tag META với thuộc tính HTTP-EQUIV được
gán là Content-Type, và chỉ định tên của bảng mã được dùng trong thuộc tính CONTENT (Thông tin về các
bảng mã được dùng trên Windows có thể xem tại [4]). Trong ví dụ sau, tag META được dùng để chỉ định
bảng mã windows-1252 cho một trang web:
Để yêu cầu trình duyệt sử dụng một bảng mã cho toàn bộ trang web, ta phải đặt tag META này trước tag
BODY. Thông thường là đặt tag META này trong tag HEAD như ví dụ sau:
New Page 1

Trong trường hợp bảng mã được chỉ định không có khả năng biểu diễn được tất cả các kí tự của trang web,
người ta phải dùng đến số tham chiếu của kí tự (NCRs - numerical character references). Số tham chiếu kí
tự là điểm mã của kí tự Unicode tương ứng mà nó biểu diễn. Số tham chiếu kí tự có hai dạng thập phân và
thập lục phân. Dạng thập phân có cú pháp là “”, với D là số thập phân. Dạng thập lục phân có cú pháp
là “”, với H là số thập lục phân. Ví dụ: å và å là các số tham chiếu của kí tự “a” trong bảng
mã Unicode. Một khi gặp số tham chiếu của kí tự, trình duyệt sẽ tham chiếu trực tiếp đến kí tự có điểm mã
tương ứng trong bảng mã Unicode mà không sử dụng đến bảng mã được chỉ định hiện hành [5].
Lấy ví dụ một trang web được mã hóa với bảng mã windows-1252, lúc đó để hiển thị đoạn văn bản: “Tiếng
Việt”, dữ liệu cho trang web phải là “Tiếng Việt” , trong đó ế và ệ lần lượt là các
số tham chiếu của các kí tự “ế” và “ệ” trong bảng mã Unicode.
Điều này cho phép giải thích tại sao, các trang web không dùng bảng mã UTF-8, ví dụ như windows-1252,
vẫn có thể hiển thị được các kí tự Unicode không thuộc bảng mã đó hay khi chuyển đổi từ bảng mã UTF-8
sang windows-1252, MS FrontPage 2000 lại tự động thêm vào các số tham chiếu kí tự theo cách trên.
2.2. Hoạt động của webserver
Khi trình duyệt yêu cầu một trang .asp, trình xử lí trang asp tại webserver sẽ thông dịch các mã lệnh ở trong
trang web này và gửi kết quả về cho trình duyệt. Thông thường, lệnh Response.Write được dùng cho các
kết xuất từ các hằng chuỗi hay từ các biến ra màn hình. Ví dụ như:
4

<%
Response.Write “Chào mừng bạn đến với trang web này” ‘in một hằng chuỗi
Response.Write rs(”TEN_NV”) ‘in dữ liệu của một biến, ví dụ như là một trường của recordset
%>

Để yêu cầu webserver mã hóa các dữ liệu trong các hằng chuỗi và biến theo bảng mã sẽ được dùng để
hiển thị tại client, ta cần đặt thuộc tính CodePage về bảng mã tương ứng. Các lệnh trong ví dụ sau sẽ
yêu cầu webserver mã hóa các chuỗi dữ liệu theo bảng mã UTF-8 (Thông tin về các codepage tương ứng
với các bảng mã xem tại [4]):
// Dùng cho toàn bộ các trang trong Session hiện hành
// Dùng cho trang hiện hành
Lấy ví dụ trong trường hợp dùng cơ sở dữ liệu SQL Server 7.0, dữ liệu được trả về từ các câu truy vấn theo
bảng mã UCS-2. Nếu ta chỉ định CodePage là 65001, webserver sẽ tự động chuyển dữ liệu từ UCS-2 sang
UTF-8, ngược lại nếu không chỉ định thuộc tính CodePage, webserver sẽ chuyển dữ liệu đó đến client theo
bảng mã mặc định (ví dụ như windows-1252). Điều này giải thích cho trường hợp một số trang web asp hiển
thị không đúng dữ liệu Unicode được lưu trong các cơ sở dữ liệu như SQL Server 7.0/2000, MS Access
2000.
Ngoài ra, các trang asp có sử dụng đoạn mã lệnh thiết lập CodePage là 65001 phải được lưu theo định
dạng tương ứng là UTF-8 [6].
Như vậy, việc thiết lập thuộc tính CodePage trong trang asp sẽ giúp cho webserver hiểu được các dữ liệu
được lưu trong các cơ sở dữ liệu, hằng chuỗi kí tự, … theo bảng mã nào để mã hóa (encode) nó trước khi
chuyển đến cho trình duyệt. Việc chỉ định bảng mã dùng trong trang web bằng tag META sẽ giúp cho trình
duyệt diễn dịch (decode) dữ liệu được chuyển đến từ webserver đúng nhất khi hiển thị [7].
2.3. Các bước cơ bản của lập trình web asp sử dụng tiếng Việt Unicode
- Soạn và lưu trữ tập tin .asp dưới dạng mã hóa UTF-8.
- Trong các tập tin asp, chèn các đoạn mã chỉ định cho web server và trình duyệt xử lí dữ liệu trong
trang web như là UTF-8. Các đoạn mã này phải đặt ở đầu trang asp. Sử dụng ví dụ mẫu sau:
- Sử dụng các hệ quản trị CSDL hỗ trợ Unicode như SQLServer 7.0/2000, MS Access 2000. Nếu
dùng SQL Server thì phải khai báo kiểu dữ liệu cho các trường lưu dữ liệu Unicode là NCHAR,
NVARCHAR, NTEXT, … Các kiểu dữ liệu như TEXT, MEMO, HYPERLINK trong MS Access 2000
mặc định là hỗ trợ lưu dữ liệu Unicode.
- Truy xuất cơ sở dữ liệu thông qua JScript/VBScript/ODBC.
- Khi làm việc trên hệ quản trị CSDL SQL Server 7.0/2000, nếu dùng các hằng chuỗi trong các câu
lệnh SQL, phải thêm tiếp đầu ngữ N (bắt buộc là chữ in hoa) vào [8]. Nếu không sử dụng tiếp đầu
5
ngữ này, SQL Server sẽ tự động chuyển chuỗi dữ liệu sang bảng mã mặc định hiện hành trước khi
sử dụng nó trong các thao tác cập nhật CSDL. Ví dụ, nếu bạn dùng câu lệnh sau: INSERT INTO
SINHVIEN(TEN_SV) VALUES(‘Trần Nam Hải’) thì hằng chuỗi dữ liệu ‘Trần Nam Hải’ sẽ được SQL
Server xem như là chuỗi kí tự thường chứ không phải là chuỗi Unicode. Điều này sẽ dẫn đến hậu
quả là dữ liệu sẽ được lưu trữ không chính xác. Ví dụ như dữ liệu của kí tự “ầ” trong chuỗi trên là
E1 BA A7, sẽ được lưu thành 3 kí tự khác nhau. Trong khi đó nếu dùng câu lệnh INSERT INTO
SINHVI...
 

Các chủ đề có liên quan khác

Top