#1 (permalink)
11-27-2009, 03:14 AM
thangtong
Member
Gia nhập: Nov 2009
Bài gởi: 88
Bài 1: Những khái niệm căn bản về mạng máy tính
Mục đích và yêu cầu:
- Nắm được các khái niệm cơ bản nhất về mạng máy tính.
- Biết cách cài đặt giao thức TCP/IP và web server.
Yêu cầu:
- Một tờ giấy trắng
- Một gói café + 1 cốc nước nóng, hoặc một ít chè xanh.
- Bộ cài Windows.
- Bộ cài XAMPP (có trong mục download - PHP Storage).
Bắt đầu:
Bước 1: Ghi vào tờ giấy dòng chữ: "Đang bận làm việc, không tiếp khách, chỉ tiếp gái đẹp" rồi dán
trước cửa hoặc trên bàn làm việc Grin
Bước 2: Pha một cốc café. Cheesy
Bước 3: Bắt đầu với những khái niệm:
I. Khái niệm cơ bản:
1. Mạng máy tính: Là 2 hay nhiều máy tính được kết nối với nhau.
2. Máy chủ - Máy khách:
Trong mạng máy tính, máy chủ (hay còn gọi là server) là một máy tính được sử dụng để các máy
tính khác truy cập. Các máy tính truy cập vào 1 máy chủ được gọi là máy khách.
Như vậy, 1 máy tính trong mạng có thể vừa là 1 máy chủ (khi có máy khác truy cập đến nó), vừa là
một máy khách (nếu nó truy cập đến một máy tính khác). Vì vậy đừng nên nghĩ rằng máy chủ là 1
cái gì đó cao siêu cho mệt óc Cheesy
3. Giao thức mạng:
Các máy tính trên mạng "nói chuyện" với nhau thông qua một ngôn ngữ đặc biệt gọi là các giao thức
Bạn đã từng xây dựng một trang Web và đưa nó lên mạng? Trang web của bạn thật là thú vị (ít nhất
là theo ý nghĩ của bạn Cheesy) và tất nhiên bạn muốn tham khảo ý kiến của người đọc? Chẳng nhẽ
bạn lại cho số điện thoại và yêu cầu người góp ý phải gọi điện đến? Hic… Đảm bảo sẽ chẳng có ma
nào thèm gọi điện.
Bạn muốn "xin" một ít thông tin về người duyệt Web… hic. Làm cách nào bây giờ???
Vâng, đó chính là nhược điểm của cái gọi là trang web tĩnh. Đó là các trang Web không cho phép
bạn có thể tương tác với người dùng (chẳng hạn như là trao đổi hay thu thập các thông tin từ phía
người dùng). Nó là các trang web có đuôi *.htm thông thường. Ngược lại, các trang Web động cho
phép bạn nhận thông tin từ người dùng, xử lý thông tin đó, và có thể đáp trả lại các yêu cầu của họ.
Xem ra nó cũng linh động ra phết đấy chứ?
Để làm được điều đó, tất nhiên là bạn phải … theo dõi các bài viết này Cheesy
2. Lập trình Script
Các trang web nguyên thuỷ sử dụng ngôn ngữ định dạng chuẩn là HTML (HyperText Markup
Language). HTML chuẩn chỉ bao gồm các cặp thẻ đánh dấu để định khuôn dạng của tài liệu. Tuỳ
theo tên thẻ là gì mà trình duyệt sẽ tự động hiểu và làm các công việc do thẻ đó quy định. Chẳng
hạn như cặp thẻ <B>….</B> quy định đoạn văn bản trong đó sử dụng chữ đậm. Vì vậy, trên thực tế
người ta không coi nó là một ngôn ngữ (vì nó chẳng liên quan gì đến những thứ mà ta hay gặp trong
lập trình như biến, câu lệnh rẽ nhánh, lặp…). Cũng chính vì nguyên nhân này, nó phải tự mở rộng
bằng cách cho phép "nhúng" vào bản thân nó một số đoạn mã lệnh chương trình đặc biệt, người ta
thường gọi chúng là các đoạn mã Script hay các đoạn mã nhúng . Ngôn ngữ sử dụng trong các
đoạn mã lệnh đó gọi là các ngôn ngữ Script. Các ngôn ngữ script thường đơn giản và không có
nhiều sức mạnh như các ngôn ngữ "kinh điển" cùng tên, hay nói cách khác, chúng là một phần rất
nhỏ của một ngôn ngữ nào đó được tích hợp vào trình duyệt để thực hiện một số thao tác nhất định.
Chi tiết về ngôn ngữ HTML đã có đầy rẫy trên Internet, cũng như ở các hiệu sách, nên chúng không
được nhắc lại ở đây. Nếu các bạn chưa biết gì về nó thì bạn phải tìm đọc các tài liệu về HTML trước
khi tiếp tục theo dõi khoá học này.
Lập trình Script ở máy khách
Như tên gọi của nó, lập trình script ở máy khách là viết các đoạn script chạy trên máy khách. Các
đoạn mã này được máy chủ gửi kèm trong tài liệu, đưa về máy khách và được thực hiện ở đây.
Trong tài liệu gửi về trình duyệt, các đoạn mã này thường được tìm thấy trong cặp thẻ <Script
ta kích chuột vào Add. Hộp thoại Select Component hiển thị ra. Kích chọn tiếp Protocol -> Add.
Trong danh sách bên trái, chọn Microsoft. Sau đó sang danh sách bên phải, chọn TCP/IP. Bấm
Enter để bắt đầu quá trình cài đặt.
Trong quá trình cài đặt, nếu máy tính của bạn chưa có card mạng thì hệ thống sẽ yêu cầu cài một
trình điều khiển card mạng nào đó. Đừng lo, cứ chọn đại theo chỉ dẫn sẽ xong thôi.
Sau khi cài đặt xong, mở cửa sổ Command Prompt ra. Gõ lệnh
C:\ping 127.0.0.1
Nếu thấy có 4 dòng chữ có dạng:
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
tức là giao thức TCP/IP đã được cài đặt thành công.
Ghi chú: Dãy số 127.0.0.1 chính là địa chỉ IP mặc định của chính máy tính bạn đang sử dụng. Bạn
cũng có thể sử dụng cái tên localhost thay cho địa chỉ IP 127.0.0.1 để truy cập vào máy tính của
chính mình.
2. Cài đặt web server, PHP, MySQL:
Công cụ cài đặt ở đây được tôi lựa chọn là XAMPP - Bộ công cụ cài đặt trọn gói bao gồm Web
server Apache, bộ xử lý PHP, và CSDL My SQL. Các bạn có thể tham khảo chi tiết phần mềm tại:
http://www.apachefriends.org]apache friends - very easy apache, mysql, php and perl installation
without hassles.
Trước khi cài đặt và vận hành hệ thống, hãy ngắt toàn bộ các website mặc định của IIS/PWS, và
tắt luôn dịch vụ nếu các bạn đã từng cài các webserver này. Nếu các bạn đang chạy Apache và
MySQL thì cũng gỡ bỏ (uninstall) đi.
Các bạn tiến hành cài đặt XAMPP vào một thư mục nào đó (chẳng hạn ở đây tôi chọn là
c:\xampp).
Sau khi cài đặt xong, các bạn đã có thể vận hành Apache, PHP và MySQL.
Để vận hành hệ thống, các bạn vào thư mục của hệ thống (c:\xampp theo ví dụ trên), chạy file
xampp-control.exe. Tiếp đó start các dịch vụ Apache và MySQL lên. Nếu quá trình khởi động thành
công, khi gõ địa chỉ http://localhost hoặc http://127.0.0.1 vào trình duyệt thì sẽ hiển thị trang chủ
- Khi các thư viện nền tảng được gọi, nếu muốn thoát các ứng dụng này, ta phải tắt chương trình
triệu gọi (Web server) và khởi động lại máy tính.
- Các thư viện cần được đặt trong các tuyến trình bảo vệ, tức là chúng cần phải được cảnh giác
về cách sử dụng các biến chung hoặc các biến tĩnh.
- Nếu chương trình triệu gọi gây ra lỗi truy cập, nó có thể dẫn đến tình trạng server bị treo tắc tử.
- Và cuối cùng: khi đã được dịch ra các file DLL, công việc gỡ lỗi cũng như bảo trì mã lệnh trở nên
vất vả hơn bao giờ hết.
Kỹ thuật Web mới nhất của Microsoft, kết hợp HTML, các đoạn Script, các thành phần xử lý phía
server trong cùng một file, được gọi là ASP (Active Server Pages), với phiên bản mới nhất hiện
nay là ASP.Net. ASP được triệu gọi bởi một thư viện liên kết động gắn với các Web server của
Microsoft. Về bản chất, ta có thể coi ASP như là một ngôn ngữ thông dịch vậy. Một trang ASP có
thể sử dụng HTML, JScript và VBScript. Qua các đoạn mã nhúng này, ASP có thể truy cập đến
các thành phần phía server. Các thành phần này có thể được viết trên bất kỳ ngôn ngữ nào hỗ trợ
các thành phần COM của Microsoft. Và đây chính là sức mạnh của ASP: Nó có thể làm được bất
kỳ cái gì mà máy chủ có thể làm được với các thành phần COM. Sau khi được thi hành, ASP sẽ
sản sinh ra một trang Web có khuôn dạng HTML và trả nó về cho Web server.
Một bất lợi lớn đối với ASP là nó chỉ có thể hoạt động trên các họ Web server của Microsoft (bao
gồm PWS trên Win9x hay IIS trên WinNT/2000/XP). Các nhà phát triển đang hướng đến những
môi trường khác như Unix/Linux (hiện đã có bản Chili! ASP chạy trên các môi trường này), nhưng
kết quả thì còn phải đợi thêm một thời gian nữa
Trước khi đi vào tìm hiểu lịch sử của PHP, có lẽ chúng ta cũng phải nhắc đến một tên tuổi khác là
Java Server Pages. hay JSP. Giống như ASP, trang JSP cho phép chứa HTML, các đoạn mã Java
và các thành phần Java Bean và chúng sẽ thực hiện các công việc để sản sinh ra một trang Web
để gửi về Client. Bất lợi chính của loại này là phải đi kèm với "máy ảo Java", vốn không được coi
là nhanh về mặt tốc độ.
Lịch sử PHP
PHP - viết tắt của PHP Hypertext Preprocessor - một định nghĩa đệ quy khó hiểu!
Vào khoảng năm 1994, Rasmus Lerdorf đưa một số đoạn Perl Script vào trang Web để theo dõi
xem ai đang đọc tài liệu của ông ta. Dần dần, người ta bắt đầu thích các đoạn Script này và sau đó
đã xuất bản một gói công cụ có tên là "Personal Home Pages" (nghĩa đầu tiên của PHP). Ông ta
</BODY>
</HTML>
OK, Save lại với cái tên test.php. Copy nó vào thư mục gốc (Root Directory) mặc định của Web
server. Khởi động Web server Apache lên (nó sẽ hiển thị một cửa sổ đen ngòm, bạn cứ để đó,
đừng tắt nó đi, vì nếu tắt đi thì tức là bạn đã tắt chương trình Web server Apache đi rồi đấy).
Bây giờ mở trình duyệt ra, tại ô địa chỉ, gõ nội dung sau: "http://127.0.0.1/test.php" (nhớ bỏ hai dấu
ngoặc kép đi nhé)
Nó sẽ hiển thị ra cửa sổ trình duyệt với duy nhất dòng chữ hello, world
Chắc bạn thất vọng lắm hả? Vâng, nó chỉ có mỗi dòng chữ "hello, world" trên màn hình trình duyệt,
mà bạn có thể làm nó đơn giản hơn rất nhiều, chẳng cần đến cái PHP kia. OK. Đừng thất vọng
vội.
Chương trình này hoạt động như thế nào? Trước tiên chúng ta hãy tìm hiểu cách thức hoạt động
của hệ trình duyệt (Web Client) và máy chủ cung cấp dịch vụ Web (Web server ) đã nhé:
Bước 1: Trình duyệt gửi một yêu cầu HTTP đến máy chủ, yêu cầu một file nào đó
Bước 2: Máy chủ sẽ chuyển yêu cầu này đến chương trình xử lý tương ứng, chính là chương trình
Web server.
Bước 3: Web server phân tích chuỗi yêu cầu nhận được, kiểm tra xem trình duyệt ở máy khách
yêu cầu gì. Nếu đó là các file bình thường (không phải là các file chứa các đoạn mã script thực thi
phía máy chủ), nó sẽ tìm kiếm file đó và trả về cho trình duyệt ở máy khách. Còn nếu đó là các file
chứa các đoạn mã script thực thi phía máy chủ (các chương trình CGI, hay các file thư viện liên
kết động ISAPI, hoặc các file *.asp hay *.php), nó sẽ triệu gọi chương trình thực thi các đoạn mã
này. Chương trình này sẽ chịu trách nhiệm chạy các đoạn mã, trả chúng về cho Web server dưới
khuôn dạng của HTML. Sau đó, Web server mới trả kết quả lấy được cho trình duyệt.
Như vậy, chương trình của bạn phải được thực thi trên máy chủ, sau đó mới được trả về cho trình
duyêt. Và đây chính là cái gọi là "Trang Web động". Không như các trang web tĩnh, trang web động
cho phép bạn có sự tương tác với máy chủ thông qua các đoạn script thực thi phía server. Nhờ có
sự tương tác này, bạn có thể truy xuất cơ sở dữ liệu, lấy thông tin người sử dụng, điều khiển các
hoạt động khác...
OK. Bây giờ chắc bạn đã có được chút ít kiến thức với các hệ thống điều khiển Web Client -
Server rồi. Đến lượt chúng ta bắt đầu phân tích chương trình đầu tiên kia.
echo ("hello, world");
?>
<BR>
Xin chao tat ca cac ban, day la chuong trinh PHP dau tien cua toi
<?php
echo ("<p align=right> CMXQ </p>")
?>
</BODY>
</HTML>
Khởi đầu, chương trình xử lý phía Web server sẽ phân tích file PHP này, trả về đoạn mã
<HTML>
<BODY>
Tiếp theo, khi thấy đoạn mã thứ nhất, nó sẽ thực thi và trả về dòng "hello, world" (Dòng này do
hàm echo() của PHP thực hiện). Sau đó, nó tiếp tục trả về các dòng
<BR>
Xin chao tat ca cac ban, day la chuong trinh PHP dau tien cua toi
Đến khi gặp đoạn PHP thứ 2, nó sẽ thực thực thi đoạn mã thứ 2 này (gọi hàm echo()) và trả về kết
quả:
"<p align=right> CMXQ </p>"
Hết đoạn mã thứ 2. Nó sẽ gửi tiếp phần còn lại của file về cho Web server. Sau đó, Web server
chính thức trả toàn bộ kết quả về cho trình duyệt.
Điều quan trọng cuối cùng: Kết thúc mỗi câu lệnh của PHP đều là một dấu chấm phẩy (";"), ngoại
trừ một vài trường hợp (các bạn sẽ được biết sau này)
Bây giờ tôi xin giải thích cách sử dụng hàm duy nhất trong bài này: echo()
Hàm echo được sử dụng để trả về nội dung của các biến, hằng, chuỗi... cho trình duyệt. Ở ví dụ
trên, hàm echo trả về chuỗi "hello, world" và chuỗi "<p align=right> Le Nguyen Sinh </p>". Các thẻ
HTML trong chuỗi sẽ được giữ nguyên khi nó được đưa về trình duyệt, và nó sẽ được xử lý như
các thẻ HTML khác.
III. Một số lưu ý
Dấu chú thích:
Đoạn mã đúng như sau:
<?php
echo ("My name's: \"CMXQ\"");
?>
Dưới đây là một số các ký tự đặc biệt mà có thể được chỉ rõ với ký tự giải phóng gạch chéo
Ký tự nối tiếp Nghĩa
\' Dấu móc lửng (')
\" Dấu móc kép (")
\\ Dấu gạch chéo (\)
\$ Dấu $
\n Ký tự tạo dòng mới
\r Ký tự về đầu dòng
\t Ký tự Tab
Hãy xem ví dụ dưới đây (yêu cầu bạn tự tìm hiểu và phân tích mã nguồn)
<?php
$name="Tiến Tùng";
echo("Giá trị của biến \$name là $name);
Bài 5: Các kiểu dữ liệu cơ bản, hằng, biến trong PHP
1. Hằng và biến
Nếu các bạn chưa từng học lập trình, chắc các bạn đang còn xa lạ với hằng và biến. OK, No Star
where
- Giống như trong toán học, một hằng số xác định một giá trị duy nhất thông qua tên của hằng số,
trong Tin học cũng vậy. Môt hằng số xác định một giá trị duy nhất trong toàn bộ chương trình.
Người ta có thể sử dụng giá trị này thông qua tên của hằng số đó trong chương trình
- Tương tự đối với biến. Một biến trong lập trình được sử dụng để lưu trữ một giá trị nào đó thông
qua tên biến. Sở dĩ người ta gọi nó là biến, vì không như hằng số (giữ nguyên giá trị trong toàn bộ
quá trình chạy chương trình), người ta có thể thay đổi giá trị của biến số thông qua các phép gán.
Để tạo điều kiện dễ dàng trong quá trình phân tích dữ liệu, PHP quy định bất kỳ từ nào có dấu $ ở
trước đều là tên của biến. Ví dụ:
$ten xác định một biến có tên là ten
"2 gio": Kiểu xâu
3.Định nghĩa hằng
Hàm define() được sử dụng để tạo một hằng số:
Hàm này có cấu trúc sau:
define ("tên_hằng","giá trị của hằng");
Ví dụ:
define ("COMPANY","NS Co.Ltd");// Định nghĩa hằng COMPANY với giá trị là "NS Co Ltd"
define ("diem_so",4.5);// định nghĩa hằng diem_so với giá trị là 4.5 (hic... thi lại );
Sau khi một hằng số được tạo ra, ta có thể sử dụng chúng thay cho giá trị của chúng:
echo ("Tên công ty: ".COMPANY);
Điều này tương đương với echo ("Tên công ty: NS Co Ltd");
4. Một số hằng xây dựng sẵn (built in constant)
PHP có chứa một số hằng được xây dựng sẵn. TRUE và FALSE là 2 hằng đã được dựng sẵn với
chỉ định true (1) và false (=0 hoặc một xâu rỗng)
Hằng số PHP_VERSION chỉ định phiên bản của bộ phân tích PHP mà bạn đang dùng hiện tại.
Hằng PHP_OS chỉ định hệ điều hành server mà trình phân tích PHP đang chạy.
echo (PHP_OS); // in ra màn hình "Linux" (ví dụ)
_FILE_and_LINE_ trả về tên của đoạn script (đoạn mã nhúng) đang được phân tích tại dòng hiện
thời trong đoạn mã script.
PHP còn cung cấp một số hàm để thông báo lỗi như E_ERROR, E_WARNING, E_PARSE và
E_NOTICE.
Ngoài ra, PHP còn cung cấp một số biến cung cấp thông tin về môi trường PHP đang sử dụng. Để
xem các thông tin này,bạn có thể dùng hàm phpinfo() như sau:
<HTML>
<!-- phpinfo.php-->
<BODY>
<?php
phpinfo();
?>
</BODY>
$d = $c+"6th" //$d là kiểu số thực = 8.0
Ép kiểu dữ liệu
Ép kiểu dữ liệu cho phép bạn thay đổi kiểu dữ liệu của biến
$a=11.2// $a là kiểu thực
$a=(int)$a// Bây giờ, $ a là kiểu nguyên, giá trị = 11
$a= (double) $a// Bây giờ $a lại trở về kiểu thực = 11.0
$b= (string)$a// $b là giá trị kiểu chuỗi ="11"
Ngoài ra, chúng ta còn được phép ép kiểu (array) và (object)
(integer) tương đương với (int); (fload) và (real) tương đương với (double)
6. Một số hàm tiện ích khác
PHP có một số hàm hỗ trợ làm việc với các biến
- Hàm gettype($ten_bien) xác định kiểu của biến. Nó sẽ trả về một trong các giá trị: "integer",
"double", "string", "array", "object", "class", "unknown type" (Chúng ta sẽ tìm hiểu kỹ hơn vể mảng
(array) và kiểu đối tượng (object) ở các bài sau.
Ví dụ:
echo(gettype($name));
- Hàm settype($ten_bien,"kieu_du_lieu") sẽ đặt kiểu dữ liệu cho biến $ten_bien. Kiểu dữ liệu được
viết dưới dạng một chuỗi, và có thể có một trong các kiểu sau: "integer", "double", "string", "array",
"object". Nếu kiểu dữ liệu không được đặt, giá trị false sẽ được trả về, còn nếu thành công, nó sẽ
trả về giá trị true.
VD:
$a=7.5; //$a là kiểu thực
settype($a,"integer"); // bây giờ nó là một số nguyên có giá trị 7
- Hàm isset($ten_bien) được sử dụng để xác định xem biến $ten_bien đã đặt một giá trị nào đó
hay chưa. Nếu biến đó đã có giá trị, hàm trả về true. Trong truờng hợp ngược lại, hàm trả về giá trị
false;
- Hàm unset($ten_bien) được sử dụng để huỷ bỏ biến $ten_bien, giải phóng bộ nhớ bị chiếm dụng
của biến đó
Căn bản về HTML
Căn bản về HTML
dụ dưới đây mang tính chất tham khảo, các bạn có thể copy và lưu chúng dưới dạng file .htm.
Cấu trúc của 1 thẻ trong HTML bao gồm:
- Dấu "<". Nếu là thẻ đóng thì sẽ bắt đầu bằng "</"
- Tên thẻ
- Các tham số khác nếu có. Nếu là thẻ đóng thì không cần tham số.
- Dấu ">".
Cấu trúc của một file HTML có dạng:
HTML Code:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
phần thân tài liệu
</BODY>
</HTML>
Toàn bộ nội dung chính của trang HTML được đặt trong cặp thẻ
<BODY></BODY>
Các thẻ xử lý đoạn văn bản Bây giờ chúng ta lần lượt đi qua các cặp thẻ hay sử dụng nhất. Xin
nói thêm: thẻ có cấu trúc: <tên_thẻ thuộc_tính1="gia_tri1" thuộc_tính2="gia_tri2">. Tất nhiên các
bạn có thể bỏ một số thuộc tính đi (lúc đó, các thuộc tính bị bỏ đi sẽ được đặt ngầm định bởi trình
duyệt, rất khó chịu)
1. Các thẻ xử lý đoạn
a). Thẻ phân chia đoạn
Trong HTML, các đoạn tài liệu, văn bản, hình ảnh… được phân chia bằng cặp thẻ <P>văn
bản</P>
Thẻ <P> có 1 số thuộc tính sau:
Align: Thuộc tính này sẽ chứa 1 trong 3 giá trị:
- center: Đoạn tài liệu sẽ được canh chỉnh vào giữa
- left: Đoạn tài liệu sẽ được canh chỉnh theo lề trái
</HTML>
b. Thẻ xuống dòng
Trong HTML, các ký tự xuống dòng không được sử dụng. Để ngắt một dòng nào đó, ta dùng thẻ
<BR>. Đây là 1 thẻ đơn:
HTML Code:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p align="left" style="margin-left : 30">
Trung thu là tết thiếu nhi<BR>Tại sao người lớn lại đi chơi nhiều
<BR>Chơi nhiều thì sẽ làm liều<BR>Làm liều lại đẻ ra nhiều thiếu
nhi<BR></p>
</BODY>
</HTML>
Chú ý:
Một cặp thẻ khác cũng được sử dụng để canh chỉnh đoạn tài liệu hay bảng biểu:
- <center>…</center>: Xác định canh chỉnh một đoạn tài liệu hoặc bảng biểu vào giữa trang.
Được chỉnh sửa lần cuối cùng bởi thangtong : 11-26-2009 vào lúc 11:19 PM
các thẻ định dạng của html
Các thẻ xử lý font chữ:
a. Thẻ Meta:
Thẻ này có nhiều thuộc tính khác nhau và cũng làm nhiều nhiệm vụ khác nhau. Tuy nhiên ở đây tôi
chỉ nói về cách ứng dụng thẻ này để hiển thị các đoạn mã tiếng Việt.
Trước đây các loại font chữ tiếng Việt rất phong phú, điều này khiến cho người sử dụng tiếng Việt
trên thế giới phải than trời ầm ỹ cả lên. Rất may là tại thời điểm này, hầu hết các font chữ tiếng
Việt thời "đồ đá" không còn được ứng dụng trong thiết kế web nữa, thay vào đó là các chuẩn quốc
tế Unicode.
Ở đây tôi xin giới thiệu 2 chuẩn Unicode tiếng Việt phổ biến và cách sử dụng thẻ meta cho từng
Tại sao người lớn lại đi chơi nhiều
Chơi nhiều thì sẽ làm liều
Làm liều lại đẻ ra nhiều thiếu nhi.
Thì đoạn mã HTML do ta sinh ra phải có dạng:
<HTML>
<BODY>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<p align="left" style="margin-left : 30">
<img src ="bigreen.gif">
Trung thu l#224; t#7871;t thi#7871;u nhi<BR>T#7841;i sao ng#432;#7901;i l#7899;n l#7841;i
#273;i ch#417;i nhi#7873;u.<BR>Ch#417;i nhi#7873;u th#236; s#7869; l#224;m
li#7873;u<BR>L#224;m li#7873;u l#7841;i #273;#7867; ra nhi#7873;u thi#7871;u nhi<BR></p>
</BODY>
</HTML>
Tất nhiên chúng ta có thể sử dụng chương trình Vietkey hoặc Unikey để gõ tiếng Việt theo chuẩn
này với hệ thống bảng mã Unicode UCS2
Chú ý:
1: Một số chương trình soạn thảo có hỗ trợ chế độ hiển thị mã tiếng Việt trong quá trình soạn thảo.
Khi đó nếu các bạn mở chế độ mã HTML mà vẫn đọc được tiếng Việt như thường thì các bạn cứ
ung dung gõ tiếng Việt theo kiểu Unicode thông thường là được. Còn nếu nó hiển thị ra các ký tự
loằng ngoằng thì các bạn phải đoán mò ra dạng chuẩn mã hoá font của nó và sử dụng chế độ gõ
chữ tương ứng.
2: Trong tài liệu này tôi sẽ đánh tiếng Việt thông thường, các bạn sẽ phải chịu trách nhiệm xử lý
mã tiếng Việt trong các đoạn ví dụ.
b) Cặp thẻ <font>…</font>
Cặp thẻ này quy định tên font, màu sắc, kích cỡ font. Nó có những thuộc tính sau:
Face: Tên của font, chẳng hạn: Arial, .VnTime, Times New Roman
Size: Kích cỡ của font, bé nhất là 1.
Color: Màu sắc cùa font, bao gồm dấu # và 6 chữ số hex tiếp theo quy định mã màu RGB
Ví dụ:
Thẻ <P> có 1 số thuộc tính sau:
Align: Thuộc tính này sẽ chứa 1 trong 3 giá trị:
- center: Đoạn tài liệu sẽ được canh chỉnh vào giữa
- left: Đoạn tài liệu sẽ được canh chỉnh theo lề trái
- right: Đoạn tài liệu sẽ được canh chỉnh theo lề phải
- justify: Đoạn tài liệu sẽ được canh chỉnh theo hai bên
Ví dụ:
<HTML>
<BODY>
<p align ="justify"> Thử một tí</p>
</BODY>
</HTML>
Style: Thuộc tính này sẽ quy định khoảng cách lề của đoạn. Trong thuộc tính này lại có các thuộc
tính con, tuy nhiên các thuộc tính con này được đặt cách nhau bằng dấu chấm phẩy. Tất nhiên các
bạn cũng có thể loại bỏ thuộc tính con:
- margin-left : x (x là số nguyên chỉ định chiều rộng của lề trái)
- margin-right : y (y là số nguyên chỉ định chiều rộng của lề phải)
- margin-top: z (z là số nguyên chỉ định chiều rộng của lề trên)
- margin-bottom: t(t là số nguyên chỉ định chiều rộng của lề dưới)
- line-height: u% (u: khoảng cách giữa các dòng tính theo đơn vị 100 %)
Ví dụ:
<HTML>
<BODY>
<p align ="center" style ="margin-left: 10; margin-right: 5; margin-top: 6; margin-bottom: 6"> Thử hai
tí. Tí thứ 2 này xác định đoạn văn bản căn giữa, có lề trái = 10, lề phải bằng 5, lề trên = 6, lề dưới
= 6. Hết tí thứ 2.</p>
<p align ="left" > Thử ba tí. Tí thứ 3 này xác định đoạn văn bản căn trái, các lề đặt theo mặc định
của trình duyệt</p>
<p align ="left" style="line-height: 150%" > Thử ba tí. Tí thứ 3 này xác định đoạn văn bản căn trái,
các lề đặt theo mặc định của trình duyệt</p>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p align="left" style="margin-left : 30">
<img src ="bigreen.gif" align = "right">
Trung thu là tết thiếu nhi<BR>Tại sao người lớn lại đi chơi nhiều <BR>Chơi nhiều thì sẽ làm
liều<BR>Làm liều lại đẻ ra nhiều thiếu nhi<BR></p>
</BODY>
</HTML>
- border: Xác định chiều dày của viền bao quanh ảnh.
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p align="left" style="margin-left : 30">
<img src ="bigreen.gif" border ="5">
Trung thu là tết thiếu nhi<BR>Tại sao người lớn lại đi chơi nhiều <BR>Chơi nhiều thì sẽ làm
liều<BR>Làm liều lại đẻ ra nhiều thiếu nhi<BR></p>
</BODY>
</HTML>
b. Thẻ liên kết trang web.
Để tạo một liên kết tới một trang web khác, ta dùng cặp thẻ <a></a>. Cặp thẻ này có các thuộc
tính sau:
Href: Địa chỉ URL của trang web cần liên kết tới. bạn đã có một bookmark trên trang web, bạn có
thể trỏ đến vị trí của bookmark bằng cách dùng thuộc tính href với dấu # và tên bookmark.
name: Xác định tên của bookmark (điểm liên kết trong nội tại trang web).
Ví dụ, ta có 2 trang web:
Trang thứ nhất có địa chỉ là "tettrungthu.htm", có nội dung sau:
<a href ="tettrungthu.htm">Tet trung thu</a>
</p>
</BODY>
</HTML>
Chú ý: cả 2 file này phải được đặt cùng thư mục. Trong trường hợp đặt khác thư mục các bạn
phải ghi rõ đường dẫn đến file kia.
Các cặp thẻ xử lý bảng:
Các bảng trong HTML được định nghĩa như sau:
Định nghĩa 1 bảng bởi cặp thẻ <table></table>
Trong 1 bảng (table) được chia làm nhiều dòng , mỗi dòng giới hạn bởi 1 cặp thẻ <tr></tr>.
Trong mỗi dòng lại có các ô , giới hạn bởi cặp thẻ <td></td>
Chẳng hạn để định nghĩa 1 bảng gồm có 1 dòng và 3 ô, ta làm như sau:
<table>
<tr>
<td>Ô thứ nhất</td>
<td>Ô thứ 2</td>
<td>Ô thứ 3</td>
</tr>
</table>
Hoặc để định nghĩa một bảng gồm 2 dòng, mỗi dòng 3 ô:
<table>
<tr>
<td>Ô thứ nhất dòng 1</td>
<td>Ô thứ 2 dòng 1</td>
<td>Ô thứ 3 dòng 1</td>
</tr>
<tr>
<td>Ô thứ nhất dòng 2</td>
<td>Ô thứ 2 dòng 2</td>
<td>Ô thứ 3 dòng 2</td>
- colspan: Xác định bao nhiêu ô tính từ ô đó sẽ được chập vào làm 1 (trên cùng 1 dòng)
- rowspan: Xác định bao nhiêu ô tính từ ô đó sẽ được chập vào làm 1 (trên cùng 1 cột).
- background: Xác định hình ảnh sẽ được sử dụng để làm nền cho ô
- bgcolor: Xác định màu nền ô, viết theo kiểu #XXXXXX (số HEX).
Xử lý biểu mẫu(Form)
Cách sử dụng mẫu biểu trong HTML:
Một mẫu biểu (form) trong HTML bao gồm nhiều thành phần khác nhau. Các thành phần có thể là
ô văn bản, ô kéo thả, ô danh sách, nút bấm, hay các ô check ...
Mẫu biểu được bắt đầu bằng thẻ <form> và kết thúc bởi thẻ </form>. Giữa 2 cặp thẻ này, các bạn
có thể sử dụng các cặp thẻ HTML khác.
Thẻ form có một số thuộc tính sau:
- method
Thuộc tính này có 2 giá trị POST hoặc GET, để xác định dữ liệu gửi lên theo kiểu POST hay GET.
Kiểu GET chính là kiểu mà khi nhập dữ liệu lên máy chủ, các dữ liệu này sẽ được hiển thị trên ô
Address dưới dạng các căp tên=giá_tri. Nhược điểm của kiểu này là toàn bộ cái URL và xâu
tên=giá_trị kia sẽ bị giới hạn dưới 255 ký tự (do đặc điểm của trình duyệt). Vì vậy để có thể gửi
nhiều dữ liệu hơn, người ta đã sinh ra kiểu POST. Với kiểu này, dữ liệu sẽ không bị giới hạn chiều
dài 255 ký tự của chuỗi địa chỉ do không bị gộp vào chuỗi địa chỉ. Kiểu POST cũng thường dùng
để truyền các dữ liệu nhạy cảm mà người sử dụng không muốn hiển thị trên ô Address (password
chẳng hạn).
Ví dụ:
<form method = "post"> Thử một tí
</form>
- action: Thuộc tính này sẽ chỉ định form gửi dữ liệu đến trang nào. Trong trường hợp thuộc tính
này không được khai báo, form sẽ gửi thẳng dữ liệu và yêu cầu về chính trang hiện hành (sau đó
trình duyệt sẽ tải lại nội dung mới).
Ví dụ:
<form method = "post" action ="thu2ti.php"> Thử hai tí
</form>
Tuy nhiên, 2 ví dụ trên chưa có ý nghĩa gì, vì chúng ta chưa trang bị các thành phần cơ bản của
<option value = gia_trín>nội dung n</option>
</select>
Trong đó:
Thẻ Select với thuộc tính name sẽ xác định tên của hộp danh sách sổ xuống.
Các thẻ option xác định giá trị của tên biến trong thẻ select nếu được chọn. Giá trị sẽ được gán
vào biến nằm trong thuộc tính value của thẻ option.
Ví dụ:
<form method="POST">
<p>
User Name:<input type="text" name="T1" size="20"> </p>
<p>
Password:
<input type="password" name="T2" size="20"><input type="submit" value="Login"
name="B1"></p>
<p>Sex: <Select name ="sex">
<option value =1>Male </option>
<option value =0>Female </option>
</select>
</p>
</form>
Khi người dùng kích chọn Male, giá trị 1 sẽ được chuyển vào biến sex (được định nghĩa trong thẻ
Select>).
Các thẻ lựa chọn radio:
Các thẻ này sẽ cho phép hiển thị ra một danh sách các nút tròn, mà chúng ta sẽ chỉ được phép
kích chọn 1 trong các nút đó.
Để hiển thị các nút radio này, các bạn có thể dùng thẻ input với type là radio. Một nhóm các nút
radio này sẽ được thiết lập nếu như thuộc tính name của chúng trùng nhau:
<input type="radio" value="" name="R1">
Ví dụ dưới đây mô phỏng dòng chọn kiểu gõ (telex, VNI) trên diễn đàn:
<input type=radio name="switcher" value="OFF" >Tắt
Các dịch vụ web server dựa trên nền giao thức TCP/IP. Vì vậy trước khi cài đặt server, ta phải tiến
hành cài đặt giao thức TCP/IP.
Để cài đặt giao thức TCP/IP, ta vào Control Panel, chọn Network. Nếu thấy dòng chữ TCP/IP đã
xuất hiện trong ô Configuration, tức là giao thức TCP/IP đã được cài đặt trên máy. Còn nếu không,
ta kích chuột vào Add. Hộp thoại Select Component hiển thị ra. Kích chọn tiếp Protocol -> Add.
Trong danh sách bên trái, chọn Microsoft. Sau đó sang danh sách bên phải, chọn TCP/IP. Bấm
Enter để bắt đầu quá trình cài đặt.
Trong quá trình cài đặt, nếu máy tính của bạn chưa có card mạng thì hệ thống sẽ yêu cầu cài một
trình điều khiển card mạng nào đó. Đừng lo, cứ chọn đại theo chỉ dẫn sẽ xong thôi.
Sau khi cài đặt xong, mở cửa sổ Command Prompt ra. Gõ lệnh
C:\ping 127.0.0.1
Nếu thấy có 4 dòng chữ có dạng:
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
Reply from 127.0.0.1: byte = xx time<xx ms TTL =xxx
tức là giao thức TCP/IP đã được cài đặt thành công.
Ghi chú: Dãy số 127.0.0.1 chính là địa chỉ IP mặc định của chính máy tính bạn đang sử dụng. Bạn
cũng có thể sử dụng cái tên localhost thay cho địa chỉ IP 127.0.0.1 để truy cập vào máy tính của
chính mình.
2. Cài đặt web server, PHP, MySQL:
Công cụ cài đặt ở đây được tôi lựa chọn là XAMPP - Bộ công cụ cài đặt trọn gói bao gồm Web
server Apache, bộ xử lý PHP, và CSDL My SQL. Các bạn có thể tham khảo chi tiết phần mềm tại:
http://www.apachefriends.org]apache friends - very easy apache, mysql, php and perl installation
without hassles.
Trước khi cài đặt và vận hành hệ thống, hãy ngắt toàn bộ các website mặc định của IIS/PWS, và
tắt luôn dịch vụ nếu các bạn đã từng cài các webserver này. Nếu các bạn đang chạy Apache và
MySQL thì cũng gỡ bỏ (uninstall) đi.
Các bạn tiến hành cài đặt XAMPP vào một thư mục nào đó (chẳng hạn ở đây tôi chọn là
c:\xampp).
điểm này, Microsoft và Netscape đã hợp tác và đưa ra một cải tiến đáng kể là chuyển chúng về
dạng các file thư viện liên kết động (DLL ), cho phép chia sẻ mã lệnh giữa các tuyến trình. Đây
chính là các kỹ thuật ISAPI và NSAPI.
Đen đủi thay, các kỹ thuật dựa trên DLL không phải là đã hoàn thiện. Chúng vẫn còn một số vấn
đề:
- Khi các thư viện nền tảng được gọi, nếu muốn thoát các ứng dụng này, ta phải tắt chương trình
triệu gọi (Web server) và khởi động lại máy tính.
- Các thư viện cần được đặt trong các tuyến trình bảo vệ, tức là chúng cần phải được cảnh giác
về cách sử dụng các biến chung hoặc các biến tĩnh.
- Nếu chương trình triệu gọi gây ra lỗi truy cập, nó có thể dẫn đến tình trạng server bị treo tắc tử.
- Và cuối cùng: khi đã được dịch ra các file DLL, công việc gỡ lỗi cũng như bảo trì mã lệnh trở nên
vất vả hơn bao giờ hết.
Kỹ thuật Web mới nhất của Microsoft, kết hợp HTML, các đoạn Script, các thành phần xử lý phía
server trong cùng một file, được gọi là ASP (Active Server Pages), với phiên bản mới nhất hiện
nay là ASP.Net. ASP được triệu gọi bởi một thư viện liên kết động gắn với các Web server của
Microsoft. Về bản chất, ta có thể coi ASP như là một ngôn ngữ thông dịch vậy. Một trang ASP có
thể sử dụng HTML, JScript và VBScript. Qua các đoạn mã nhúng này, ASP có thể truy cập đến
các thành phần phía server. Các thành phần này có thể được viết trên bất kỳ ngôn ngữ nào hỗ trợ
các thành phần COM của Microsoft. Và đây chính là sức mạnh của ASP: Nó có thể làm được bất
kỳ cái gì mà máy chủ có thể làm được với các thành phần COM. Sau khi được thi hành, ASP sẽ
sản sinh ra một trang Web có khuôn dạng HTML và trả nó về cho Web server.
Một bất lợi lớn đối với ASP là nó chỉ có thể hoạt động trên các họ Web server của Microsoft (bao
gồm PWS trên Win9x hay IIS trên WinNT/2000/XP). Các nhà phát triển đang hướng đến những
môi trường khác như Unix/Linux (hiện đã có bản Chili! ASP chạy trên các môi trường này), nhưng
kết quả thì còn phải đợi thêm một thời gian nữa
Trước khi đi vào tìm hiểu lịch sử của PHP, có lẽ chúng ta cũng phải nhắc đến một tên tuổi khác là
Java Server Pages. hay JSP. Giống như ASP, trang JSP cho phép chứa HTML, các đoạn mã Java
và các thành phần Java Bean và chúng sẽ thực hiện các công việc để sản sinh ra một trang Web
để gửi về Client. Bất lợi chính của loại này là phải đi kèm với "máy ảo Java", vốn không được coi
là nhanh về mặt tốc độ.
Code:
<HTML>
<BODY>
<?php