Professional Documents
Culture Documents
C S D LIU ............................................................................................................................................... 8
I. Cc khi nim v c s d liu ............................................................................................................ 8
II. H qun tr csdl mysql ....................................................................................................................... 8
III. To v qun l database vi phpmyadmin...................................................................................... 10
IV. Lab database ................................................................................................................................... 15
PHP C BN ................................................................................................................................................... 26
I. Tng quan .......................................................................................................................................... 26
II. Cc hm x l chui ......................................................................................................................... 32
III. Cc hm thi gian ........................................................................................................................... 34
IV. Cc hm qun l file ....................................................................................................................... 36
V. To hm mi trong php .................................................................................................................... 38
VI. Array ............................................................................................................................................... 41
VII. Ly thng tin ca client v server .................................................................................................. 44
VIII. Httpheader .................................................................................................................................... 45
IX. Cookie ............................................................................................................................................. 48
X. Session .............................................................................................................................................. 49
XI. CC HM DATABASE ................................................................................................................... 50
XII. C ch ng nhp, thot, hn ch truy cp ................................................................................... 52
LAB KT NI DB ........................................................................................................................................... 65
I. Class db ............................................................................................................................................. 65
II. Trnh by d liu theo mu 1 ........................................................................................................... 71
III. Trnh by d liu theo mu 2 .......................................................................................................... 71
IV. Trnh by d liu theo mu 3 .......................................................................................................... 72
PHP NG DNG: CHUN B CHO WEBSITE ADMIN .............................. Error! Bookmark not defined.
I. Chun b table users ............................................................................ Error! Bookmark not defined.
II. Chun b folder cha cc trang web trong phn admin .................... Error! Bookmark not defined.
III. To trang layout................................................................................ Error! Bookmark not defined.
IV. To class qun tr .............................................................................. Error! Bookmark not defined.
V. To chc nng ng nhp .................................................................. Error! Bookmark not defined.
VI. To chc nng kim tra ng nhp, kim tra admin......................... Error! Bookmark not defined.
VII. To chc nng thot ........................................................................ Error! Bookmark not defined.
VIII. Qun tr d liu trong bng............................................................ Error! Bookmark not defined.
LAB TO TRANG CH SITE TIN TUC ........................................................ Error! Bookmark not defined.
I. To class tin ......................................................................................... Error! Bookmark not defined.
II. To trang layout ................................................................................. Error! Bookmark not defined.
TIN NI BT & TIN XEM NHIU .................................................................. Error! Bookmark not defined.
I. To file noibat_xemnhieu.php ............................................................. Error! Bookmark not defined.
II. Tin xem nhiu ..................................................................................... Error! Bookmark not defined.
III. Tin ni bt ......................................................................................... Error! Bookmark not defined.
(Signed/Unsigned) (Signed/Unsigned)
0 255
0 65535
0 16777215
0 4294967295
0 18446744073709551615
6. Sa cu trc Table
- Chn table ri nhp nhp link Structure
. Chnh field: Nhp nt Change
. Xa field : Nhp nt Drop (du cho)
. Thm field : Nhp nt Go trong mc Add
7. i tn Table
- Chn table ri nhp link Operations
- Mc Rename table to: g tn mi ri nhp nt Go
V d: i tn table theloai thnh theloaitin
8. Xa Table
Chn table ri nhp link Drop
9. Import d liu
- Chn database ri nhp link Import
- Nhp nt Browse chn file .sql ri nhp nt Go
column_definition:
data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string']
table_options:
ENGINE [=] engine_name | AUTO_INCREMENT [=] value | CHARACTER SET [=] charset_name
V d:
V d:
V d:
V d:
V d:
8. Ly d liu t table
V d 2: select c kt bng
SELECT Ngay, TieuDe FROM tin WHERE Ngay >= All (SELECT Ngay FROM Tin)
select idTin, TieuDe FROM tin WHERE idLT=25 ORDER BY rand() LIMIT 0,3;
d. Thng k tng idDH, Ngay, Tng S Lng, Tng Tin, sp theo Ngy gim dn. Ch
hin nhng n hng cha giao hng.
e. Hin nm, thng, S n t hng, Tng s lng, Tng tin. Ch chn nhng n hng
giao, sp xp theo Nm, Thng gim dn
I. Kt ni n MySql Server
Kt ni n Mysql server l vic u tin phi
lm khi bn mun qun l database
Nhp menu Database chn Register Host
HostName: G a ch my sql server mun kt
ni ti (localhost)
Username: Ti khon kt ni n mysql
server (root)
Password: Mt khu (root)
Port: Port kt ni n mysql (c 3306)
Nhp Next
Chn cc database cn dng (nn chn ht) ri
nhp Next
Nhp Finish
II. To database
a. Nhp nt phi chut ti tn server ca bn bn ct tri chn Create database
b. t tn database ri nhp Next
HostName, Username, Password: Khai
bo ng kt ni n database
Use server settings: B du check v
ch nh unicode
Xong nhp Next
c. Nhp Finish OK
`
c. Xong nhp lnh Compile
Mi bn tip tc to 1 table (tn loaitin, InnoDB) , vi cc field nh sau:
I. Tng quan
- PHP (vit tt ca Hypertext Preprocessor) l mt ngn ng lp trnh c dng pht trin
cc ng dng web. M lnh PHP thc thi trn webserver.
- Mi dng lnh PHP kt thc bng du ;
- Trong trang html, cc lnh php nm trong tag <? ?> hoc <?php ?>
- Cc khi lnh nm trong { }
- Tn m rng ca file l php
- Ch thch :
// : 1 dng
/*
Khi lnh
*/
<?php
$hoten= "To"; //To bin hoten v gn gi tr
$dem=1; //To bin dem v gn gi tr
echo $hoten; //Hin gi tr bin hoten
?>
$a = "He";
$b = "{$a}llo";
echo $b; // "Hello"
- p kiu
$a = "123abc";
$so = (int) $a; //123
$kytu = (string) $a; //123abc
(string) Chui
(array) Mng
(object) i tng
2. nh ngha hng
nh ngha hng : define (tn_hng, gi_tr_hng ) ;
3. Chui
Chui l mt nhm cc k t c t trong cc du nhy n hoc nhy kp
4. Cc ton t
a. S hc
L cc php tnh cng, tr, nhn, chia, chia ly d (%)
b. So snh
Dng thc hin cc php ton so snh
c. Logic
Ton t logic l cc t hp cc gi tr boolean.
6. C php if
if (iu kin) {
Khi Lnh 1;
}
else {
Khi Lnh 2;
}
- V d 2 :
<?php $diem=4; ?>
<?php if ($diem>=5) { ?>
<b> <?php echo "u"; ?> </b>
<?php } else { ?>
<i> <?php echo "Rt"; ?> </i>
<?php } ?>
- V d 3 :
<?php $diem=6;
if ($diem>=8) echo "Gioi";
elseif ($diem>=7) echo "Kh";
elseif ($diem>=5) echo "Trung bnh";
else echo "Yu";
?>
- V d:
<?php
for ($i=1;$i<=100;$i++) echo "i=$i<br>";
?>
8. Vng lp while
- C php:
while (<iu kin>){
Khi lnh
}
- V d:
<?php
$tong=0; $i=1;
while ($i<=100) {
$tong+=$i; $i++;
}
echo "Tng=$tong";
?>
- V d:
<?php
$tong=0; $i=1;
do {
$tong+=$i; $i+=2;
}while ($i<=100);
echo "Tng cc s l=$tong";
?>
- V d:
<?php
switch ($i) {
case "apple":
echo "i is apple"; break;
case "bar":
echo "i is bar"; break;
case "cake":
echo "i is cake"; break;
default: echo "banana";
}
?>
II. Cc hm x l chui
1. print
In ra 1 chui
$foo = "foobar";
print $foo; // foobar
print <<<HienTable
<table width="400" border="1" cellspacing="0" cellpadding="4">
<tr> <td colspan=2> </td> </tr>
<tr> <td> </td> <td> </td> </tr>
</table>
HienTable
2. strlen
$str = 'abcdef';
echo strlen($str);
3. strpos, stripos
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}
4. str_replace, str_ireplace
$str = "abc_ABC_abc";
echo str_replace("abc","xyz",$str);
5. strip_tags
$text = '<p>Test paragraph.</p> <?=$aa;?> <a href="#fragment">Other text</a>';
echo strip_tags($text), "<br/>";
6. strstr
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // @example.com
7. substr
echo substr("abcdef", 0, -1), "<br/>"; // returns "abcde"
echo substr("abcdef", 2, -1), "<br/>"; // returns "cde"
echo substr("abcdef", 4, -4), "<br/>"; // returns ""
echo substr("abcdef", -3, -1) ,"<br/>"; // returns "de"
8. mb_convert_case
$str = "lp trnh ng dng ";
echo mb_convert_case($str, MB_CASE_UPPER ,'utf-8'),"<br>";
echo mb_convert_case($str, MB_CASE_LOWER ,'utf-8'),"<br>";
echo mb_convert_case($str, MB_CASE_TITLE ,'utf-8'),"<br>";
9. md5
echo time();
Day
Week
Month
m S th t ca thng 01 through 12
n S th t ca thng 1 through 12
Year
y Nm c 2 k s Examples: 99 or 03
Time
$filename = "/php01/test/ham.php";
echo basename($filename);
2. filesize
C php: int filesize ( string $filename )
$filename = "dendamuoi.html";
echo filesize($filename).' bytes';
3. file_exists
C php: bool file_exists ( string $filename )
$f = "a.jpg";
if (file_exists($f)==true) echo "C file"; else echo "Khng c file";
4. fopen
C php: resource fopen ( string $filename , string $mode)
Trong : $filename l tn file hoc URL, $mode l ch m file
mode M t
5. fclose
C php: bool fclose ( resource $handle )
$filename = "readme.txt";
$f = fopen($filename,"r+");
$str = fread($f, filesize($filename) );
fclose($f);
echo $str;
6. unlink
C php: bool unlink ( string $filename )
unlink("readme2.txt");
7. mkdir
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false]] )
$pathname: Tn folder
$mode: quyn truy cp vo folder (777 l cao nht), trn window, thng s ny php b qua
$recursive: nu l true, php s to folder con
mkdir("hinh/dulich",0777,true);
8. copy
C php: bool copy ( string $source , string $dest)
copy("readme.txt", "readme2.txt") ;
9. rename
C php: bool rename ( string $oldname , string $newname)
rename("readme.txt","abc.txt");
10. file_get_contents
C php: string file_get_contents ( string $filename)
$str = file_get_contents("readme2.txt");
echo $str;
11. file_put_contents
C php: int file_put_contents ( string $filename , mixed $data [, int $flags = 0] )
Nu file cha c, s c to ra. Ngc li file s b ghi tr phi bin $flag c gi tr l
FILE_APPEND
$filename = 'counter.txt';
$str = "19686";
file_put_contents($filename, $str);//Nu c c FILE_APPEND th str s
thm vo file
V. To hm mi trong php
1. Khai bo
function <Tn hm>(<tham s 1>,<tham s 2>,...){
........
[return gi tr;]
}
2. V d 1: Hm ct du ting vit
<?php
function stripUnicode($str){
if(!$str) return false;
$unicode = array(
'a'=>'||||||||||||||||',
'A'=>'||||||||||||||||',
'd'=>'', 'D'=>'',
'e'=>'||||||||||',
'E'=>'||||||||||',
'i'=>'||||', 'I'=>'||||',
'o'=>'||||||||||||||||',
'O'=>'||||||||||||||||',
'u'=>'||||||||||',
'U'=>'||||||||||',
'y'=>'||||',
'Y'=>'||||'
);
foreach($unicode as $khongdau=>$codau) {
$arr=explode("|",$codau);
$str = str_replace($arr,$khongdau,$str);
}
return $str;
}
?>
6. Phm vi bin
Phm vi bin l phm vi bin xc nh. Trong PHP, bin c 3 phm vi:
a. Local variables - Bin cc b:
- Khai bo trong hm
- C tc dng t khi khi to n ht hm.
b. Global variables - Bin ton cc:
- Khi to ngoi hm
- C tc dng t khi khi to n ht file tr trong hm.
- a 1 bin ton cc vo trong hm, s dng khai bo
global $bin1 , $bin2,; hoc
$GLOBALS[bin]=gi tr;
c. Super Global Variables:
L nhng bin c sn ca PHP nh $_SERVER, $_SESSION, $_COOKIE,...
V d :
<?php
$a=5; $b=10; $c=15;
function aa() {
$a++; echo "Trong hm, bin a = " ,$a,"<br>";
global $b; $b++;
$GLOBALS['c']=20;
}
aa(); // Trong hm, bin a = 1
echo "Ngoi hm, bin a = ", $a,"<br>"; // Ngoi hm, bin a = 5
echo "Ngoi hm, bin b = ", $b,"<br>"; //Ngoi hm, bin b = 11
echo "Ngoi hm, bin c = ", $c,"<br>"; // Ngoi hm, bin c = 20
?>
7. S dng hm vi include/require
- Ngi ta thng a cc hm c cng 1 loi (nh x l chui, tnh ton, tin t, bo
mt) vo 1 file php ring v a vo trang web khi cn dng.
- C php:
include "TenFile ; hoc
require "TenFile ; hoc
include_once "TenFile ; hoc // m bo include ch 1 ln
require_once "TenFile ;
VI. Array
1. Khai bo dy
$TnDy=array(); // khai bo dy rng
$TnDy=array(gi tri 1, gi tr 2,); //khai bo dy c cc phn t nh bng ch s
$ TnDy =array("key1" =>gi tr 1, "key2" => gi tr 2, "key3" => gi tr 3); // dy dng
key
V d:
$giohang=array(); //khai bo dy rng
$diem=array(0,5,7); // 3 phn t ch s l 0,1,2.
V d 2:
4. Cc hm x l dy
a. Count
- C php: count($day);
b. current /next/prev/reset:
- current($day) Tr v gi tr ca phn t hin hnh
- key($day) Tr v key ca phn t hin hnh
- next($day) a con tr ti phn t tip theo ca dy
- prev($day) a con tr ti phn t tip theo ca dy
- reset($day) a con tr v phn t u ca dy
- end($day) a con tr v phn t cui ca dy
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport); // $mode = 'foot';
$mode = end($transport); // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';
c. sort
- C php: sort($dy[,$sort_flags]);
sort_flags = SORT_REGULAR : Sp bnh thng (khng chuyn kiu)
= SORT_NUMERIC : so snh kiu s
= SORT_STRING : So snh kiu chui
<?php
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val)
echo "fruits[" . $key . "] = " . $val . "<br/>";
?>
- Kt qu :
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange
d. in_array
- C php: bool in_array(gi tr tm, $dy,$kieu);
- V d 1:
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) echo "Got Irix"."<br/>";
if (in_array("mac", $os)) echo "Got mac"."<br/>";
Kt qu : Got Irix
- V d 2:
$a = array('1.10', 12.4, 1.13);
if (in_array('12.4', $a, true)) echo "'12.4' found <br/>";
if (in_array(1.13, $a, true)) echo "1.13 found <br/>";
Kt qu : 1.13 found
e. array_search
- C php: array_search ( mixed $needle, array $haystack [, bool $strict] )
- Nu strict l TRUE th hm s test kiu ca gi tr tm
$array = array(0=> 'blue', 1=> 'red', 2=> 'green', 3=> 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
5. array_key_exists:
- C php: bool array_key_exists ( mixed $key, array $search )
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array))
echo "The 'first' element is in the array";
VIII. Httpheader
1. Gii thiu
http header l cc thng tin iu khin nm trong cc http request , http response. Cha cc
cc ch th bo cho trnh duyt/server bit cch x l thng tin.
2. Xem http header
Bnh thng bn khng thy http header, do y l phn giao tip gia webserver v
browser. Mun xem http header, bn ci thm add on FireBug cho Firefox (c th dng tool
khc nh http watcher)
3. Cc header request
Header Description V d
Cookie: $Version=1;
Cookie Danh sch nhng bin cookie c to trc y
Skin=new;
Referer:
Referer a ch ca trang web m t link n trang hin ti http://en.wikipedia.
org/wiki/Main_Page
User-Agent:
User-Agent Thng tin v browser, h iu hnh Mozilla/5.0 (Linux;
X11)
4. Cc response header
Content-Disposition:
Nu thy ch th ny, browser s m hp thoi
Content-Disposition attachment;
Save file.
filename=fname.ext
Content-Type:
Content-Type Kiu MIME ca ti liu text/html;
charset=utf-8
Expires: Thu, 01 Dec
Expires Thi im m sau ni dung tr v s qu hn
1994 16:00:00 GMT
Last-Modified: Tue, 15
Last-Modified Thi im modified sau cng ca ti liu.
Nov 1994 12:45:26 GMT
Refresh: 5;
Refresh Np trang web sau khong thi gian (s giy) url=http://www.w3.org/
pub/WWW/People.html
if (date('H')<=12) header('location:index1.html');
else header('location:index2.html');
7. Content-type
- Dng bo cho browser bit kiu d liu m webserver ang tr v cho browser.
- C php: header('Content-type:MimiType);
- Mt s kiu Mimtype
Extension Type/sub-type
doc application/msword
gif image/gif
htm, html text/html
ico image/jpeg
ppt application/vnd.ms-excel
xls application/zip
zip
- V d:
header("content-type:image/jpeg");
$f = fopen("a.jpg","r");
$str = fread($f , filesize("a.jpg");); fclose($f);
echo $str;
8. Content-disposition
- C php: header('Content-disposition: attachment; filename="'.$filename.'"');
- Bo cho browser bit l hy m khung save file
- V d :
header('Content-disposition:attachment;filename="TiengGaTrua.mp3"');
header("Content-type:audio/mpeg");
$filename = "TiengGaTrua_TCS.mp3";
$f = fopen($filename,"r");
$str = fread($f, filesize($filename) ); fclose($f);
echo $str;
IX. Cookie
1. Gii thiu
- Cookie dng lu nhng thng tin v user. Cookie c lu trong my client v do
browser qun l
- Mi ln request 1 trang web, browser s gi cc bin cookie ang c ln webserver nu
bin cha qu hn.
2. To cookie
- setcookie("TenCookie",gi tr [,Thi im qu hn]);
- Nu khng ch nh thi im qu hn th cookie s lu trong b nh. V s mt khi user
ng browser. Nu c khai bo thi im qu hn, cookie s ghi trong file v browser ch
xa khi qu thi hn.
3. S dng cookie
- $_COOKIE l dy ton cc c sn trong php, dng cha cc cookie gi t browser.
- C php s dng bin cookie: $_COOKIE["TnBin"]
4. V d
- To file setcookies.php v code dng u:
setcookie("un", "Nguyen Van Teo", time()+60*60*24*30);
setcookie("last", time(), time()+60*60*24*30);
X. Session
1. Gii thiu
- Session l i tng trn server, cha thng tin ca tng user
- Mi user c vng session ring, khc bit vi nhng user khc
- Cu trc vng session ca mi user l ging nhau (ch khc gi tr cc bin).
2. Khai bo v s dng
- $_SESSION["TnBin"]
- V d:
3. V d
echo ++$dem,"<br/>";
echo ++$_SESSION['count'];
if ($_SESSION['count']>=50) unset($_SESSION['count']);
XI. CC HM DATABASE
hin th d liu t database ra web, ba cng on bn phi thc hin
- Kt ni : bao gm kt ni database (hm mysql_connect, mysql_pconnect), chn databse, ch
nh bng m
- Ly d liu:Vit cu lnh SQL v dng hm mysql_query thc thi, nhn kt qu
- Hin th d liu: Trch tng dng d liu ly c a ra trang web, c th lp hin hit
d liu
1. Kt ni CSDL
mysql_connect(<host>, <username>,<password>);
mysql_pconnect(<host>, <username>,<password>);
Hai hm ny dng kt ni n MySql Server . Trong :
- host:a ch ca my ci MySQL (tn hoc IP). nu l my ni b th dng localhost
- username, password: L ti khon v mt khu kt ni
Hm tr v 1 connection hoc gi tr false nu khng kt ni c
V d: $conn=mysql_connect("localhost","root","root");
2. Chn CSDL s dng
mysql_select_db(<TnDatabase> [,TenKetNoi]);
MySQL Server c th cha nhiu CSDL, hm ny dng chn CSDL
Trong : TnDatabase: l tn c s d liu mun dng, TnKtNi l bin connection tr
v do hm mysql_connect. Tn kt ni c th b qua cng c. V d:
mysql_select_db("webtintuc",$conn); hoc
mysql_select_db("webtintuc");
Ch : Dng thm lnh sau n nh bng m utf8:
mysql_query("SET NAMES 'utf8'", $conn);
3. Thc thi cc cu lnh truy vn
mysql_query(CuLnhSQL);
- Hm tr v true nu cu lnh truy vn thc thi thnh cng (tr cu lnh select)
- Hm tr v 1 recordset (bng d liu) nu cu lnh select thc thi thnh cng
- Hm tr v false nu cu lnh truy vn khng c thc hin
V d:
$rsLT=mysql_query("SELECT * FROM loaitin");
$result=mysql_query("DELETE FROM loaitin WHERE idLT=100"); //result s true hoc false
4. m s record trong recordset
mysql_num_rows($TenRecoret);
V d: echo mysql_num_rows($kq);
5. Duyt recordset
$kq= mysql_fetch_assoc($TenRecordSet);
- Hm tr v thng tin ca record hin hnh (hoc gi tr false nu record rng), ng thi di
chuyn con tr sang record k
- Mun hin d liu ca field no th ghi nh sau $kq['TenField']
- V d1 :
<?php mysql_connect("localhost","root","root");
mysql_select_db("tintuc");
mysql_query("SET NAMES 'utf8' "); ?>
<?php $sql = "SELECT idTL, TenTL FROM theloai";
$theloai = mysql_query($sql) or die( mysql_error() );
$sotheloai = mysql_num_rows($theloai); ?>
S th loi: <?=$sotheloai; ?> <br>
<?php while ( $row_theloai = mysql_fetch_assoc($theloai) ) {?>
<p> <?=$row_theloai['TenTL'];?> </p>
<?php } ?>
6. Ly ID va mi cp nht
mysql_insert_id();
Trong 1 bng , nu kha chnh c khai bo theo kiu auto_increament th sau khi thm
mi record, c th ly gi tr va mi cp nht bng hm ny.
7. Thng bo li ca MYSQL
mysql_error();
8. Nhy n 1 record trong recordset
mysql_data_seek($TenRecordset, ThuTuRecord);
V d: mysql_data_seek($rdLT, 0);
XII. C ch ng nhp, thot, hn ch truy cp
Mun thc hin chc nng ng nhp, trong database ca bn phi c 1 table cha danh sch
users. Table ny cha t nht l cc ct; idUser, Username, Password. Thc t bn phi to thm
nhiu ct cha thng tin user na nh: Email, idGroup Cc bc x l bao gm:
1. To form ng nhp: form c ch g username, password, bt sumit, ghi nh pass
2. X l khi submit:
- Kim tra user, password c ng khng
- To cc bin session nh du ngi ng nhp nu ng user, pass.
- Chuyn sang trang c hoc sang trang ch
3. Hn ch truy cp vo trang
- Kim tra cc bin session to lc login xem c tn ti khng, nu khng c th chuyn
sang trang ng nhp
4. To trang thot
- Xa cc bin session to lc ng nhp
- Chuyn sang trang ch hoc trang ng nhp
1. To form ng nhp
To trang php tn dangnhap.php v to form nhs sau: (2 textfield t tn l u, p)
session_start();
$u = $_POST['u']; $p = $_POST['p'];
if (get_magic_quotes_gpc()==false) {
$u = trim(mysql_real_escape_string($u));
$p = trim(mysql_real_escape_string($p));
}
$sql="SELECT * FROM users WHERE username='$u' AND password ='$p'";
$user = mysql_query($sql) or die (mysql_error());
$row_user = mysql_fetch_assoc($user);
if (mysql_num_rows($user)==1) {//Thnh cng
$_SESSION['login_id']=$row_user['idUser'];
$_SESSION['login_user']=$row_user['Username'];
$_SESSION['login_level']=$row_user['idGroup'];
if ( strlen($_SESSION['back']) > 0 ){
$back= $_SESSION['back']; unset($_SESSION['back']);
header("location:$back");
} else header("location: index.php");
} else header("location: dangnhap.php"); //Tht bi
3. Hn ch truy cp vo trang
- To trang download.php v g vo trong body:
Y L TRANG DOWNLOAD SOFTWARE, CH HIN KHI USER LOGIN
<p> <?php echo "Cho bn " . $_SESSION['login_user']; ?> </p>
<p> <a href=thoat.php> Thot </a> </p>
session_start();
if (isset($_SESSION['login_id'])==false) {
$_SESSION['back']= $_SERVER['REQUEST_URI'];
header("location:dangnhap.php");
exit();
}
session_start();
session_destroy();
header("location: dangnhap.php");
LP TRNH HNG I TNG
I. Tng quan
1. Gii thiu
Lp trnh hng i tng l k thut gip n gin ha phc tp ca cng vic khi bo
tr cng nh m rng phn mm bng cch i tng ho cc i tng d liu cn x l.
Mi i tng c mt tn ring v tt c cc tham chiu n i tng c tin hnh qua
tn ca n. Mi i tng c kh nng nhn vo cc thng bo, x l d liu (bn trong ca
n), v tr li n cc i tng khc hay n mi trng.
Mi i tng c chia thnh hai phn chnh: cc phng thc (method) v cc thuc tnh
(property). Cc phng thc ca i tng l cc hm v cc thuc tnh ca n l cc bin,
hng.
Tp hp cc gi tr hin c ca cc thuc tnh to nn trng thi ca mt i tng.
Mi d liu ni ti c xem l mt c tnh ring ca i tng.
2. Cc tnh cht c bn ca lp trnh hng i tng
Tnh tru tng (abstraction): l cch thc khng ch n gi tr c th ca thng tin m
n lm vic. Mi i tng c th hon tt cc cng vic mt cch ni b, bo co, thay i
trng thi ca n v lin lc vi cc i tng khc m khng cn cho bit lm cch no m
n thc hin c cc thao tc.
Tnh ng gi (encapsulation) v che du thng tin (information hiding): Tnh cht ny
khng cho php ngi s dng cc i tng thay i trng thi ni ti ca i tng. Ch c
cc phng thc ni ti ca i tng c php thay i trng thi ca n. Vic cho php
bn ngoi tc ng ln cc d liu ni ti ca mt i tng theo cch no l hon ton ty
thuc vo ngi vit m. y l tnh cht m bo s ton vn ca i tng.
Tnh a hnh (polymorphism): Th hin thng qua vic gi cc hm trong mt i tng.
Cc phng thc dng tr li cho mt li gi s ty theo i tng gi m phn ng khc
nhau. Ngi lp trnh c th nh ngha mt phng thc cho mt lot cc i tng gn
nhau nhng khi thi hnh th dng cng mt tn gi m s thi hnh ca mi i tng s t
ng xy ra tng ng theo c tnh ca tng i tng m khng b nhm ln.
Th d khi nh ngha hai i tng "hinh_vuong" v "hinh_tron" th c mt phng thc
chung l "chu_vi". Khi gi phng thc ny th nu i tng l "hinh_vuong" n s tnh
theo cng thc khc vi khi i tng l "hinh_tron".
Tnh k tha (inheritance): cho php mt i tng c th dng cc phng thc c sn
thng qua k tha. iu ny cho php cc i tng chia s hay m rng cc phng thc
sn c m khng phi tin hnh nh ngha li.
3. Cc khi nim
1. Lp (class)
Mt lp bao gm cc thuc tnh v cc phng thc c nh ngha sn to ra cc
i tng sau ny. Khi 1 i tng c to theo mt lp, n c tt c cc thuc tnh v
phng thc khai bo trong lp. Lp l s tru tng ha ca i tng.
Nh vy, c c cc i tng th bn cn phi thit k lp ca cc i tng
bng cch xy dng cc thuc tnh v cc phng thc.
2. Lp con (subclass)
Lp con l mt lp thng thng nhng c thm tnh cht k tha mt lp khc. Lp m
chia s s k tha gi l lp cha (parent class).
3. Lp tru tng (abstract class)
Lp tru tng l mt lp m n khng th thc th ha thnh mt i tng. Lp ny
c thit k nhm to ra mt lp c cc phng thc tng qut nhm mc ch m t
cc class con.
4. Phng thc (method)
L hm ni ti ca mt lp (hay mt i tng). Mi phng thc cn c gi l hm
thnh vin. C vi phng thc c bit:
Hm __construct l hm chy t ng lc to 1 i tng t\da trn class
Hm __destruct l hm chy t ng khi hu i tng
5. Thuc tnh (attribute)
Thuc tnh ca mt lp bao gm cc bin, cc hng
6. Thc th (instance)
Thc th (instantiate) l i tng c to ra da theo hnh mu ca 1 lp khai bo
trc (i tng c xem nh l mt bin).
Ni cch khc: mt lp khi c thc th ha s thnh mt i tng. Hai thc th ca
cng mt lp c th c trng thi ni ti khc nhau, hon ton c lp nhau.
7. Cng cng (public)
Public l mt tnh cht c dng gn cho cc phng thc, cc bin ni ti, hay cc
lp m khi khai bo s cho php s dng n t bn ngoi lp
8. Ring t (private)
Khi dng tnh cht ny cho bin, phng thc th bin hay phng thc ch c th
c s dng bn trong lp m chng c nh ngha. Bn ngoi khng dng c.
9. Bo v (protected)
Khi p dng tnh cht protect cho cc phng thc, cc bin ni ti, hay cc lp th ch c
trong ni b ca lp hay cc lp con ca n c php gi n hay dng n
So vi private th protect rng ri hn v ngha chia s d liu hay chc nng.
10. a k tha (multiple inheritance)
y l mt tnh cht cho php mt lp con c kh nng k tha cng lc nhiu lp khc.
Vi im cn lu khi vit m dng tnh cht a k tha:
Khi mun k tha t nhiu lp cha th cc lp ny cn phi c lp v c bit tn ca
cc d liu hay hm cho php k tha phi c tn khc nhau trnh li "ambiguilty".
Bi v lc s khng xc nh c l lp con s tha k tn no ca cc lp cha.
2. To th hin ca lp
Dng t kho new, tip l tn lp:
$TniTng = new Tn_Lp([thamso]);
3. Truy xut thuc tnh ca lp
truy cp thuc tnh hay phng thc ca lp, bn dng ton t -> vi c php nh sau:
- Bn trong lp : $this -> $TnThucTnh
- Bn ngoi lp : $TniTng -> $TnTthucTnh
III. V d
1. V d 1
<?php
class hocsinh {
public $HoTen;
public $NgaySinh;
}
$teo = new hocsinh;
$teo -> HoTen = "Nguyn Vn To";
$teo -> NgaySinh = "1/1/2000";
echo "H tn: " , $teo -> HoTen , "<br/>";
echo "Ngy sinh: " , $teo -> NgaySinh , "<br/>";
?>
2. V d 2
<?php
class hocsinh {
public $HoTen;
public $ngay_sinh;
public function set ($ht , $ns) {
$this -> HoTen= $ht;
$this -> NgaySinh=$ns;
}
}
$teo = new hocsinh;
$teo -> set("Nguyn Vn To" , "25/7/2003");
echo "H tn: " , $teo -> HoTen , "<br/>";
echo "Ngy sinh: " , $teo -> NgaySinh , "<br/>";
?>
3. V d 3
Khi khai bo mt lp, c th thit lp gi tr ban u cho cc thnh vin trong lp . V d:
<?php
class hocsinh {
public $HoTen = "Nguyn Vn To";
public $NgaySinh = "1/1/2000";
public function set($ht , $ns) {
$this -> HoTen = $ht;
$this -> NgaySinh = $ns;
}
}
$teo=new hocsinh;
echo "H tn: " , $teo -> HoTen , "<br/>";
echo "Ngy sinh: " , $teo -> NgaySinh , "<br/>";
?>
<?php
class Test{
public $public = 'Public_Parent';
protected $protected = 'Protected_parent';
private $private = 'Private';
public function hiendata() {
echo $this->public,"<br/>";
echo $this->protected,"<br/>";
echo $this->private,"<br/>";
}
}
5. V d 5
<?php
class Test2 extends Test {
protected $protected = 'Protected_Sub';
function hiendata() {
echo $this->public,"<br/>"; ;
echo $this->protected,"<br/>"; ;
echo $this->private,"<br/>"; ;
}
}
7. Hm hy: __destruct()
__destruct l phng thc t ng chy khi i tng b hy. vd:
<? class test{
function __construct(){ echo "doi tuong duoc tao<br>"; }
function __destruct(){ echo "doi tuong bi huy<br>"; }
}
$t = new test();
echo "Chao Ban<br>";
unset($t);
echo "Tam Biet<br>";
?>
8. Chng hm
L trng hp lp cha v lp con c cng tn hm (phng thc). Vic khai bo trng tn
hm cho php bn nh ngha li cc hm trong lp cha bng cc hm cng tn trong lp con
nhng hai hm ny c hai chc nng hon ton khc nhau. K thut cn gi l a hnh do
chng to ra nhiu hnh thi khc nhau cc lp tha k.
Khi to i tng theo lp con, ch c th dng hm trong lp con.
V d:
<? class lopcha {
var $x="y l bin x trong lp cha<br/>";
function abc() { echo $this->x; }
}
class lopcon extends lopcha {
var $y="y l gi tr trong lp con";
function abc(){ echo $this->y; }
}
?>
<?php
$test = new lopcon();
$test -> abc();
?>
hoc:
<?php
class sv{
var $khoa;
var $ten;
var $ngaysinh;
function sv(){
$this->khoa = "Cng ngh thng tin";
}
function getInfor(){
echo "Khoa: ".$this -> khoa."<br>";
echo "Ten: ". $this -> ten."<br>";
echo "Ngay sinh: ". $this -> ngaysinh ."<br>";
}
}
class svgioi extends sv{
var $hocbong;
function svgioi(){
$this->hocbong = "Nguyn Thi Bnh";
}
function getInfor(){
parent::getInfor();
echo "Hc bng: ".$this -> hocbong."<br>";
}
}
$t = new svgioi;
$t->ten = "Nguyn Vn To";
$t->ngaysinh = "1/1/2000";
$t->getInfor();
?>
9. Autoloading objects
Hm __autoload s t ng gi trong trng hp mt class cha nh ngha. V d
<?php
function __autoload($class_name) {
require_once $class_name . '.php';
}
$a = new lop1();
$b = new lop2();
?>
11. Abstraction
Cc lp c nh ngha abstract th n s khng cho php to cc instance. Cc phng thc
c nh ngha abstract ch n gin l vit m t phng thc , khng nh ngha chng,
ngha l bn ch khai bo tn hm m bn trong thn hm khng nh ngha g. V d:
<?php
abstract class lopmota{
abstract protected function printA();
abstract protected function printB();
public function showAll(){
$this->printA();
$this->printB();
}
}
class abc extends lopmota {
protected function printA(){ echo 'A'; }
protected function printB(){ echo 'B'; }
}
$ob = new abc;
$ob->showAll();
?>
Fatal error: Class myClass contains 1 abstract method and must therefore
be declared abstract or implement the remaining methods (abc::funcB)
in ...
Ch :
- Tt c cc phng thc c m t trong interface phi c m t public
- Mt lp c th c nhiu interface nhng cc phng thc trong cc interface khng
c trng tn nhau. Vd:
<?php
interface abc{
public function funcA();
public function funcB();
}
interface xyz{
public function funcC();
public function funcD();
}
class myClass implements abc,xyz{
public function funcA(){ echo 'A'; }
public function funcB(){ echo 'B'; }
public function funC(){ echo 'All';}
public function funcC(){}
public function funcD(){}
}
$a = new myClass;
$a->funcA();
?>
13. Overloading
Tt c cc phng s dng gi hoc truy xut chng ta u c th overload qua cc
phng thc _call, _set, _get, _isset(), _unset(). Phng thc no mun overload phi public
v khng c nh ngha static.
Cc phng thc c overload c m t nh sau:
- void __set ( string $name, mixed $value ): Thc hin khi bn gn gi tr cho bin.
- mixed __get ( string $name ): Thc hin khi bn unset hoc gn gi tr mi cho bin.
- bool __isset ( string $name ): Thc hin khi bn dng phng thc isset()
- void __unset ( string $name ): Thc hin khi bn dng phng thc unset()
<?php
class myClass {
private $a = array("x" => 100, "y" => 200);
public function __get($key) {
echo "Ly gi tr ca $key <br>";
if (isset($this->a[$key])) {
$r = $this->a[$key];
echo "$key = $r <br>";
return $r;
} else echo "$key u c! <br>";
}
public function __set($key, $val) {
echo "Gn gi tr cho $key l $val <br>";
if (isset($this->a[$key])) {
$this->a[$key] = $val;
echo "OK! <br>";
} else echo "Khng c <br>";
}
public function __isset($key){
echo "Kim tra $key c gn gi tr cha <br>";
return isset($this->a[$key]);
}
public function __unset($key){
echo "Hu b $key <br>";
unset($this->a[$key]);
}
}
$obj = new myClass;
$obj->x = 300;
//echo "<hr>";
//echo $obj->x;
//echo "<hr>";
//isset($obj->x);
//echo "<hr>";
//unset($obj->x);
//echo "<hr>";
//$obj->x = 200;
?>
LAB KT NI DB
I. Class db
1. To file classDB.php
<?php
class db {
} //class db
?>
2. nh ngha cc atribute
function __construct(){
mysql_connect($this->host, $this->user, $this->pass);
mysql_select_db($this -> database);
mysql_query("set names 'utf8'"); }
function getdata($sql) {
$this->result = mysql_query($sql);}
function fetchRow() {
$row = mysql_fetch_assoc($this->result);
return $row; }
To file test1.php
<?php
require_once "classDB.php";
$d = new db;
$d->getdata("select * from tin where TinNoiBat=1");
while ($row = $d->fetchRow() ) echo "<p>",$row['TieuDe'],"</p>";
?>
4. Hm TheLoai
Yu cu:
To file test2.php
<?php
require_once "classDB.php";
$d = new db;
$kq = $d->TheLoai("", -1);
while ( $row=mysql_fetch_assoc($kq) ) echo $row['TenTL'],"<br>";
?>
5. Hm LoaiTin
Yu cu:
To file test3.php
<?php
require_once "classDB.php";
$d = new db;
$kq = $d->LoaiTin('en');
while ( $row = mysql_fetch_assoc($kq) ) echo $row['Ten'],
"<br/>";
?>
6. Hm LoaiTinTrongTheLoai
Yu cu:
function LoaiTinTrongTheLoai($idTL,$AnHien=1){
settype($idTL, "int");
$sql = "SELECT idLT, Ten FROM loaitin
WHERE idTL=$idTL AND (AnHien=$AnHien or $AnHien=-1)
ORDER BY ThuTu ASC";
$kq = mysql_query($sql) or die(mysql_error());
return $kq;}
To file test4.php
<?php
require_once "classDB.php";
$d = new db;
$kq = $d->LoaiTinTrongTheLoai(11);
while ( $row = mysql_fetch_assoc($kq) ) echo $row['Ten'],"<br/>";
?>
7. Hm TinMoiTrong1Loai
Yu cu:
To file test5.php
<?php
require_once "classDB.php";
$d = new db;
$kq = $d->TinMoiTrong1Loai(12,0,10);
while ( $row=mysql_fetch_assoc($kq)) echo $row['TieuDe'],"<br/>";
?>
8. Hm TinMoiTrongTheLoai
Yu cu:
To file test6.php
<?php
require_once "classDB.php";
$d = new db;
$kq = $d->TinMoiTrongTheLoai(3,0,5);
while ( $row=mysql_fetch_assoc($kq)) echo $row['TieuDe'],"<br/>";
?>
9. Hm changeTitle
Hm nhn tham s l 1 chui c c du, v s thc hin cc nhim v sau:
- Ct b du ting vit
- Ct b cc du ? , &, ' , ", +
- Ct b khong trng u v cui chui
- Ct b 2 khong trng lin tip thnh 1 khong trng
- i cc k t thanh ch thng
- Thay cc khong trng bng du
function changeTitle($str){
$str = $this->stripUnicode($str);
$arr = array("?","&","'",'"',"+");
$str = str_replace($arr,"",$str);
$str = trim($str);
while (strpos($str," ")>0) $str = str_replace(" "," ",$str);
$str = mb_convert_case($str , MB_CASE_ LOWER , 'utf-8');
$str = str_replace(" ","-",$str);
return $str;
}
function stripUnicode($str){
if(!$str) return false;
$unicode = array(
'a'=>'||||||||||||||||',
'A'=>'||||||||||||||||',
'd'=>'',
'D'=>'',
'e'=>'||||||||||',
'E'=>'||||||||||',
'i'=>'||||',
'I'=>'||||',
'o'=>'||||||||||||||||',
'O'=>'||||||||||||||||',
'u'=>'||||||||||',
'U'=>'||||||||||',
'y'=>'||||',
'Y'=>'||||'
);
foreach($unicode as $khongdau=>$codau) {
$arr = explode("|",$codau);
$str = str_replace($arr,$khongdau,$str);
}
return $str;
}
Test: test7.php
<?php
require_once "classDB.php";
$d = new db;
$str = "lP tRNh NG dnG";
echo $d->changeTitle($str);
?>
II. Trnh by d liu theo mu 1
Dng cc hm trong class db va to thc hin yu cu sau:
Ly loi tin, cc tin mi trong tng loi v trnh by theo yu cu
- Ly cc loi tin c hin (AnHien=1)
- Mi loi hin 5 tin mi
- Tin u trong mi loi hin y : Tiu , hnh, m t
- 4 tin k trong mi loi ch hin tiu , v hin icon nh trc mi tiu
- Tham kho hnh di: