Professional Documents
Culture Documents
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 1 of 32
Sách bài tập do tập thể giáo viên AiTi-Aptech thiết kế và được sử dụng như một phần không thể
tách rời khỏi giáo trình đang học của Aptech Ấn Độ với các học viên đang theo học tại Trung tâm.
Tập sách bài tập này là tài liệu lưu hành nội bộ, chỉ dành cho các học viên theo học tại Trung tâm
đào tạo Lập trình viên Quốc tế AiTi-Aptech. Mọi hình thức sao chép lại nội dung của sách là vi phạm
bản quyền và không tuân thủ Luật Sở hữu trí tuệ của Nhà nước Việt Nam.
AiTi-Aptech luôn mong mỏi tạo dựng một môi trường học tập tốt cho các bạn học viên theo học tại
trung tâm. Mọi ý kiến đóng góp về xây dựng Sách bài tập, cải tiến hệ thống xin gửi mail về
contact.aiti@gmail.com hoặc đường dây nóng (04) 6 64 8848. Chúng tôi sẽ ghi nhận và cải
tiến để có thể cung cấp cho các bạn một môi trường học tập ngày một tốt hơn.
“Sự nghiệp tương lai của các bạn là thành công của chúng tôi”
Việt Nam luôn thiếu Lập trình viên đẳng cấp Quốc tế
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 3 of 32
A. Bài tập............................................................................................................................................................27
Chương 9 : Email và OOP........................................................................................................................................29
A.Bài tập.............................................................................................................................................................29
2.Cách sử dụng
Mã php được lồng vào mã HTML
1. <html>
2. <head>
3. <title>Mã mẫu</title>
4. </head>
5. <body>
6. <?php
7. echo "Chào thế giới PHP!";
8. ?>
9. </body>
10. </html>
Thẻ <?php và thẻ ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP qua đó máy chủ biết để
xử lý và dịch mã cho đúng. Đây là một điểm khá tiện lợi của PHP giúp cho việc viết mã PHP trở nên
khá trực quan và dễ dàng trong việc xây dựng phần giao diện ứng dụng HTTP.
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 5 of 32
B. Bài tập
1.Cài đặt PHP và Apache web server bản mới nhất lên máy tính cá nhân
2. lưu file sau vào thư mục web của apache với tên vd1.php và chạy thử bằng trình duyệt:
<html><head><title>Testing page</title></head>
<body><?php echo "Hello, world!"; ?></body>
</html>
C.Tham khảo
1.Phpvietnam group http://groups.google.com/group/phpvietnam
Dữ liệu của người dùng từ trình duyệt sẽ được gửi lên máy chủ dưới dạng từng cặp biến=giá_trị và
có thể đi theo 3 con đường khác nhau. Tuỳ theo từng con đường cụ thể, trên máy chủ ta cũng có
các cách khác nhau để lấy dữ liệu được gửi lên.. 3 con đường đó là: GET, POST và COOKIES.
1. Truyền dữ liệu thông qua phương thức GET
Dữ liệu gửi từ trình duyệt lên qua phương thức GET là phần dữ liệu được nhập trực tiếp theo sau
địa chỉ URL do trình duyệt gửi lên, được phân biệt với tên file script bằng dấu hỏi chấm (?). Ví dụ,
khi ta gõ vào trình duyệt địa chỉ URL sau:
http://www.phpvn.org/topic.php?TOPIC_ID=161
Khi đó, trình duyệt sẽ gửi theo địa chỉ trên một cặp biến = giá trị, trong đó biến có tên là TOPIC_ID
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
http://www.phpvn.org/index.php?method=Reply&TOPIC_ID=161&FORUM_ID=20
Với địa chỉ URL trên, chúng ta sẽ gửi lên 3 cặp biến=giá_trị theo phương thức GET, đó là:
method=Reply, TOPIC_ID=161 và FORUM_ID=20.
Khi trình duyệt gửi các thông tin này lên máy chủ, PHP sẽ tự động sinh ra một mảng có tên là
$HTTP_GET_VARS[] để nắm giữ tất cả các cặp biến và giá trị đó, trong đó, chỉ số của mảng chính
là một chuỗi mang tên của tên biến và giá trị của chỉ số đó chính là giá trị của biến do trình duyệt
gửi lên. Ví dụ, với địa chỉ URL sau:
http://www.phpvn.org/post.php?method=Reply&TOPIC_ID=161&FORUM_ID=20
Thì PHP sẽ tự động sinh ra một mảng $HTTP_GET_VARS có nội dung sau:
$HTTP_GET_VARS["method"] = "Reply" // tương ứng với cặp method=Reply
$HTTP_GET_VARS["TOPIC_ID"] = 161 // tương ứng với cặp TOPIC_ID=161
$HTTP_GET_VARS["FORUM_ID"] = 20 // tương ứng với cặp FORUM_ID=20
Sau đó, trong trang web của mình, các bạn có thể tha hồ sử dụng các biến này. Ví dụ, tôi làm một
đoạn chương trình sau để khi người dùng nhập vào biến user=sinh thì cho hiển thị "Hello, my
Boss", còn nếu biến user khác sinh thì "Hello " + giá trị của biến:
<?
// Hàm isset được sử dụng để kiểm tra xem một biến đã được thiết lập hay chưa
if (isset ($HTTP_GET_VARS["user"]))
{
if ($HTTP_GET_VARS["user"]=="sinh")
{
echo "Hello, my boss. Good morning!";
}
else
{
echo "Hello, " . $HTTP_GET_VARS["user"] . ". Good morning!";
}
}
else
{
echo "Hello, guest. How do you do?";
}
?>
OK, bây giờ hãy save lại. Giả sử tôi lưu với tên là welcome.php trong thư mục www. Mở trình duyệt
lên, gõ vào ô Address dòng chữ sau:
http://localhost/welcome.php?user=sinh
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 7 of 32
Post là phần dữ liệu được gửi qua các form HTML có method ="POST" (xin xem lại bài về HTML).
Để lấy các biến theo kiểu POST, PHP sẽ tự động sinh ra mảng có tên là $HTTP_POST_VARS[]. Mảng
này có chỉ số chính là tên của các phần tử trong form (các thẻ input, select... có thuộc tính name)
và giá trị là nội dung giá trị do người sử dụng nhập vào các phần tử có tên tương ứng. Chẳng hạn
với mẫu biểu HTML sau:
<form method="POST">
<p>
User Name:<input type="text" name="T1" size="20"> </p>
<p>
Password:
<input type="password" name="T2" size="20"></p>
<p>Sex: <Select name ="sex">
<option value =1>Male </option>
<option value =0>Female </option>
</select>
</p>
<input type="submit" value="Gui di" name="B1">
</form>
Khi người dùng nhập user name (giả sử là Sinh), password (giả sử là 123456) và chọn sex là Male,
khi đó, mảng $HTTP_POST_VARS sẽ có các phần tử sau:
$HTTP_POST_VARS["T1"] = Sinh
$HTTP_POST_VARS["T2"] = 123456
$HTTP_POST_VARS["sex"] = 1
Sau khi lấy được các giá trị này rồi, các bạn có thể thoải mái sử dụng.
Đây là ví dụ một chương trình giải phương trình bậc nhất (cho nó đơn giản )
<form method="POST">
<p style="margin-top: 0; margin-bottom: 0">
Nhập a:<input type="text" name="a" size="20"></p>
<p style="margin-top: 0; margin-bottom: 0">Nhập b:<input type="text" name="b" size="20"></
p>
<p style="margin-top: 0; margin-bottom: 0">
<input type="submit" value="Tính" name="B1"></p>
</form>
<?php
$a=0;
$b=0;
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
if (isset ($HTTP_POST_VARS["a"]))
{
$a =$HTTP_POST_VARS["a"];
}
if (isset ($HTTP_POST_VARS["b"]))
{
$b =$HTTP_POST_VARS["b"];
}
if ($a<>0)
{
echo "<BR>Nghiem la: " . $b/$a;Chỗ này là -$b/$a
}
else
{
if ($b==0)
{
echo "<BR>Vo so nghiem";
}
else
{
echo "<BR>Vo nghiem";
}
}
?>
B. Bài tập
1.Viết chương trình cộng 2 số được nhập từ form
2.Viết trang login.php yêu cầu người dùng nhập username và password
Xác nhận username là admin và password là 123456 thì in ra dòng “Hello Admin”
C.Tham khảo
1. http://www.w3schools.com/php/php_forms.asp
//phép toán == kiểm tra xem 2 biểu thức có giá trị bằng nhau hay không
$c = (1==2); //vì 1 khác 2 nên $c mang giá trị FALSE
$d = ("abc" == "def"); //$d mang giá trị TRUE
?>
"Ép" kiểu sang boolean: một số giá trị được chuyển đổi thành FALSE trong các biểu thức boolean nếu
như giá trị đó là:
• số nguyên 0,
• số thực 0.0,
• chuỗi rỗng "", hoặc chuỗi "0",
• mảng rỗng (không chứa phần tử nào) Array(),
• đối tượng không chứa phần tử nào (chỉ đúng với PHP4),
• giá trị NULL
Các giá trị còn lại sẽ được chuyển đổi thành TRUE.
Kiểu Integer
Kiểu integer mang các giá trị số nguyên ..., -2, -1, 0, 1, 2, ...Trên hầu hết các hệ thống, kiểu số nguyên có
kích thước 32 bit, mang giá trị từ -2147483647 cho đến 2147483648. Ví dụ:
<?php
$a = 1234;
$b = -123;
$c = 0123; //giá trị 123 ở hệ cơ số 8, tương đương với 83 ở hệ cơ số 10
$d = 0x1F; //giá trị 1F ở hệ cơ số 16, tương đương với 31 ở hệ cơ số 10
?>
Kiểu Float (Double)
Kiểu float (hoặc double) là kiểu số thực, có thể mang bất cứ giá trị số thực nào. Trên hầu hết các hệ
thống, kiểu số thực có kích thước 64 bit. Ví dụ:
<?php
$a = 1.234;
$b = 1.2e3; //= 1.2*10^3 = 1200
$c = 7E-10; //= 7*(10^-10) = 0.0000000007
$d = -1.23;
?>
Kiểu String
Kiểu string lưu giữ 1 chuỗi ký tự, mỗi ký tự có kích thước 1 byte. Nội dung string được đặt giữa 2 dấu
nháy, nháy đơn (') hoặc nháy kép ("). Ví dụ
<?php
$a = 'Đây là 1 chuỗi được đặt giữa dấu nháy đơn';
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
Các phần tử trong mảng $a được tạo ở trên sẽ được đánh số thứ tự từ 0, 1 cho đến 2
Để truy cập tới từng phần tử của $a
echo $a[0]; //in ra giá trị 1
echo $a[2]; //in ra giá trị 3
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 11 of 32
$b = Array(
"a" => "Nguyễn",
"b" => "Bá",
"c" => "Thành"
);
echo $b["a"]; //in ra: Nguyễn
$b["a"] = "Nguyen";
$b["b"] = "Ba";
$b["c"] = "Thanh";
//giờ đây $b = Array("a" => "Nguyen", "b" => "Ba", "c" => "Thanh")
?>
Kiểu Object
Kiểu object (đối tượng) lưu giữ 1 bản thể (instance) của 1 lớp (class). Ta sẽ tìm kiểu kỹ thêm về kiểu
object trong phần Lập trình hướng đối tượng với PHP.
Kiểu Resource
Kiểu resource (tài nguyên) được sử dụng bởi các hàm đặt biệc của PHP (ví dụ hàm mysql_connect sẽ trả
về kiểu resource). Ta sẽ tìm hiểu kỹ hơn về kiểu resource trong các bài viết khác.
Kiểu NULL
Đây là 1 giá trị đặt biệc, báo cho PHP biết rằng 1 biến nào đó chưa/không mang giá trị nào cả. Ví dụ:
<?php
$a = 1; //$a mang giá trị 1
BIẾN
Có lẽ hơi muộn khi tới tận bây giờ ta mới tìm hiểu tới biến trong PHP. Một biến trong PHP được bắt đầu
bằng ký tự $ và đi theo ngay sau đó là tên của biến. Ví dụ:
$a: biến có tên là a
$abc123: biến có tên là abc123
Tuy nhiên vẫn còn nhiều điều thú vị về biến đang chờ ta khám phá.
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
• Biến trong PHP phân biệt chữ hoa và chữ thường. Tức $Abc và $abc là 2 biến hoàn toàn khác
nhau.
• Tên biến chỉ được bao gồm các ký tự chữ cái (a..z hoặc A...Z), chữ số (0...9) và ký tự gạch dưới
(_); nhưng tên biến không được bắt đầu bằng ký tự gạch dưới hoặc chữ số. Các tên biến sau là
không hợp lệ!
$_abc Không hợp lệ! bắt đầu bằng ký tự gạch dưới
$1abc Không hợp lệ! bắt đầu bằng chữ số
$nguyễn Không hợp lệ! tên biến có ký tự đặt biệc (ễ)
Tầm vực (scope) của biến
Tầm vực của biến là ngữ cảnh mà ở trong đó biến được định nghĩa. Ví dụ:
<?php
$a = 1; //tầm vực của biến $a bắt đầu từ đây
//hàm do tự tạo
function test() {
echo $a;
} //end test
?>
Ở ví dụ trên, câu lệnh echo $a sẽ không in ra giá trị nào hết vì câu lệnh này nằm bên trong hàm test nên
$a ở đây được hiểu là biến cục bộ $a của hàm (mà hàm này ta chưa khai báo biến cục bộ nào cả).
Để truy cập tới các biến toàn cục ở bên trong 1 hàm do người dùng định nghĩa, ta có thể dùng 1 trong 2
cách sau: Cách 1:
<?php
$a = 1; //biến toàn cục
//hàm do tự tạo
function test() {
//từ khoá global báo cho php biết là bên trong hàm test
//bây giờ ta sẽ dùng biến toàn cục $a
global $a;
//hàm do tự tạo
function test() {
echo $GLOBALS['a']; //in ra giá trị: 1
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 13 of 32
BIỂU THỨC
Biểu thức là nền tảng quan trọng của PHP. Hầu như mọi thứ bạn ghi trong file php đều là biểu thức. Nói một
cách đơn giản, bất cứ cái gì mang 1 giá trị nào đó đều có thể là 1 biểu thức. Ta xét câu lệnh đơn giản sau:
$a = 5;
Ở đây 5 là một biểu thức, kết của của biểu thức này là giá trị 5, và kết quả này được gán cho biến $a. $b = $a;
Ở đây $a lại là 1 biểu thức, giá trị của $a được gán cho biến $b.
Biểu thức trong PHP có thể phức tạp hơn thế, ví dụ:
$a = 1;
$b = 2;
$c = 3;
$d = $a + $b + $c;
B. Bài tập
1.Viết chương trình tính giai thừa của một số nhập vào từ form
C.Tham khảo
1.http://www.w3schools.com/php/php_variables.asp
Khối lệnh được thực thi nếu biểu thức điều kiện trả về giá trị True
Khối lệnh được thực thi nếu biểu thức điều kiện trả về giá trị False
Do
Khối lệnh được thực thi nếu biểu thức điều kiện trả về giá trị True
Khối lệnh được thực thi nếu biểu thức điều kiện trả về giá trị False
for( giá trị ban đầu ; Biểu thức điều kiện ; Tăng giá trị ban đầu)
Khối lệnh được thực thi nếu biểu thức điều kiện trả về giá trị True
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 15 of 32
Break n;
Câu lệnh trên sẽ ngắt từ n. n là số vòng lặp trong cùng nhất. như vậy break 1 sẽ tương
đương với break.
Câu lệnh này thường được sử dụng trong trường hợp trong số các vòng lặp. Bạn muốn
dừng thực thi khối lệnh trong 1 vòng lặp nào đó rồi chuyển sang vòng lặp kế tiếp.
Câu lệnh này giúp bạn thoát ra khỏi vòng lặp và chuyển sang khối lệnh kế tiếp
B - Tham khảo
C - Bài tập
1- Nhập 1 số bất kỳ từ bàn phím và dùng vòng lặp để đưa ra một bảng có số dòng và
số thự tự bằng số đã nhập vào. Bảng trình bày giống bảng sau.
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
2- Dùng vòng lặp vẽ một bảng bất kỳ với số dòng và số cột nhập từ bàn phím.
3- Dùng vòng lặp giải quyết bài toán : Vừa gà vừa chó,bó lại cho tròn, 36 con, 100
chân chẵn?
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 17 of 32
+ Loại thứ 2 : Là những hàm mà lập trình viên tự xây dựng. Mục đích chính
là áp dụng các hàm đó cho công việc của mình. Lập trình viên giỏi, nhiều kinh
nghiêm, làm việc lâu năm là người tự trang bị cho mình rất nhiều những hàm tự
xây dựng. Những hàm này được đúc kết từ các kinh nghiệm làm việc của lập trình
viên trong các Project
+ Mathematical Function
+ String Function
+ Database Function
+ Array Function
+ Mail Function
Bạn có thể tham khảo thông tin về các Hàm loại này trên trang web php.net
Function ten_ham()
VD
<?php
Function tinh_tong()
$a=100;$b=200;
$c=$a+$b;
tinh_tong();
?>
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 19 of 32
VD :
$num += $increment
$num =4;
mac_dinh($num);
mac_dinh($num,3);
VD
Function tinh(&$n)
$n=$n*$n;
}
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
$number = 4;
tinh($number);
print $number;
Dấu & đứng trước $n trong các đối số hàm cho PHP biết rằng cần chuyển nó
theo tham chiếu và kết quả của cuộc gọi hàm này la $number bình phương.
Trong này ta sử dụng câu lệnh return để cho ra giá trị từ hàm hay nói cách khác
một bản sao của giá trị được tạo và được trả về nơi gọi hàm.
VD
<?php
Function tinh_luong($luongcoban)
$luong = 0.25*$luongcoban;
Return $luong;
$luongcoban = 500;
$B = tinh_luong();
Echo $B;
d- Đệ quy
Đệ quy là một phương thức gọi hàm P ở ngay bên trong hàm P mà bạn tạo ra. Mục
tiêu của đệ quy là đưa bài toán về một bài toán cùng dạng nhưng độ phức tạp giảm dần
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 21 of 32
+ Phần neo : Phần này được thực hiện khi công việc quá đơn giản , có thể trả lại
kết quả trực tiếp chứ không cần 1 phương thức con nào cả.
+ Phần đệ quy : Trong trường hợp phương thức chưa thể giải bằng phần neo, cần
xác định phương thức con và gọi đệ quy giải các phương thức con đó, khi đã có
kết quả trả về của những phương thức con thì phối hợp kết quả của chúng lại để trả lại kết
quả của phương thức ban đầu
+ Phương thức đệ quy có thể dẫn tới tràn vùng nhớ stack
+ Mọi phương thức đệ quy phải có điều kiện kết thúc đệ quy
VD
<?php
$A=4;
function giai_thua($A)
If($A <= 1)
Return 1;
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
Else
Return $A*giai_thua($A-1);
$B=giai_thua($A);
Echo $B;
?>
B. Tham khảo
C. Bài tập
1, Sử dụng hàm đệ quy viết chương trình tính dãy Fibonacci ở vị trí thứ n. Với số n
nhập từ bàn phím. n chỉ nhận giá trị từ 1 cho đến 15
2, Viết chương trình nhập vào một chuỗi ký tự bất kỳ. Rồi cho biết tổng số ký tự trong
chuỗi đó là chẵn hay lẻ.
3, Sử dụng hàm viết chương trình tính tổng của những dãy sau :
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 23 of 32
Với những mảng có khóa là chuỗi thì cần phải để khóa ở trong dấu ngoặc
kép.VD :
$department = array(
HR
$array_name[key] = “element_value”;
VD :
$department = array(
1 => ‘Finance’,
2 => ‘Sales’,
3 => ‘HR’,
4 => ‘Purchase’)
echo $department[1]
4- Ghép mảng
Để có thể ghép được mảng ta sử dụng hàm array_merge()
VD :
$ITdept = array(
0 => “Testing”,
1 => “Training”);
$SalesPurcahsedept = array(
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 25 of 32
1 => “Marketing”);
5- Mảng đa chiều
Khi ta khai báo giá trị của 1 thành phần của 1 mảng là một mảng khác sẽ cho
ta kết quả là một mảng đa chiều. Cú pháp như sau :
$array_name = array(
Hàm này có chức năng sắp xếp lại các giá trị của các thành phần của
mảng
VD : sort($giatri)
b, Hàm rsort()
Hàm này cũng tương tự như hàm sort() ở trên nhưng là sắp xếp theo
chiều ngược lại
VD : rsort($giatri)
c, Hàm arsort()
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
Hàm này cũng sắp xếp giống như hàm rsort() nhưng điểm khác nhau
là hàm này sắp xếp theo cả chỉ mục và giá trị của mảng
B. Tham khảo
C. Bài tập
1- Viết chương trình sử dụng hàm rand() (đưa ra số interger ngẫu nhiên) để nhập dữ
liệu cho mảng có độ dài n. Với n nhập từ bàn phím rồi sử dụng mảng đó để làm các
câu sau:
a- Đếm xem có bao nhiêu thành phần trong mảng có giá trị là số chẵn.
b- Đếm xem có bao nhiêu thành phần trong mảng có giá trị là số nhỏ hơn 100
2- Với một mảng đã được nhập sẵn dữ liệu.Viết chương trình để làm các câu sau:
b- In ra vị trí của các thành phần trong mảng giá trị có số bằng 0
3- Viết chương trình sử dụng hàm rand() (đưa ra số interger ngẫu nhiên) để nhập dữ
liệu cho mảng có độ dài n. Với n nhập từ bàn phím rồi in các số đó ra màn hình. Tiếp
theo sắp xếp các số đó theo thứ tự tăng dần rồi lại in ra màn hình
4- Cho một mảng là 1 biểu thức toán học dạng trung tố đầy đủ dấu ngoặc cho sẵn.
A. Bài tập
a. Mysql_fetch_array()
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 27 of 32
c. Mysql_connect()
d. Sql_connect().
5. Hàm nào trong số các hàm dưới đây được dùng để lấy ra một bản ghi từ tập kết quả trả về:
a. Mysql_select_data()
b. Mysql_fetch_array()
c. Mysql_get_record()
d. Mysql_fetch_record()
Trên các Website, việc phân quyền sử dụng cho một người/nhóm người có ý nghĩa quan trọng. VD: người quản trị
có quyền xem, xoá, sửa tất cả thông tin trên Website, thành viên có quyền tham gia bình luận ...
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
Các thông tin về người sử dụng Website được lưu vào một bảng như sau:
ID_MEMBER (int, auto increment) Xác định định danh của thành viên
User_name (varchar 20) Xác định tên truy cập của thành viên
Password (varchar 60) Xác định mật khẩu của thành viên
Full_name (varchar 50) Xác định họ tên đầy đủ của thành viên
Groups (int) Xác định nhóm quyền truy cập. VD: với các member
có nhóm quyền =1 thì người đó có toàn quyền với
Website (Administrator).
- Hiển thị danh sách các thành viên theo thứ tự ABC của trường User_name.
A. Bài tập
a. Trình duyệt
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 29 of 32
3. Biến mảng nào sau đây được dùng để lấy dữ liệu lưu trong cookie:
a. $_COOKIE[]
b. $_COOKIES[]
c. $_GET[]
d. $_POST[]
c. Cookie được lưu trên máy chủ, còn session được lưu trên máy khách
d. Cookie được lưu trên máy khách, còn session được lưu trên máy chủ
Trong các ứng dụng thực tiễn, để xác định xem một thành viên nào đó đã đăng nhập vào hệ thống hay chưa, người
ta sử dụng một form HTML để người sử dụng nhập tên truy cập và mật khẩu. Sau khi người sử dụng bấm nút
submit, một chương trình sẽ tìm kiếm trong cơ sở dữ liệu xem tên truy cập và mật khẩu có tồn tại hay không? Nếu
như tên truy cập và mật khẩu mà người dùng nhập vào giống như trong CSDL, hệ thống sẽ thiết lập một session
để xác định rằng NSD đang sử dụng hệ thống.
- Nếu NSD nhập thông tin vào form, kiểm tra xem tên truy cập và mật khẩu có đúng hay không.
- Nếu đúng:
o Thiết lập session để xác định phiên làm việc của người sử dụng đó
o Hiển thị thông báo rằng NSD đã đăng nhập thành công kèm liên kết logout.
o Nếu người dùng kích chọn logout, xoá phiên làm việc và hiển thị thông báo chia tay.
- Nếu sai, thiết lập cookie để đếm số lần người dùng đăng nhập, đồng thời hiển thị lại form đăng
nhập.
Sách bài tập PHP AiTi-Aptech “Kiến tạo tương lai” Tài liệu lưu hành nội bộ
- Nếu người dùng nhập sai tên truy cập và mật khẩu quá ba lần thì thông báo rằng người đó không
được phép thử đăng nhập nữa.
A. Bài tập
Bài tập trắc nghiệm: Lựa chọn phương án đúng
2. Tham số tuỳ chọn thứ 4 trong hàm mail() được dùng để:
a. Gửi thêm các thông tin trong phần header của email
3. Một lớp các đối tượng được khai báo bởi từ khoá:
a. new
b. class
c. create new
d. create class
a. Tham chiếu tới một phương thức/ thuộc tính trong lớp hiện hành
b. Tham chiếu tới một phương thức/ thuộc tính trong lớp cha
c. Tham chiếu tới một phương thức/ thuộc tính trong lớp con
5. Để khởi gán một đối tượng a thuộc lớp b, ta sử dụng câu lệnh:
a. $a = new $b;
Trung tâm đào tạo Lập trình viên Quốc tế AiTi-Aptech Page 31 of 32
c. a = new $b;
d. a = new b;
- Xây dựng class user_info với các thuộc tính tương ứng với các trường trong bảng như mô tả ở
chương Thao tác với CSDL và các phương thức sau đây:
o Function CheckLogin(): Kiểm tra xem tên truy cập và mật khẩu có đúng như đã lưu trong
CSDL hay không. Nếu đăng nhập đúng thì lưu các thông tin của người dùng vào các thuộc
tính trong lớp.
- Xây dựng class member kế thừa từ class user_info, bổ sung phương thức ShowData để hiển thị
danh sách các thành viên lưu trong CSDL.
- Xây dựng class admin kế thừa từ class member, viết lại phương thức ShowData trong class
admin, kiểm tra xem nếu như người đăng nhập thuộc nhóm 1 thì hiển thị các liên kết xoá, sửa
từng thành viên trên danh sách.