Lập trình Web động với PHP MySQL

Chúng ta hãy thực hiện một chuyến đi thần thoại, trong chuyến đi này chúng ta sẽ

khám phá ngoại hình cũng như nội tại của MySQL và PHP một cách thật tỉ mỉ. Đây là

một cuộc hành trình đầy những thú vị và bất ngờ.

Okie, có lẽ tôi có vẻ hơi lạc quan phải không các bạn. Nếu như bạn đồng quan điểm

với tôi trên một phương diện nào đó, trong cuộc hành trình này bạn sẽ có ngay sự giúp

đỡ mỗi khi gặp phải những sự nhàm chán. Hãyđối mặt sự thật ngay nhé: Trò chơi lập

trình ứng dụng không phải lúc nào cũng dễ nuốt đâu. Trong bất kỳ cuộc thám hiểm

nào thì chắc chắn các bạn sẽ phải có những giây phút nản lòng, đó là lúc gặp phải sự

cố lỗi cú pháp hoặc đôi khi là những đoạn mã không cho kết quả như mong muốn.

Nhưng ngoài những việc đó ra, tôi nghĩ là có một lý do thật chính đáng đến các bạn

đến với chúng tôi ở đây. Lập trình Web đang là một cuộc chơi đầy hứa hẹn hiện nay

cũng như tương lai. Bất kể bạncó kiến thức cơ sở lập trình cho bất kỳ loại ngôn ngữ

nào như Visual Basic, Cobol,hay bạn chỉ biết về HTML và JavaScript, thì hôm nay

bạn vẫn có cơ hội để nắm bắt các kinh nghiệm mới mẻ về lập trình ứng dụng Web.

Tôi nghĩ là không có sự kết hợp nào tốt hơn giữa PHP và MySQL.

pdf133 trang | Chuyên mục: PHP | Chia sẻ: dkS00TYs | Lượt xem: 2301 | Lượt tải: 1download
Tóm tắt nội dung Lập trình Web động với PHP MySQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 đã có dịp xét qua. Nếu 
khách thực hiện thao tác khác với submit thì chính form này sẽ được thi hành lại: 
<? 
if(isset($submit)) 
{ 
//Xuat ra thong bao tai day 
echo "Cam on ban da submit"; 
} else { 
?> 
> 
 first name 
 last name 
<? 
} 
?> 
HTTP_POST_VARS 
Đây là một mảng chứa tất cả các biến được chuyển tiếp thông qua POST method từ một form. 
Bạn có thể truy cập từng biến riêng rẽ như là một phần tử của mảng liên hợp (ví dụ: 
$PHP_POST_VARS["myname"]). 
HTTP_GET_VARS 
Đây là một mảng chứa tất cả các biến được chuyển tiếp thông qua GET method. Bạn có thể 
truy cập từng biến riêng rẽ như là một phần tử của mảng liên hợp (ví dụ: 
$PHP_GET_VARS["myname"]). 
HTTP_COOKIE_VARS 
Tất cả các cookie chuyển đến trình duyệt đều có thể được truy xuất trong mảng liên hợp này. 
Nó bao gồm cả session cookie. Nếu bạn còn thắc mắc cookie sẽ thi hành như thế nào thì hãy 
xem hàm phpinfo() để biết được trình duyệt của bạn đang chuyển đến server những gì. 
BIẾN CỦA APACHE 
Apache có sẵn rất nhiều biến. Tôi không trình bày đầy đủ tất cả các biến ra đây. Các biến 
bạn sử dụng, chúng tuỳ thuộc vào xác lập hiện tại của bạn như thế nào. Sau đây là một số 
biến mà có lẽ bạn sẽ sử dụng thường xuyên trong chương trình của bạn. 
DOCUMENT_ROOT 
Biến này trả về đường dẫn của Webserver. Biến này được tôi sử dụng trong xuyên suốt quyển 
sách này. Hãy xét ví dụ sau: 
include"$DOCUMENT_ROOT/book/functions/charset.php"; 
Bằng cách sử dụng biến DOCUMENT_ROOT thay vì dùng đường dẫn tuyệt đối, chúng ta có 
thể di chuyển toàn bộ một thư mục sang một Apache Server khác mà không lo lắng rằng 
đường dẫn sẽ bị sai lệch trong include path. Nên nhớ rằng nếu như bạn không sử dụng Apache 
Server thì biến này không sử dụng được. Nếu bạn sử dụng include_path trong tập tin php.ini, 
bạn không cần phải lo lắng phải xác định đường dẫn như thế nào bởi vì PHP sẽ duyệt hết tất 
cả các thư mục và tìm ra tập tin bạn đã chỉ định. 
HTTP_USER_AGENT 
Bất kỳ ai đã từng thiết kết Web site đều hiểu rằng tầm quan trọng của việc nhận dạng được 
trình duyệt của người sử dụng là gì. Một số trình duyệt thì không sử dụng được JavaScript, 
một số khác thì đòi hỏi dạng HTML đơn giản. Biến user_agent cung cấp cho bạn khả năng 
uyển chuyển đối với từng trình duyệt khác nhau. Một user_agent chuẩn có dạng như thế này: 
Mozilla/4.0 (compatible; MSIE 5.01; Windows 98) 
Nếu bạn phân tích chuỗi này ra bạn sẽ biết được những gì bạn cần tìm. Có thể bạn chỉ thích 
hàm get_browser() của PHP. Về lý thuyết mà nói, hàm này định nghĩa khả năng cho phép của 
trình duyệt của user đang sử dụng. Cho nên bạn có thể biết được là chương trình của bạn đang 
phục vụ tốt hay không. Các sách PHP có những hướng dẫn về cách cài đặt và sử dụng 
get_browser(), nhưng tôi khuyên bạn không nên sử dụng nó. Bởi vì sử dụng get_browse bạn 
sẽ được bảo rằng IE 5 dùng cho PC và Netscape 4.01 dùng cho Mac có hỗ trợ CSS (cascading 
stylesheets) và JavaScript. Nhưng bất kỳ người sử dụng nào cũng biết rằng: viết lệnh DHTML 
để chạy trên cả hai môi trường trình duyệt này là một công việc phức tạp. Thông tin bạn nhận 
được từ get_browser() có thể dẫn đến những tính năng giả trong bảo mật. Cách tốt nhất là bạn 
sử dụng HTTP_USER_AGENT và thực hiện quyết định của mình dựa trên trình duyệt hoặc 
platform xác định nào đó. 
REMOTE_ADDR 
Dùng để lấy địa chỉ IP của user. Tuy nhiên có những user am hiểu chuyện này và có thể họ 
thay đổi IP của máy mình. Cho nên không lấy gì để đảm bảo rằng: một địa chỉ IP chắn chắn 
là của một user nào đó. Bạn sử dụng biến này để theo dõi sự truy nhập của một user nhưng 
nó chỉ mang tính tương đối thôi. 
REQUEST_URI 
Biến này cũng giống như biến PHP_SELF. Ngoài ra nó còn chứa thêm tham số trong địa chỉ 
truy vấn . Nếu bạn truy cập vào địa chỉ: 
Thì biến REQUEST_URI của bạn có giá trị là: info/products/index.php?id=6 
SCRIPT_FILENAME 
Biến này chứa toàn bộ đường dẫn của tập tin. 
Kiểm tra biến 
Ở trên chúng ta đã nói nhiều về Biến. Như các bạn biết đó, tên của một biến không quan 
trọng bằng giá trị mà nó chứa trong đó. Như tôi đã nói Biến trong PHP rất uyển chuyển. Điều 
này phát sinh sự bất lợi là bạn sẽ không biết ở tại một thời điểm nào đó thì biến này sẽ mang 
giá trị gì. Do đó bạn cần phải thực hiện thao tác kiểm tra biến. 
isset( ) 
Hàm này thực hiện việc kiểm tra biến có chứa giá trị hay không. Nó sẽ trả về giá trị TRUE 
hoặc FALSE. Nếu biến chưa được xác lập thì trị isset() sẽ là false. 
Bạn hãy xem xét ví dụ sau, nó thi hành một query MySQL. Bạn đã biết rằng một field trong 
database có thể chứa trị null hoặc chuỗi rỗng. Với việc sử dụng hàm isset() bạn sẽ kiểm tra và 
phân biệt được hai giá trị trên. Trong đoạn lệnh PHP bên dưới. Trong đó biến $query là một 
phát biểu SELECT lấy dữ liệu submit từ form của user. 
$result = mysql_query($query) or 
die (mysql_error()); 
$number_cols = mysql_num_fields($result); 
echo "query: $query\n"; 
//layout table header 
echo "\n"; 
echo "\n"; 
for ($i=0; $i<$number_cols; $i++) 
{ 
echo "", mysql_field_name($result, $i), "\n"; 
} 
echo "\n";//end table header 
//layout table body 
while ($row = mysql_fetch_row($result)) 
{ 
echo "\n"; 
for ($i=0; $i<$number_cols; $i++) 
{ 
echo ""; 
if (!isset($row[$i])) //test for null value 
{echo "NULL";} 
else 
{echo $row[$i];} 
echo "\n"; 
} 
echo "\n"; 
} 
echo ""; 
Lưu ý rằng dấu chấm than (!) có nghĩa là phủ định. 
Tức là nếu $var có giá trị null thì: 
 isset($var) cho ra giá trị False 
!isset($var) cho ra giá trị True 
empty() 
Hàm empty() có vẻ ngược ngạo so với hàm isset(). Nó sẽ cho ra trị True nếu $var có trị null, 
chuỗi rỗng hoặc số 0. Hàm này thường được sử dụng để kiểm tra xem user có nhập trị vào 
trong form hay không: 
if(empty($first_name)) 
{ 
echo "Ban can phai nhap ten cua minh"; 
exit; 
} 
is_int( ) 
Hàm này để kiểm tra biến có phải là số nguyên hay không. Có 2 cú pháp khác cho cùng kết 
quả như nó là: is_integer và is_long(). Bạn sử dụng hàm này khi không chắc rằng biến là một 
trị nguyên hay chuỗi. Ví dụ: 
$a = "222"; 
$b = 22; 
is_int($a) cho ra trị False 
is_int($b) cho ra trị True 
Tương tự bạn sẽ có một loạt hàm kiểm tra kiểu của biến sau đây: 
is_double() 
Kiểm tra số kiểu double (dấu phẩy động). Hàm thay thế: is_float() và is_real(). 
is_string( ) 
Kiểm tra kiểu chuỗi. 
is_array( ) 
Kiểm tra kiểu mảng. 
is_bool( ) 
Kiểm tra kiểu boolean (TRUE và FALSE) 
is_object( ) 
Kiểm tra biến kiểu object. Bạn sẽ tìm hiểu kiểu object trong các phần sau. 
gettype( ) 
Hàm này sẽ cho bạn biết kiểu của biến như: string, double, integer, array, hoặc boolean. 
Ngoài ra nó có trả về các kiểu như object, class. Bạn sẽ khảo sát kỹ về việc lập trình hướng 
đối tượng trong các phần sau để biết thêm về object và class. 
Lưu ý trị của hàn gettype() trả về luôn là một chuỗi: "string", "integer", "double" v.v. 
Bạn hãy xem ví dụ sau: 
$str = "Day la mot chuoi"; 
$type = gettype($str); 
if ($type == "string") 
{ 
echo "Dung vay"; 
} 
Đổi kiểu của biến 
Bạn sẽ sử dụng 3 cách để đổi kiểu của biến. 
Phương pháp type casting 
Phương pháp này rất đơn giản: Bạn chỉ cần ghi tên kiểu ra, đóng ngoặc đơn lại, rồi đặt trước 
biến. Tức khắc biến sẽ bị đổi theo kiểu mà bạn muốn. 
Cách thức: (kiểu) $biến 
Ví dụ: 
$a = 1; 
$b = (string)$a; //số 1 sẽ biến thành chuỗi 1 
echo gettype($a), "\n"; 
echo gettype($b), "\n"; 
Kết quả cho ra là: 
integer 
string 
Sử dụng hàm settype( ) 
Hàm này có 2 đối số. Thứ nhất là tên biến, thứ nhì là kiểu. Ưu điểm của nó là nó có thể cho 
ra kết quả FALSE nếu như việc hoán đổi không được. 
Cách thức: settype($biến, "kiểu") 
Ví dụ: 
$a = 1; 
settype($a, "string"); 
Sử dụng hàm intval( ), doubleval( ), và stringval( ) 
Phương pháp này thường để bạn áp dụng nhanh trong khi tính toán. Có lẽ nhìn tên hàm bạn 
cũng biết được chức năng của nó rồi. Hãy xét ví dụ sau: 
$a = "43";/ /43 là kiểu chuỗi 
$b = (intval($a) * 2); 
Biến của biến 
Nghe qua có vẻ lạ lạ, nhưng đây là một "độc chiêu" của PHP. Với cách thức này bạn sẽ lấy 
giá trị của một biến để hình thành tên của một biến mới. 
Cách thức: $$biến 
Ví dụ: 
$a = ‘khai’; 
$$a = ‘Chao moi nguoi’; 
Bạn sẽ thấy trong ví dụ trên một biến mới được hình thành đó là $khai chứa giá trị là "Chao 
moi nguoi" 
Xét thêm ví dụ sau, trong đó $tacgia là một mảng liên hợp. 
<? 
$tacgia = array ("ho"=>"Tong", "ten"=>"Khai"); 
while (list($field,$value) = each($tacgia)) 
{ 
$field = "bien_$field"; 
$$field = $value; 
} 
echo $bien_ho, " ", $bien_ten; 
?> 
Khi chạy chương trình, các biến sau sẽ được tạo $bien_ho, $bien_ten và ghi ra màn 
hình: Tong Khai 
Tóm tắt 
Bạn đã tìm hiểu các biến trong PHP. Bạn thấy PHP xử lý các biến linh hoạt hơn nhiều so với 
các ngôn ngữ khác. Còn một vấn đề khá quan trọng đối với biến đó là scope bạn cũng sẽ biết 
kỹ về nó ở trong các phần sau của giáo trình này. 
 (Còn tiếp) 

File đính kèm:

  • pdfLập trình Web động với PHP MySQL (2).pdf
Tài liệu liên quan