Tải bản đầy đủ (.docx) (76 trang)

Đồ án tốt nghiệp xây dựng website tuyển dụng việc làm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.19 MB, 76 trang )

MỤC LỤC
LỜI NÓI ĐẦU
Sự phát triển của công nghệ thông tin đã đem lại những bước tiến nhảy vọt
trong nhiều ngành kinh tế cũng như mọi mặt của đời sống xã hội. Ở nước ta,
2
công nghệ thông tin đang có những bước phát triển đáng kể từng bước khẳng
định vị trí của mình là một ngành kinh tế công nghệ mũi nhọn. Cùng với việc
ứng dụng rộng rãi của công nghệ thông tin trong các ngành kinh tế, xã hội thì nó
cũng đang trở thành một công cụ đắc lực hỗ trợ cho công tác quản lý của các
đơn vị trong mọi cấp, mọi ngành.
Hệ thống thông tin, cũng như các hệ thống khác, có một chu trình sống, từ khi
được hình thành, trải qua giai đoạn khai thác và sử dụng, cho đến khi được thay
thế bằng một hệ thống thông tin khác, mạnh hơn và đầy đủ hơn. Quá trình xây
dựng là một trong các giai đoạn của vòng đời hệ thống thông tin. Quá trình này
gồm nhiều bước: nghiên cứu hiện trạng, phân tích thiết kế, cài đặt và thử
nghiệm.
Đối với website thông tin tuyển dụng giới thiệu việc làm, nhắm giúp phần nào
cho người có nhu cầu tiết kiệm được thời gian và công sức mà có thể tìm kiếm
được mong muốn tuyển dụng cũng như công việc.
CHƯƠNG I : CƠ SỞ LÝ THUYẾT
I. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MY SQL
MySQL :
3
MySQL là hệ quản trị cơ sở dữ liệumã nguồn mở phổ biến nhất thế giới và
được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.
MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. Nó
có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ
điều hành dòng Windows, Linux, Mac OS X,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu
quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó


làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
Tại sao lại sử dụng MySQL:
MySQL từ lâu đã là hệ CSDL được dùng phổ biến nhất với PHP vì tính gọn
nhẹ, nhanh, miễn phí và được PHP hỗ trợ sẵn. Ổn định, bảo mật, truy xuất cơ sở
dữ liệu nhanh, dễ cài đặt, dễ sử dụng, phù hợp với những phần mềm cơ sở dữ
liệu nhỏ, các website thông thường. Hiện nay trong số các Website có lưu lượng
truy cập lớn thuộc hàng nhất trên Internet, có rất nhiều Website sử dụng liên
minh LAMP này. "Liên minh" mã mở LAMP đang được coi là một đối trọng với
các sản phẩm mã đóng của Microsoft (Windows, IIS, SQL Server,
ASP/ASP.NET).
Một số đặc điểm của MySQL
MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương
đương với SQL Server của Microsoft). MySQL quản lý dữ liệu thông qua các
CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu. MySQL có cơ chế
phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc
nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật
khẩu tương ứng để truy xuất đến CSDL. Khi ta truy vấn tới CSDL MySQL, ta
phải cung cấp tên truy cập và mật khẩu của tài khỏan có quyền sử dụng CSDL
đó.
- Kết nối vào cơ sở dữ liệu
PHP cung cấp hàm mysql_connect để kết nối vèo MySQL server. Cú pháp của
hàm này như sau: mysql_connect($server_address, $username, $password).
4
$server_address là địa chỉ của MySQL server, có thể là domain name hoặc IP
address, các ví dụ trong bài viết này sẽ dùng giá trị "localhost" cho
$server_address.
$username là tên account dùng để login vào MySQL server, các ví dụ trong
bài viết sẽ sử dụng giá trị "root" cho $username.
$password là mật mã để kết nối vào MySQL server, các ví dụ trong bài viết sẽ
sử dụng "aaa" làm mật mã. Hàm mysql_connect sẽ trả về 1 kết nối đến MySQL

server nếu như quá trình kết nối thành công, hoặc trả về giá trị FALSE nếu như
kết nối không được. Để đóng kết nối tới MySQL server, PHP cung cấp hàm
mysql_close.
<?php
$SERVER = "localhost";
$USERNAME = "root";
$PASSWORD = "aaa";
$conn = mysql_connect($SERVER, $USERNAME, $PASSWORD);
if ( !$conn ) {
//Không kết nối được, thoát ra và báo lỗi
die("không nết nối được vào MySQL server");
} //end if
//đóng kết nối
mysql_close($conn);?>
Chọn cơ sở dữ liệu để làm việc.
Sau khi connet vào MySQL server, thao tác tiếp theo là chọn CSDL để làm
việc. PHP cung cấp cho ta hàm mysql_select_db để làm việc này. Cú pháp của
hàm này như sau:
mysql_select_db($db_name[, $conn])
5
Với $db_name là tên CSDL cần chọn, $conn là kết nối được thực hiện qua
lệnh mysql_connect.
- Thực thi một câu lệnh select và lấy kết quả trả về
PHP cung cấp cho ta 3 hàm hữu dụng để thực hiện công việc này:
$result = mysql_query($sql, $conn): thực hiện câu lệnh SQL được cung cấp
qua tham số $sql và trả về 1 kết quả kiểu $result (hàm này trả về FALSE nếu
như câu lệnh thực hiện không thành công).
mysql_num_rows($result): hàm này trả về số lượng row lấy được qua câu
lệnh SELECT (được thực thi bởi hàm mysql_query) trước đó.
$row = mysql_fetch_row($result), $row = mysql_fetch_assoc($result): trả về

dòng kết quả hiện thời của câu lệnh select và chuyển con trỏ tới dòng tiếp theo
(như vậy lệnh gọi mysql_fetch_row hoặc mysql_fetch_assoc tiếp đó sẽ trả về
dòng tiếp theo); hoặc giá trị FALSE nếu như không còn dòng nào để trả về nữa.
Kết quả trả về từ hai hàm này là một mảng.
mysql_error($conn): trả về thông báo lỗi của MySQL server nếu như một lệnh
trước đó có lỗi. Để hiểu rõ hơn công dụng của các hàm trên, đồng thời phân biệt
sự khác nhau giữa 2 hàm mysql_fetch_row và mysql_fetch_assoc, ta cung xem
xét các ví dụ sau. Các ví dụ của ta sẽ sử dụng table có tên là mk_managers với
các trường và dữ liệu như sau: useranem, password.
Hàm mysql_fetch_row() sẽ trả về 1 array mà phần tử thứ [0] sẽ tương ứng với
cột đầu tiên của table, phần tử thứ [1] sẽ tương ứng với cột thứ hai của
table Chương trình trên sẽ in ra ra 4 dòng:
Username = abc
Password = 123
Username = def
Password = 456
Ví dụ :
6
<?php
$SERVER = "localhost";
$USERNAME = "root";
$PASSWORD = "aaa";
$DBNAME = "mmk_marklearn";
$conn = mysql_connect($SERVER, $USERNAME, $PASSWORD);
if ( !$conn ) {
//Không kết nối được, thoát ra và báo lỗi
die("không nết nối được vào MySQL server: ".mysql_error($conn));
} //end if
//chọn CSDL để làm việc
mysql_select_db($DBNAME, $conn)

or die("Không thể chọn được CSDL: ".mysql_error($conn));
$sql = "SELECT * FROM `mk_managers`";
$result = mysql_query($sql, $conn);
if ( !$result )
die("Không thể thực hiện được câu lệnh SQL: ".mysql_error($conn));
echo "Số lượng row tìm được: ".mysql_num_rows($result)."<br>\n";
while ( $row = mysql_fetch_assoc($result) ) {
echo "Username = ".$row['username']."<br>\n";
echo "Password = ".$row['password']."<br>\n";
} //end while
//nên luôn giải phóng bộ nhớ sau khi lấy hết các row trả về từ câu lệnh
SELECT
mysql_free_result($result);
7
//đóng kết nối
mysql_close($conn);
?>
Hàm mysql_fetch_assoc() sẽ trả về 1 array mà các phần tử sẽ được truy cập
qua tên, với tên được lấy từ tên các cột của table. Chương trình ví dụ 2 cũng sẽ
in ra ra 4 dòng:
Username = abc
Password = 123
Username = def
Password = 456
- Thực thi câu lệnh update, insert hoặc delete
Hàm mysql_query cũng được dùng để thực thi các câu lệnh DELETE,
INSERT hoặc UPDATE, nhưng lúc này hàm sẽ trả về TRUE nếu câu lệnh thực
hiện thành công và FALSE trong trường hợp ngược lại. Để lấy số lượng các row
được chèn với lệnh INSERT hoặc bị thay đổi bởi lệnh UPDATE, PHP cung cấp
cho ta hàm mysql_affected_rows. Ta hãy xem ví dụ sau:

<?php
$SERVER = "localhost";
$USERNAME = "root";
$PASSWORD = "aaa";
$DBNAME = "mmk_marklearn";
$conn = mysql_connect($SERVER, $USERNAME, $PASSWORD);
if ( !$conn ) {
//Không kết nối được, thoát ra và báo lỗi
die("không nết nối được vào MySQL server: ".mysql_error($conn));
8
} //end if
//chọn CSDL để làm việc
mysql_select_db($DBNAME, $conn)
or die("Không thể chọn được CSDL: ".mysql_error($conn));
$sql = "INSERT INTO `mk_managers` (username, password) VALUES ('xyz',
'000')";
$result = mysql_query($sql, $conn); //chèn thêm 1 dòng vào table
if ( !$result )
die("Không thể thực hiện được câu lệnh SQL: ".mysql_error($conn));
echo "Số lượng row được chèn: ".mysql_affected_rows($conn)."<br>\n";
//ta chỉ chèn 1 dòng nên hàm mysql_affected_rows sẽ trả về 1
$sql = "UPDATE `mk_managers` SET password='111' WHERE
username='xyz'";
$result = mysql_query($sql, $conn); //đổi password của accoutn xyz
if ( !$result )
die("Không thể thực hiện được câu lệnh SQL: ".mysql_error($conn));
echo "Số lượng row được thay đổi: ".mysql_affected_rows($conn)."<br>\n";
//ta thay đổi 1 dòng nên hàm mysql_affected_rows sẽ trả về 1
$sql = "DELETE FROM `mk_managers`";
$result = mysql_query($sql, $conn); //xoá hết tất cả các account

if ( !$result )
die("Không thể thực hiện được câu lệnh SQL: ".mysql_error($conn));
echo "Số lượng row được xoá: ".mysql_affected_rows($conn)."<br>\n";
//ta xoá tất cả 3 dòng nên hàm mysql_affected_rows sẽ trả về 3
9
//đóng kết nối
mysql_close($conn);?>
II. NGÔN NGỮ LẬP TRÌNH PHP
 PHP ( Hypertext Preprocessor ) là một ngôn ngữ lập trình để phát triển các ứng
dụng viết cho máy chủ, mã nguồn mở hay dùng cho mục đích tổng quát.
Như chúng ta đã biết, có rất nhiều trang web được xây dựng bởi ngôn ngữ
HTML. Đây chỉ là nhưng trang web tĩnh, nghĩa là chúng chỉ chứa đựng một nội
dung cụ thể với những dòng văn bản đơin thuần, hình ảnh, và có thể được sự hỗ
trợ bởi ngôn ngữ JavaScript hoặc Java Apple. Nhưng trang web như vậy người
ta thường gọi là client – side. Tuy nhiên, Internet và Intranets đã được sử dụng
cho các ứng dụng cần tới cơ sở dữ liệu. Các trang ứng dụng như vậy được gọi là
trang web động, bởi vì nội dung của chúng luôn được thay đổi tùy thuộc vào dữ
liệu và người sử dụng. PHP là ngôn ngữ làm được những điều như vậy. Bằng
cách chạy chương trình PHP trên máy chủ Web sever, có thể tạo ra những ứng
dụng có sự tương tác với cơ sở dữ liệu để tạo ra những trang web và đây được
gọi là trang web động.
Cách hoạt động của PHP : một trang PHP được yêu cầu, web sever phân tích
và thi hành các đoạn mã PHP để tạo ra trang HTML qua bốn bước:
- Đọc yêu cầu từ phía browser.
- Tìm trang web trên sever.
- Thực hiện các đoạn mã PHP trên trang web đó để sửa đổi nội dung của trang
web.
- Gửi trở lại nội dung cho brower.
- Các kiến thức cơ bản về PHP
+ Sử dụng PHP:

Có 4 cách:
- <? echo ("this is the simplest, an SGML processing
instructionn"); ?>
- <?php echo("if you want to serve XML documents, do like
thisn"); ?>
- <script language="php">
echo ("some editors (like FrontPage) don't like processing instructions")
10
</script>
- <% echo ("You may optionally use ASP-style tags"); %>
<%= $variable; # This is a shortcut for "<%echo " %>
Chú ý: Cách 1 chỉ có thể sử dụng nếu những tag ngắn được cho phép sử dụng.
Có thể sửa short_open_tag trong cấu hình của php hoặc biên dịch file php với
lựa chọn cho phép dùng các tag ngắn. Tương tự như vậy, cách thứ 4 chỉ có tác
dụng nếu asp_tag được đặt trong file cáu hình của PHP. PHP cho phép hỗ trợ các
kiểu chú thích của cả C, C++ và Unix shell.
VD:
<?php
echo "This is a test"; // comment 1 dòng
/* comment nhiều dòng */
echo "Another Test"; # comment 1 dòng?>
+ Các kiểu dữ liệu:
• Số nguyên :
VD: $a = 34;
# decimal number $a = -123;
# a negative number $a = 0123;
• Số thực:
VD :$a = 1.234; $a = 1.2e3;
• Xâu:
Có 2 cách để xác định 1 xâu: Đặt giữa 2 dấu ngoặc kép (") hoặc giữa 2 dấu

ngoặc đơn ('). Chú ý: Các biến giá trị sẽ không được khai triển trong xâu giữa 2
dấu ngoặc đơn.
• Mảng:
11
Mảng là một dạng của biến trong đó có chứa nhiều giá trị. Ví dụ một dạng
đơn giản của mảng:
$thang = array("Gieng", "Hai", "Ba", "Bon", "Nam", "Sau", "Bay", "Tam",
"Chin", "Muoi", "Muoi Mot", "Muoi Hai");
Để truy xuất được tất cả các phần tử trong mảng, bạn có thể tính ra chiều dài
của mảng và thực hiện vòng lặp:
for ($i=0; $i<count($months); $i++)
{ echo $thang[$i] . "<br>\n" ; }
Mảng liên hợp:
Cũng giống như các ngôn ngữ khác, PHP tận dụng khả năng của mảng liên
hợp (associative array). Có thể bạn cảm thấy mới mẻ với khái niệm này. Mỗi
phần tử trong mảng liên hợp mang khoá riêng. Các phần tử của mảng sẽ được
truy cập thông qua khoá. Điều này giống như cách thức truy xuất trong các
query khi làm việc với Database. Trong ví dụ sau, bạn sẽ thấy các phần tử
first_name, last_name, e-mail sử dụng các key:
$person = array (
"first_name" => "Jay",
"last_name" => "Greenspan",
"e-mail" => ""
);
- Tất cả các mảng trong PHP đều là mảng liên hợp.
PHP cũng sẽ tự động gán cho chúng các key. Ví dụ: $x= array ("pug",
"poodle"), PHP sẽ tự gán cho $x các khoá là các con số nguyên theo thứ tự bắt
đầu từ số 0.
Mảng đa chiều:
12

Mảng đa chiều thường sử dụng nhất đó là mảng hai chiều. Chúng chứa thông
tin dựa trên hai khoá. Chúng ta sẽ xác lập một mảng $people. Trong mảng
$people lại chứa mảng cho từng cá nhân:
$people = array (
"khai" => array ("ho_lot" => "tongphuoc", "tuoi" => 30),
"minh" => array ("ho_lot" => "leanh" , "tuoi" => 52) );
Có thể truy cập tất cả các phần tử trong mảng hai chiều bằng cách sử dụng
vòng lặp trên cả hai chiều của mảng:
while(list($person, $person_array) = each($people))
{
echo "<b>Ban biet gi ve $person</b><br>\n";
while(list($person_attribute, $value) = each($person_array))
{
echo "$person_attribute = $value<br>\n";
}}
• Cookies
Cookie là những file nhỏ chứa một số các thông tin truy cập Web. Các cookie
do Websever phát sinh, lưu giữ lại, sau đó sẽ được đọc ở những lần truy cập về
sau. Cookie đơn thuần chỉ là thông tin ghi nhận lại những động tác truy cập web
của khách. Khi tồn tại trên đĩa cứng, cookie trở thành các thỉnh cầu của giao
thức HTTP, được gởi đến Webserver. Để có thể phát sinh một cookie cần phải sử
dụng hàm setcookie() như sau:
setcookie(name, value, time_to_expire, path, domain, security, setting);
setcookie("my_cookie", "my_id",time()
+(60*60*24*30),"/",".mydomain.com", 0)
Lệnh trên sẽ phát sinh một cookie với các chức năng sau:
13
− Chứa một biến tên là my_cookie
− Giá trị của mycookie my_id
Cookie tồn tại trong vòng 30 ngày kể từ ngày nó phát sinh (time()

+(30*24*60*60) ngày giờ hiện tại + 30 ngày được quy ra giây).
Cookie có tác dụng đến tất cả các trang trong domain. Bạn có thể hạn chế lại
bằng các chỉ ra đường dẫn đến một số trang nào đó trong domain.
Nó sẽ hiện diện trong tất cả các website có địa chỉ
Không có xác lập đặc biệt nào về bảo mật.
Một khi cookie được xác lập, các biến phát sinh từ cookie có tác dụng giống
như biến phát sinh từ form mà chúng ta đã bàn trước đây. Chúng sẽ hiện diện
với chức năng là biến global. Sau khi script PHP xác lập cookie, các script khác
trong domain có thể truy cập cookie một cách tự động. Cẩn thận hơn để
$mycookie không xung đột với một biến nào khác cũng có tên $mycookie, bạn
có thể truy xuất nó thông qua mảng HTTP_COOKIE_VARS và sử dụng lệnh:
HTTP_COOKIE_VARS["mycookie"]. Bạn có thể xác lập cookie cung cấp khả
năng truy xuất như là một mảng:
setcookie("mycookie[first]","dddd",time()+2592000,"/","192.168.1.1", 0);
setcookie("mycookie[second]","my_second_id",time()
+2592000,"/","192.168.1.1", 0);
Cả hai biến trên đều có thể truy cập đến như là một mảng liên hợp.
• Sessions
Sessions đơn giản nó chỉ là một cách thức để duy trì và truyền biến trong khi
chuyển tiếp giữa các trang web. Chương trình khai báo một session được bắt đầu
với hàm start_session(). PHP đăng ký một SesssionID duy nhất, và thường thì
ID này được gởi đến user thông qua một cookie. PHP sau đó tạo một tập tin trên
server để theo dõi sự thay đổi của biến. Tập tin này có tên giống như tên của
SessionID. Một khi session được tạo, bạn có thể đăng ký bất kỳ số lượng biến.
Các giá trị của những biến này được lưu giữ trong tập tin trên server. Cũng như
sự tồn tại của cookie, các biến trong session sẽ hiện diện trên bất kỳ trang nào
được truy cập đến trong phạm vi một domain. Việc xác lập này rất thuận tiện
14
hơn là chuyển tiếp các biến từ trang này sang trang khác thông qua các phần tử
ẩn trong form hay cookie.

Ví dụ: <? session_start();
session_register("my_var");
$my_var = "hello world";?>
Sau khi chạy chương trình này, chọn refresh trên trình duyệt. Bạn sẽ thấy
script sẽ nhớ được rằng bạn là ai. Các hàm setcookie() và session_start() nên ở
vị trí gần đầu tập tin. Nếu bạn thử chuyển đến trình duyệt trước để xác lập một
cookie bạn sẽ nhận được một thông báo lỗi.
• Biến
Gán từ trình duyệt (web browser)
Thông thường các thông tin này được nhập vào thông qua một form HTML.
Nhưng cũng có thể chúng xuất phát từ các nguồn khác như: HTML, cookie,
session.
Biến từ Form của HTML
<form action=mypage.php action=post>
<input type=”text” name=”email”>
<input type=”text” name=”first_name”>
<input type=”submit” name=”submit” value=”OK”>
<input type=” reset” name=”reset” value=”Cancel”>
</form>
Sau khi submit dữ liệu lên sever thì các giá trị lấy lên từ form là first_name,
email được gọi là biến từ form. Các biến cũng có thể được truy xuất thông qua
mảng $HTTP_POST_VARS hoặc $HTTP_GET_VARS, dựa vào method sử
dụng trong form. Có thể truy cập bất kỳ phần tử riêng biệt nào như đã làm trong
mảng liên hợp
15
($HTTP_POST_VARS["e-mail"]). Hoặc có thể tạo vòng lặp duyệt qua tất cả
các phần tử của mảng:
while (list($key, $value) = each($HTTP_POST_VARS))
{ echo "variable = $key value = $value <br>"; }
• Biến sẵn có

Biến sẵn có của PHP
PHP_SELF
Biến này nhận giá trị là địa chỉ hiện tại của tập tin .php đang được duyệt. Địa
chỉ này sẽ là địa chỉ đầy đủ từ gốc (bắt đầu từ http://) . Bạn sẽ sử dụng nó khi
muốn truy cập lại chính trang web đang thi thành.
HTTP_POST_VARS: viết tắt là $_POST
Đâ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.
HTTP_GET_VARS: viết tắt là $_GET
Đâ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.
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.
Biến của Apache.
Apache có sẵn rất nhiều biến. Sau đây là một số biến mà có lẽ thường sẽ sử
dụng thường xuyên trong chương trình.
DOCUMENT_ROOT
Biến này trả về đường dẫn của Webserver.
HTTP_USER_AGENT
16
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.
REMOTE_ADDR
Dùng để lấy địa chỉ IP của user.
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.
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
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.
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(). 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.
Tương tự có một loạt hàm kiểm tra kiểu của biến sau đây:
17
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 ta 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. Lưu ý trị của hàn
gettype() trả về luôn là một chuỗi: "string", "integer", "double" v.v.

Đổ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.
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), "<br>\n";
echo gettype($b), "<br>\n";
18
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")
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 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
<?
$tacgia = array ("ho"=>"Tong", "ten"=>"Khai");
while (list($field,$value) = each($tacgia))
{
$field = "bien_$field";
$$field = $value;
} echo $bien_ho, " ", $bien_ten;
?>
• Hằng số

PHP định nghĩa sẵn một vài hằng số:
_FILE_ : tên của script file đang được thực hiện.
_LINE_ : số dòng của mã script đang được thực hiện trong script file hiện tại.
_PHP_VERSION_ : version của PHP
19
TRUE, FALSE
E_ERROR : báo hiệu có lỗi.
E_PARSE : báo lỗi sai khi biên dịch.
E_NOTICE : Một vài sự kiện có thể là lỗi hoặc không.
E_ALL : Có thể định nghĩa một hằng số bằng hàm define()
VD:
<?php define("CONSTANT", "Hello world."); echo CONSTANT; // outputs
"Hello world." ?>
• Biểu thức
Biểu thức là một phần quan trọng trong PHP. Phần lớn mọi thứ viết đều được
coi như một biểu thức. PHP hỗ trợ ba kiểu giá trị cơ bản nhất: số nguyên, số
thực, và xâu. Ngoài ra còn có mảng và đối tượng.
VD
$b = $a = 5; /* thiết lập giá trị =5 cho biến $a và $b */
$c = $a++; /* $c = $a+1; */
$e = $d = ++$b…
• Cấu trúc lệnh:
If else else if:
if (điều kiện) { do something; }
else if ( điều kiện ) { do something;} else { do something;}
Vòng lặp.
while ( DK) { }
do { }
20
white ( DK );

for (bieuthuc1; bieuthuc2; bieu thuc3) { }
Với phiên bản PHP >4:
foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement
Break và continue
break : thoát ra khỏi vòng lặp hiện thời
continue : bỏ qua vòng lặp hiện tại, tiếp tục vòng tiếp theo.
Switch
switch (tên biến) {
case trường hợp 1: break;
case trường hợp 2: break;
case trường hợp 3: break;
default :
}
• Hàm:
Tham trị :
VD:
function takes_array($input)
{ echo "$input[0] + $input[1] = ", $input[0]+$input[1];}
Tham biến:
function add_some_extra(&$string)
21
{ $string .= 'and something extra.'; }
Tham số có giá trị mặc định.:
function makecoffee ($type = "cappucino")
{return "Making a cup of $type.n"; }
Chú ý : khi sử dụng hàm có đối số có giá trị mặc định, các biến này sẽ phải
nằm về phía phải nhất trong danh sách đối số.
Giá trị trả lại của hàm:
Có thể là bất kỳ giá trị nào. Tuy vây, không thể trả lại nhiều giá trị riêng lẻ

nhưng có thể trả lại một mảng các giá trị.
VD: function small_numbers()
{ return array (0, 1, 2); }
Để trả lại một tham trỏ, cần có dấu & ở cả khai báo của hàm cũng như ở giá
trị trả lại.
VD : function &returns_reference()
{ return &$someref; }
$newref = &returns_reference();
Hàm biến:
PHP cho phép sử dụng hàm giá trị. Nghĩa là khi một biến được gói có kèm
theo dấu ngoặc đơn, PHP sẽ tìm hàm có cùng tên với giá trị biến đó và thực
hiện.
• Các toán tử:
PHP có các toán tử cho các phép số học : + - * / %
Các toán tử logic : and or xor ! && ||
Toán tử thao tác với bit : & | ^ ~ <<>>
Toán tử so sánh : ==, != ,< ,> ,<=, >=, ====
22
Toán tử điều khiển lỗi : @ - khi đứng trước một biểu thức thì các lỗi của biểu
thức sẽ bị bỏ qua và lưu trong $php_errormsg
• Lớp và đối tượng:
Class: là tập hợp các biến và hàm làm việc với các biến này. Một lớp có định
dạng như sau:
Lớp có thể được mở rộng bằng những lớp khác. Lớp mới thu được có tất cả
những biến và hàm của cá lớp thành phần. Thực hiện việc thừa kế này bằng từ
khoá "extends". Chú ý : kế thừa nhiều lớp một lúc không được chấp nhận.
VD: <?php
class ManagersController extends AppController {
var $name = 'Managers';
var $helpers = array('Html', 'Form' , 'Ajax');

function check_block(){
$managers=$this->Manager->findAll('Manager.block=2');
$today=date('y-m-d h:m:s'); //echo date('d/m/Y',strtotime($day));
foreach ($managers as $manager):
if((date('d')-date('d',strtotime($manager['Manager']
['dateblock'])))>=1)
{
$this->data['Manager']['block']=1;
$this->data['Manager']['id']= $manager['Manager']['id'] ;
$this->Manager->save($this->data);
}
endforeach;
return true;
23
}
}
?>
• Tham chiếu:
Tham chiếu trong PHP có nghĩa là lấy cùng 1 giá trị bằng nhiều tên biến khác
nhau. Chú ý : trong PHP, tên biến và nôi dung của biến là khác nhau. Vì vậy,
cùng 1 nội dung có thể có nhiều tên khác nhau. Tham chiếu PHP cho phép tạo
hai biến có cùng nội dung.
• Các cấu trúc điều khiển:
Cấu trúc nổi bật của PHP là foreach: endforeach;
foreach (array_expression as $value) statements;
foreach (array_expression as $key => $value) statements;
Giả sử ta có bảng cơ sở dữ liệu: `mk_managers` có các trường `id`,
`name`, `username`, `block`, `name`, `group`, `count` được nằm trong cơ sở dữ
liệu có tên là `mmk_ marklearn `.
Như đã giới thiệu ở trên (phần mysql) ta kết nối cơ sở dữ liệu ở file

connect.inc
<?php
$SEVER="localhost";
$USERNAME="root";
$PASSWORD="aaa" ;
$DATABASE="mmk_marklearn";
$conn=mysql_connect($SEVER,$USERNAME,$PASSWORD);
if(!$conn) {
echo("không kết nối được với CSDL") ;
24
}
?>
Ta dùng hàm require ('connect.inc'); để đưa file connect.inc vào.
$ketnoi=mysql_select_db($DATABASE,$conn);
if(!$ketnoi) {
die("khong chon duoc CSDL". mysql_error());
}
/* Performing SQL query */
$sql="SELECT `id`, `username`, `block`, `name`,`group`,`count` FROM
`mk_managers` order by `mk_managers`.`username` ASC";
$result=mysql_query($sql,$conn);
if(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_assoc($result))
{ ?>
<tr><td><?php echo $i;?></td>
<td>
<input type="hidden" name="<? echo $row['id']?>" value="<?echo
$row['id']; ?> " >
<input type="checkbox" name="ckb[<? echo $row['id']?>]" id=" <? echo

$i?>">
</td>
<td><a href="#" onClick="new Ajax.Updater">
<?php echo $row['username']; ?></a>
</td>
25
<td><?php echo $row['name']; ?></td>
<td style="text-align:center;">
<?php
/* Deactivate */
if ($row['block']=='1') { ?>
<a href="#" onClick="new Ajax.Updater"><img
src="image/publish_g.png" alt ="UnBlock" border="0" width="15"></a>
<?php } else { if($row['block']=='0') {?>
<a href="#" onClick="new Ajax.Updater"><img
src="image/publish_r.png" alt ="Block" border="0" width="15"></a>
<?php }else {?>
<img src="image/publish_r.png" alt ="UnBlock" border="0" width="15">
<?php }
} ?>
</td>
<td style="text-align:center;">
<?php echo $row['count']; ?>
<a href="#" onClick="new Ajax.Updater "><img src="image/reset.jpg" alt
="reset" border="0" width="15"></a>
</td>
<td style="text-align:center;">
<a href="#"onClick="new Ajax.Updater"><img src="image/edit.png" alt
="reset" border="0" width="15"></a>
<?php $i++;

}
mysql_free_result($result) ;

×