Tài liệu Giáo trình Php & mysql: Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 1/68 www.qhonline.info
Trung Tâm ào To Công Ngh Mng Vit Chuyên
Tài Liu Lu Hành Ni B
www.qhonline.info
GIÁO TRÌNH
PHP & MYSQL
Biên Son:
GV. Bùi Quc Huy
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 2/68 www.qhonline.info
Li Nói u
Quy
n giáo trình này c t
ng hp t nhng tài liu và kinh nghim thc tin qua nhiu
nm ging dy ca ging viên, và c son tho cho phù hp vi ni dung môn hc.
Khác vi giáo trình mang tính thng mi, các t ng, cách din gii mang xu th thut
ng, giáo trình c xây dng trên hình thc d c, d hi
u và g n gi vi thc t, tuy
nhiên iu ó không có ngha hc viên có th
ch tham kho giáo trình mà không i hc.
Nu các bn mun hi
u cn k kin thc và ý ngha ca giáo trình, bn nên tham gia các
khóa hc PHP y ti trung tâm ào to mng Vit Chuyên.
Mc dù ã ki
m tra xác thc, cng nh tính úng n ca giáo trình, nhng...
68 trang |
Chia sẻ: Khủng Long | Lượt xem: 1057 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình Php & mysql, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 1/68 www.qhonline.info
Trung Tâm ào To Công Ngh Mng Vit Chuyên
Tài Liu Lu Hành Ni B
www.qhonline.info
GIÁO TRÌNH
PHP & MYSQL
Biên Son:
GV. Bùi Quc Huy
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 2/68 www.qhonline.info
Li Nói u
Quy
n giáo trình này c t
ng hp t nhng tài liu và kinh nghim thc tin qua nhiu
nm ging dy ca ging viên, và c son tho cho phù hp vi ni dung môn hc.
Khác vi giáo trình mang tính thng mi, các t ng, cách din gii mang xu th thut
ng, giáo trình c xây dng trên hình thc d c, d hi
u và g n gi vi thc t, tuy
nhiên iu ó không có ngha hc viên có th
ch tham kho giáo trình mà không i hc.
Nu các bn mun hi
u cn k kin thc và ý ngha ca giáo trình, bn nên tham gia các
khóa hc PHP y ti trung tâm ào to mng Vit Chuyên.
Mc dù ã ki
m tra xác thc, cng nh tính úng n ca giáo trình, nhng khi biên
soan ch c ch n s có ít nhiu l!i liên quan n t ng, cú pháp. R"t mong nhn c
nhiu s óng góp ca các bn.
Mi ý kin óng góp ca các bn vui lòng truy cp vào website: www.qhonline.info (là
website cá nhân ca tác gi). Hoc www.ddcntt.vn (là website ca trung tâm).
Ging viên
Bùi Quc Huy
TP.H# Chí Minh. Ngày 15 Tháng 06 Nm 2006
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 3/68 www.qhonline.info
Phn A: C Bn V HTML & Javascript
I – Các Th HTML c bn
1- C u trúc chu
n:
Tiêu Website
Ni dung website c vit ti ây
+ Mt c"u trúc HTML luôn bao g#m th$ óng và th$ m%.
Ví d& : Ł th$ M%
Ł Th$ óng - c phân bit b'ng d"u / ngay trc th$
+ Các th$ HTML hoàn toàn có th
vit hoa hoc thng. Tuy nhiên nên theo 1 quy t c
chung (vit hoa thì vit hoa ht, ngc li).
+ Mt website càng ít th$ thì s càng chy nhanh hn.
2- Các th c bn :
ü Tiêu : Ni Dung (ví d&: Welcome, admin).
Th$ H bao g#m các thuc tính t (H1à H6). Nhng ch S( d&ng t H1à H3.
ü In m: Ni Dung (ví d&: Welcome, admin)
ü In Nghiêng: Ni Dung (ví d&: welcome, Admin)
ü Gch Di : Ni Dung (Ví d&: welcome, Admin)
ü Xung 1 Dòng : - Th$ này không có th$ óng.
ü Xung 2 Dòng : - Có hoc không th$ óng cng c.
ü )nh Dng Ch B'ng Th$
+ Kích thc ch : Ni Dung
Ví d&: Hello, How Are You ?
+ Ki
u Ch : <FONT FACE=”Ki
u Ch”> Ni Dung
Ví d&: Hello, How Are You ?
+ Màu Ch : Ni Dung
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 4/68 www.qhonline.info
Ví d&: Hello, How Are You ?
ü To Liên Kt : Ni Dung
Ví D&: Hello, Huy
+ M% 1 c(a s
mi vi liên kt: TARGET=_BLANK
Ví d&: Hello, Huy
+ M% liên kt ó ngay trên trang hi
n th): TARGET=_SEFT
Ví d&: Hello, Huy
ü )nh dng thuc tính : ALIGN=LEFT, RIGHT, CENTER, JUSTIFY
+ S( d&ng kt hp vi th$
Ví d&: Ni dung à Vn bn s % gia
+ S( d&ng kt hp vi các th$ khác nh ,, ,.
ü Chèn hình nh vào website:
<IMG SRC=”URL Hình” BORDER=”Thông S” HSPACE=”Thông S”
VSPACE=”Thông S” ALIGN=”Thuc Tính” WIDTH=”Thông S”
HEIGHT=”Thông S”>
+ cú pháp chính
xu"t ra hình nh.
+ cú pháp c s( d&ng khi
hình nh i kèm vi liên kt.
Ví d& :
T câu lnh trên s cho ra hình def.gif. Tuy nhiên bao bc hình nh ó s có 1
ng vin.
Ví d&:
T câu lnh trên s cho ra hình def.gif. Nhng không có vin xung quanh
+ Hspace : khong cách t l phi ca hình n l trái vn bn
+ Vspace: khong cách t TOP ca hình n BOTTOM ca vn bn
+ Align : )nh dng trái, phi, gia ca hình (canh l).
+ Width : Chiu rng ca t"m hình.
+ Height : Chiu cao ca t"m hình.
II– To bng trong HTML :
to 1 bng chúng ta nên hình dung c dòng và ct. Và áp t 1 s quy lut,
vic
thc thi d hn so vi yêu c u t ra.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 5/68 www.qhonline.info
Mt bng bao g#m 2 thuc tính là dòng và ct. Vy ta có quy t c
có 1 bng d liu. Ta
i t bng trc, sau ó k$ dòng và chia ct trên dòng óLàm tu n t cho n ht yêu
c u vic to bng.
1 Bng b t u và kt thúc s có cú pháp :
1 Dòng b t u và kt thúc s có cú pháp :
1 Ct b t u và kt thúc s có cú pháp :
Ví d&:
A B C D
1 2 3 4
Nh bng % trên ta s xây dng nh sau :
+ G#m 1 bng.
+ G#m 2 dòng
+ G#m 4 ct trên 1 dòng
Vy ta có cú pháp to bng c bn nh sau :
A
B
C
D
1
2
3
4
Các thuc tính trên Bng (Table).
o Width : Chiu rng ca bng.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 6/68 www.qhonline.info
o Height: Chiêu cao ca bng.
o Align : Các thuc tính trái, phi, gia theo chiu ngang ca bng
o Valign : Các thuc tính trên, di, gia theo chiu dc ca bng.
o Background : Màu nn ca bng b'ng 1 hình nh. (ch có tác d&ng trên ct và
bng).
o Bgcolor : Màu nn bng b'ng nhng màu theo thông s (ch có tác d&ng trên ct
và bng). Ví d&: white, blue, green, red,
o Cellpadding : Khong cách t chân ch n cnh di.
o Cellspacing : Khong cách ca các cnh.
o Rowspan : Gp theo dòng
Ví d& :
o Colspan : Gp theo ct
Ví d&:
* Các thuc tính ca table phía trên u có th
áp d&ng i vi ct (td). Nhng không th
áp d&ng i vi dòng.
Bài Tp Áp Dng: Thit k 1 bng b'ng HTML nh hình bên di :
Th 2 Th 3 Th 4 Th 5 Th 6 Th 7
Toán A1 Anh Vn PHP&MYSQL Kinh t Chính Tr)
Phòng 301 ASP.NET CCNA Vt Lý A1
Yêu c u :
1 – Vit trên HTML, không dùng b"t k* tool h! tr nào.
2 – Thi gian trong 15 phút
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 7/68 www.qhonline.info
III– To Form nhp liu trong HTML :
Form nhp liu c dùng
l"y d liu t phía ngi truy cp, khách hàng,.Thông
qua h thng website. Cú pháp c bn ca Form cng có th$ b t u và kt thúc :
Cú pháp chính :
Ni dung ca form
+ Method : Là phng thc truyn nhn d liu. G#m 2 phng thc là POST và GET.
+ Action : Là ng d+n n liên kt x( lý form.
+ Name : là tên ca Form ó.
C c"u ca Form bao g#m nhng thuc tính sau :
1- Dng Text : (Nh nhp h tên, )a ch, s in Thoi,.)
Cú pháp :
+ Type : Thuc tính có hai loi là Text (khi ngi nhp s th"y c ni dung
ang nhp và Password (ngi nhp s không th"y c ni dung ang nhp)
+ Name : tên ca hp nhp liu (ví d&: name, address, phone,..)
+ Size : Chiu dài ca hp nhp liu.
+ Value: Giá tr) mun hi
n th) (thng vi hp nhp liu thì ít s( d&ng).
2- Dng Vn bn – Textarea : (nh nhp thông tin cá nhân, ghi chú,..)
Cú pháp :
+ Có th$ b t u và kt thúc.
+ Name: Tên ca hp nhp liu.
+ Cols : c xem là chiu rng ca hp nhp liu
+ rows: c xem là chiu cao ca hp nhp liu
3- Dng La Chn : (nh chn la gii tính nam hoc n)
Cú pháp :
+ Type : Radio là )nh dng dành cho s la chn
+ Value : Giá tr) mà chúng ta mun truyn khi user la chn
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 8/68 www.qhonline.info
+ Name : Tên ca )nh dng la chn
+ Thuc tính “checked”. Nu add vào s mc )nh chn la
Ví d&:
Male
Female
T ví d& trên ta th"y nu trong 1 form chn la gii tính. Thì thuc tính “name”
phi ging nhau. , ây. Thuc tính male c la chn mc )nh.
4- Dng Thanh cun : (nh chn quc t)ch Vit Nam,.)
Cú pháp:
La chn
+ Size : là kích thc ca hp thoi mà bn mun. Thng là 1.
+ Name : là tên ca thanh cun "y.
+ Option: là nhng thuc tính bn mun chn
+ Thuc tính “selected” Nu thêm vào s mc )nh chn la.
+ Giá tr) : là thông t bn mun truyn vào khi chúng ta chn la.
Ví d&:
Vit Nam
Trung Quc
, ví d& này chúng ta th"y. Vit Nam là quc gia c la chn.
5- Dng Chn Nhiu : (nh bng ánh d"u s% thích: music, sport, game,..)
Cú Pháp:
+ Type= Checkbox là )nh dng ca hp thoi
+ Tên : là tên ca m&c chn la
+ Giá tr): Là thông s c n truyn vào.
6- Dng Nút Nhn : (nh ch"p nhn hoc làm li,..)
Cú pháp :
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 9/68 www.qhonline.info
Type có hai loi chính là : submit bà reset
+ Submit cho phép g%i d liu lên trình duyt
x( lý.
+ Reset : xóa toàn b d liu t các form trên.
Giá tr): là tên hi
n th) trên nút
Tên : là tên ca nút nh"n.
Bài tp Áp Dng :
Vit lnh hi
n th) 1 form nh bên di :
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 10/68 www.qhonline.info
IV- Các th nâng cao:
1- To ch chy :
Cú pháp c bn : Ni Dung
Mô t : Vn bn n'm gia hai th$ này s di chuy
n tu* theo các giá tr) thuc tính c
thit lp. Mt s thuc tính ca Marquee là:
Direction: Có giá tr) b'ng Left hoc Right là hng chuy
n ng ca vn bn.
ScrollDelay: Giá tr) nguyên dng này là s mili giây vn bn ngng trc khi chuy
n
ng tip. Giá tr) càng nh-, chuy
n ng càng nhanh.
Behavior: Loi chuy
n ng ca text. Scroll, Slide, Alternate
Align With text: on vn bn c canh chnh trong vùng din tích ca marquee. Có 3
giá tr): Top, Middle, Bottom.
Loop: Giá tr) nguyên thit lp s chu k* chuy
n ng ca on vn bn.
Ví d& :
Chào mng bn ã n website ca chúng tôi
2 – S
dng Frame:
B'ng cách dùng frame (khung), ta có th
ng t trang web thành các vùng riêng bit (c(a
s
) và th
hin các tp tin HTML khác nhau trong m!i vùng. Vi cách này, m!i vùng có
th
chuy
n sang trang web khác trong khi các vùng khác v+n không thay
i.
Cú pháp c bn :
<iframe src=”URL” Name=”Tên” Frameborder=”Thông s” height=”Thông s”
width=”thông s” scrolling=”Thông s” allowtransparency>
SRC : URL ca trang mun hi
n th).
Name : Tên ca frame
Frameborder : ng vin ca frame (thng là 0 hoc 1)
Height : chiu cao ca frame
Width : Chiu rng ca frame.
Scrolling : Hi
n th) thanh trt (có 3 thuc tính là “No”, “Yes”, “Auto”).
Allowtransparency: Cho phép background ca frame trong sut.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 11/68 www.qhonline.info
Ví d& :
<iframe src=”test_page.html” Name=”test_frame” Frameborder=”0” height=”300”
width=”300” scrolling=”No” allowtransparency>
3- To danh sách:
HTML có mt tp các th$ cho phép to ra các danh sách dng phân c"p. Có hai dng
danh sách: không có th t và có th t. Các danh sách không có th t là danh sách
dng nút, trong khi ó danh sách có th t thng là danh sách có ánh s. Ta cng có
th
kt hp hai loi này
to ra danh sách phc tp hn.
a) Danh sách có th t :
Các m&c ca mt danh sách có th t c hi
n th) vi các con s thay vì các nút. S(
d&ng th$ (Order List)
thit lp mt danh sách có th t, nh c th
hin trong
on mã sau. Hình nh th
hin cách mà trình duyt hi
n th) on mã này.
Cú Pháp :
Ví d& :
This is the first level-1 item in the list.
This is the second level-1 item in the list.
This is the first level-2 item in the list.
And this is the second level-2 item in the list.
This is the third level-1 item in the list.
b) Danh sách không có th t :
Cú pháp :
Ví d& :
This is the first level header.
This is the first level-1 item in the list.
This is the second level-1 item in the list.
This is the first level-2 item in the list.
And this is the second level-2 item in the list.
This is the third level-1 item in the list.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 12/68 www.qhonline.info
4- S
dng th :
DIV c xem nh là các th$ cha (th$ mang). Chúng r"t hu d&ng trong vic phân chia
các khi vn bn vi ph n xung quanh nó mà không làm nh h%ng n )nh dng ca
riêng nó. Các th$ này thng c dùng vi các )nh dng style sheet CSS và ang c
a chung trong thit k layout ca nhng trang web phc tp.
Ví d& :
Here is some text in a DIV.
V- CASCADING STYLE SHEET (CSS)
)nh ngha v bng ki
u xp ch#ng (css) s( d&ng
tách bit format trang và ni dung
ca trang web. Vi CSS, ta có th
bin
i mi th t kích c., ki
u, màu s c ca vn bn
cho n khong cách gia các ch cái và các dòng, ng biên và ph n m xung quanh
ph n t(, v) trí chính xác ca i tng trên trang.
1-
nh ngha trc tip :
Bng ki
u toàn c&c (hoc bng ki
u c nhúng vào) c kèm theo nh là mt ph n ca
h# s HTML. Loi bng ki
u này xác )nh biên gii ca nó b'ng th$ m% và
th$ óng , nó thng c t trong ph n head ca trang HTML.
Ví d&:
H1 {font-size: 16pt; font-weight: bold; color: red}
H2 {font-style: italic; font-size: 24pt; color: green}
DIV {font-weight: bold; font-style: italic}
This text is in a DIV.
This text is in an H1.
This text is in an H2.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 13/68 www.qhonline.info
Hi
n Th) :
Mô t thu
c tính :
Color: màu ch
Font-size : Kích thc ca ch
Font-style : )nh dng ch (italic : Nghiêng, blod: in m, underline: gch di).
Font-family: Ki
u ch
Background-color : màu nn
Text –decoration: )nh dng link.
+ None : không )nh dng gì c
+ Underline: gch di liên kt.
+ Overline: gch trên liên kt
2-
nh ngha gián tip:
Kh nng )nh dng c cp trong nhng ph n trc không ch dng li % mc
ca mt trang web n mà còn có th
ki
m soát ki
u trên nhiu trang web hay có th
trên
toàn b website b'ng cách s( d&ng bng ki
u liên kt. Mt bng ki
u liên kt (hay bng
ki
u bên ngoài) ch n gin là mt tp tin vn bn, bao g#m nhng )nh ngha ki
u. Tp
tin này c lu vi ph n m% rng là CSS. Tp này (n'm ngoài tp tin HTML) có th
c tham chiu hoc liên kt b%i vn bn HTML b'ng cách s( d&ng th$ ca
trang HTML.
Ví d&: u tiên, s( d&ng notepad
son tho tp tin có ni dung nh sau:
H1 {font-size: 16pt; font-weight: bold; color:red}
H2 {font-style: italic; font-size:24pt ; color:green}
DIV {font-weight: bold; font-style: italic}
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 14/68 www.qhonline.info
Lu tp tin vi tên b"t k* có ph n m% rng là CSS (ví d&: style.css). Cng c n chú ý
r'ng, bng ki
u liên kt này không kèm theo các thành ph n và (tc
trong file CSS không có các th$ này).
Bây gi tp tin to mt file HTML cha mt liên kt n bng ki
u bên ngoài ã )nh
ngha.
Ví d&:
This text is in a DIV.
This text is in an H1.
This text is in an H2.
This is modified H2 text.
Trong ví d& này tp tin s( d&ng th$ trong ph n u ca h# s HTML. Th$ này
cha thuc tính HREF xác )nh v) trí ca tp tin ích. Thuc tính REL s )nh rõ r'ng
liên kt này là mt tham chiu n mt bng ki
u và thuc tính TYPE )nh rõ loi bng
ki
u. Thi i
m hin ti thì text/css là loi bng ki
u c h! tr ph
bin và duy nh"t.
Bng ki
u liên kt có nh h%ng ti h# s HTML ging nh bng ki
u toàn c&c (bng
ki
u nhúng). Mi ph n t( trong h# s HTML mà th$ ca chúng c )nh ngha trong tp
tin style.css s c th
hin b'ng cách s( d&ng ki
u ã c xác )nh.
Vì không n'm trong b"t k* tp tin HTML c bit nào, nên bng ki
u liên kt ngoài có
th
c liên kt vi s lng h# s không gii hn. Ví d&, tp tin có th
to bng ki
u
cho toàn b Website và liên kt tng trang vi bng ki
u ó. Kh nng này r"t hu ích
khi tp tin mun duy trì cách th
hin, cng nh cách cm nhn nh"t quán trên toàn b
website. Nó cng r"t tin li khi mun thay
i cách th
hin t
ng th
ca Website.
3-
nh Ngha Trên 1 Lp:
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 15/68 www.qhonline.info
Là mt bin )nh ngha format ca các thuc tính trong các th$ nhng mi th$ u có th
dùng c.
Cú pháp : .tênlp {các thuc tính}.
Ví d&:
.large
{
font-size: 24pt;
font-style : bold;
font-family : tahoma;
color: green;
Background-color: blue;
}
.small {font-size: 8pt}
The small class on an H2 element.
The large class on a DIV element.
The small class on a P element.
The large class on a B element.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 16/68 www.qhonline.info
Phn B: PHP & MYSQL
Bài 1: T
ng Quan V PHP
I - Gii thiu v PHP.
PHP (Hypertext Preprocessor) là ngôn ng script trên server c thit k
d dàng xây
dng các trang Web ng. Mã PHP có th
thc thi trên Webserver
to ra mã HTML
và xu"t ra trình duyt web theo yêu c u ca ngi s( d&ng.
Ngôn ng PHP ra i nm 1994 Rasmus Lerdorf sau ó c phát tri
n b%i nhiu ngi
tri qua nhiu phiên bn. Phiên bn hin ti là PHP 5 ã c công b 7/2004.
Có nhiu lý do khin cho vic s( d&ng ngôn ng này chim u th xin nêu ra ây mt s
lý do c bn :
- Mã ngu#n m% (open source code)
- Min phí, download d dàng t Internet.
- Ngôn ng r"t d hc, d vit.
- Mã ngu#n không phi s(a li nhiu khi vit chy cho các h iu hành t
Windows, Linux, Unix
- R"t n gin trong vic kt ni vi nhiu ngu#n DBMS, ví d& nh : MySQL,
Microsoft SQL Server 2000, Oracle, PostgreSQL, Adabas, dBase, Empress,
FilePro, Informix, InterBase, mSQL, Solid, Sybase, Velocis và nhiu h thng
CSDL thuc H iu Hành Unix (Unix dbm) cùng b"t c DBMS nào có s h
tr
c ch ODBC (Open Database Connectivity) ví d& nh DB2 ca IBM.
S v lp trình server side ca PHP.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 17/68 www.qhonline.info
• 1: Trình duyt g(i yêu c u ti trang PHP.
• 2: Web server g(i các yêu c u ó ti trình thông d)ch PHP.
• 3-4: Trình thông d)ch PHP thc thi các an mã PHP. Quá trình này có th
liên quan n nhiu tài nguyên nh filesystem, database...
• 5: Kt qu ca quá trình thông d)ch là các mã HTML c tr v cho Server..
• 6: Server g(i mã kt qu HTML v li trình duyt.
II- Kin Thc C bn
1- Cú pháp chính :
PHP cng có th$ b t u và kt thúc ging vi ngôn ng HTML. Ch khác, i vi PHP
chúng ta có nhiu cách
th
hin.
Cách 1 : Cú pháp chính:
Cách 2: Cú pháp ng n gn
Cách 3: Cú pháp ging vi ASP.
Mc dù có 3 cách th
hin. Nhng i vi 1 lp trình viên có kinh nghim thì vic s(
d&ng cách 1 v+n là la chon ti u.
Trong PHP
kt thúc 1 dòng lnh chúng ta s( d&ng d"u “;”
chú thích 1 on d liu nào ó trong PHP ta s( d&ng d"u “//” cho tng dòng. Hoc
dùng cp th$ “/*..*/” cho tng c&m mã lnh.
Ví d&:
<?
Echo “PHP is simple”; //day la vi du ve code PHP
/* Voi cu phap nay chung ta
Co the chu thich 1 cum ma lenh */
?>
2- Xut d liu ra trình duyêt
xu"t d liu ra trình duyt chúng ta có nhng dòng cú pháp sau :
+ Echo “Thông tin”;
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 18/68 www.qhonline.info
+ Printf “Thông tin”;
Thông tin bao g#m : bin, chu!i, hoc lnh HTML .
Ví d& :
<?php
Echo “Hello word”;
Printf”Who Are You ?”;
?>
Nu gia hai chu!i mun liên kt vi nhau ta s( d&ng d"u “.”
Ví d& :
<?php
Echo “Hello”.”who are you ?”;
?>
3- Khái nim bin, hng, chui và các kiu d liu.
a) Bin trong PHP.
Bin c xem là vùng nh d liu tm thi. Và giá tr) có th
thay
i c. Bin c
b t u b'ng ký hiu “$”. Và theo sau chúng là 1 t, 1 c&m t nhng phi vit lin hoc
có gch di.
1 bin c xem là hp l khi nó th-a các yu t :
+ Tên ca bin phi b t u b'ng d"u gch di và theo sau là các ký t, s hay d"u gch
di.
+ Tên ca bin không c phép trùng vi các t khóa ca PHP.
Trong PHP
s( d&ng 1 bin chúng ta thng phi khai báo trc, tuy nhiên i vi các
lp trình viên khi s( d&ng h thng x( lý cùng mt lúc các công vic, ngha là va khái
báo va gán d liu cho bin.
Bn thân bin cng có th
gãn cho các ki
u d liu khác. Và tùy theo ý )nh ca ngi
lp trình mong mun trên chúng.
Mt s ví d& v bin :
$a= 100 // bin a % ây có giá tr) là 100.
$a= “PHP is easy” // Bin a % ây có giá tr) “PHP Is easy”.
Biena=123 //Có l!i vì b t u 1 bin phi có d"u “$”
$123a=”PHP” //Có l!i vì ph n tên b t u ca bin là dng s.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 19/68 www.qhonline.info
b) Khái nim v hng trong PHP.
Nu bin là cái có th
thay
i c thì ngc li h'ng là cái chúng ta không th
thay
i
c. H'ng trong PHP c )nh ngha b%i hàm define theo cú pháp: define (string
tên_h'ng, giá_tr)_h'ng ).
Cng ging vi bin h'ng c xem là hp l thì chúng phi áp ng 1 s yu t :
+ H'ng không có d"u “$” % trc tên.
+ H'ng có th
truy cp b"t c v) trí nào trong mã lnh
+ H'ng ch c phép gán giá tr) duy nh"t 1 l n.
+ H'ng thng vit b'ng ch in
phân bit vi bin
Ví d& :
define (“C”, “COMPANY”);
define (“YELLOW”, “#ffff00”);
c) Khái nim v chui:
Chu!i là mt nhóm các k/ t, s, khong tr ng, d"u ng t c t trong các d"u nháy.
Ví d&:
‘Huy’
“welcome to VietNam”
to 1 bin chu!i, chúng ta phi gán giá tr) chu!i cho 1 bin hp l.
Ví d&:
$fisrt_name= “Nguyen”;
$last_name= ‘Van A’;
liên kt 1 chu!i và 1 bin chúng ta thng s( d&ng d"u “.”
Ví d&:
<?php
$test=”VietNam”;
echo “welcome to”.$test;
echo “welcome to”.$test.””;
?>
d) Kiu d liu trong PHP
Các ki
u d liu khác nhau chim các lng b nh khác nhau và có th
c x( lý theo
cách khác nhau khi chúng c theo tác trong 1 script.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 20/68 www.qhonline.info
Trong PHP chúng ta có 6 ki
u d liu chính nh sau :
Kiu D Liu Ví d Mô T
Integer 10 Mt s nguyên
Double 5.208 Ki
u s thc
String “How are you ?” Mt tp hp các ký t
Boolean True or False Giá tr) true hoc false
Object Hng i tng trong PHP
Array Mng trong PHP, cha các ph n t(.
Chúng ta có th
s( d&ng hàm dng s0n gettype() ca PHP4
ki
m tra ki
u ca b"t k*
bin.
Ví d&:
<?php
$a= 5;
Echo gettype($a); // Integer.
$a=””;
Echo gettype($a); //String
?>
III- Tng Kt:
Sau bài này các bn ã có nhng khái nim u tiên v PHP, các cú pháp, các ki
u d
liu, và cách làm vic vi môi trng PHP nh th nào. , bài sau, chúng ta s tip t&c
tip cn vi các thut toán và cú pháp PHP mt cách rõ ràng và quen thuc trong các
ngôn ng lp trình.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 21/68 www.qhonline.info
Bài 2 : Toán T( Và Bi
u Thc
I – Toán t c bn.
1- Toán t
gán:
Chúng ta ã tng tip xúc vi toán t( này b%i vic kh%i to 1 bin. Nó g#m ký t n =.
Toán t( gán l"y giá tr) ca toán hng bên phi gán nó vào toán hng bên trái.
Ví d&: $name = “Johny Nguyen”;
2- Toán t
s hc:
Ta có bng các phép toán s hc nh sau:
Toán T Lý gii Ví d Kt qu
+ Cng hai s hng 10+8 18
- Tr hai s hng 10-8 2
* Nhân hai s hng 10*8 80
/ Chia hai s hng 10/3 3.33333333
% Tr v s d 10%3 1
3- Toán t
so sánh:
Ta có các phép so sánh c bn nh sau:
Phép Toán Tên Gii Thích Ví D
= = B'ng Hai s hng b'ng nhau $a= =5
!= Không b'ng Hai s hng không b'ng nhau $a != 5
= = = #ng nh"t Hai s b'ng nhau và cùng ki
u $a = = = 5
> Ln hn V trái ln hn v phi $a > 5
>= Ln hn hoc b'ng V trái ln hn hoc b'ng v phi $a >= 5
< Nh- hn V trái nh- hn v phi $a < 5
<= Nh% hn hoc b'ng V trái nh- hn hoc b'ng v phi $a <= 5
4- Toán t
logic
Toán t( logic là các t
hp các giá tr) boolean. Ví d&: toán t( or tr% v true nu toán t(
trái hoc toán t( phi là true.
True || false à true.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 22/68 www.qhonline.info
Ta có bng các toán t( nh sau:
Toán T( Tên Tr v True Nu Ví d& Kt qu
|| Or V trái hoc v phi là True True || false True
Or Or V trái hoc v phi là True True || false True
Xor Xor V trái hoc v phi là True
nhng không phi c hai
True || True False
&& And V trái và v phi là true True && false False
And And V trái và v phi là true True && false False
! Not không phi là true !true False
5- Phép gán kt hp:
Khi to mã PHP, chúng ta s thng nhn th"y c n phi tng hoc gim lng bin mt
s nguyên nào ó. Bn s thng thc hin iu này khi chúng ta m 1 giá tr) nào ó
trong vòng lp.
Phép Toán Ví d Lý Gii
++ $a++ B'ng vi $a= $a + 1
-- $a-- B'ng vi $a= $a – 1
+= $a+=$b B'ng vi $a= $a + $b
-= $a-=$b B'ng vi $a= $a - $b
*= $a*=$b B'ng vi $a= $a * $b
/= $a/=$b B'ng vi $a= $a / $b
II- Các biu thc c bn:
1- Biu thc iu kin:
Cú pháp:If(iu kin)
{
hành ng
}
Ví d&:
<?php
$a=5;
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 23/68 www.qhonline.info
$b=7;
If($a < $b)
{
Echo” Bien A co gia tri nho hon bien B”;
}
Else
{
Echo “Bien A co gia tri lon hon bien B”;
?>
2- Vòng lp trong PHP:
a) While..
Cú pháp:
While(iu kin)
{
Hành ng – thc thi
}
Ví d&:
<?php
$a=1;
While($a < 10)
{
Echo “gia tri $a la”;
$a++;
}
?>
Bài tp áp d&ng:
1- Vit 1 trang web xu"t ra giá tr) t 1->20. Vi )nh dng font màu -, ki
u
Tahoma, canh phi.
2- Vit 1 trang web có giá tr) t 1->20. Hãy xu"t ra trình duyt nhng s ch0n n'm
trong khong 1->20 ó.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 24/68 www.qhonline.info
áp Án:
Câu 1:
<?php
$a=1;
while($a <= 20)
{
echo "$a";
$a++;
}
?>
Câu 2:
<?php
$a=1;
while($a <= 20)
{
if($a%2==0)
echo "$a";
$a++;
}
?>
b) Do......while:
Cú pháp:
Do
{
Hành ng thc thi
}while(iu kin)
Ví d&:
<?php
$a=5;
do{
echo "day la gia tri cua $a";
$a++;
}while($a >6)
?>
c) For..Loop
Cú pháp:
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 25/68 www.qhonline.info
For( giá tr) ; iu kin ; bin tng hoc gim)
{ Hành ng }
Ví d& :
<?php
$a=2;
for($i=1; $i<=10; $i++)
{
echo"$a x $i =".$a*$i."";
}
?>
Bài tp ví d&:
Xây dng 1 website th-a yêu c u xu"t ra bng c(u chng t 2à 10.
áp án:
<?php
for($i=2; $i <= 10; $i++)
{
echo "Bang cuu chuong cua $i";
for($j=1; $j <=10; $j++)
{
echo "$i x $j =".$i*$j."";
}
echo "";
}
?>
d) Phát bi
u switch:
Cú pháp:
Switch(bin)
{
Case giá tr) 1: Hành ng; Break;
Case giá tr) N: Hành ng; Break;
Default: Hành ng; Break;
}
Ví d&:
<?php
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 26/68 www.qhonline.info
$a=5;
switch($a)
{
case 1: echo "day la gia tri $a"; break;
case 2: echo "day la gia tri $a"; break;
case 3: echo "day la gia tri $a"; break;
case 4: echo "day la gia tri $a"; break;
case 5: echo "day la gia tri $a"; break;
default: echo “Khong co gia tri phu hop”; break;
}
?>
III – Tng kt:
Kt thúc bài hc này, các bn ít nhiu ã n m c nhng thuc tính c bn ca các
phép toán hc trong PHP, ngoài ra chúng ta cng tng bc hi
u c cú pháp ca
tng bi
u thc.
i vi các vòng lp, chúng ta c n hi
u và vn chúng mt cách linh hot và mm
d$o, phân bit c while và dowhile. S( d&ng hàm switch trong trng hp có
quá nhiu giá tr) ifelse tr v.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 27/68 www.qhonline.info
Bài 3: Mng Trong PHP (Array)
I- Nhng khái nim c bn:
Chúng ta có th
to 1 mãng vi các ph n t( không #ng nh"t v mt d liu. ây là
mt u i
m ca PHP so vi các loi ngôn ng khác nh C++ hay Java
1- Cách khi to :
có nhiu cách
$countries[] = “cr”;
$countries[] = “de”;
$countries[] = “ca”;
Lu ý : gia tên bin mãng và d"u [] không c cách khong tr ng mà phi vit lin
vi nhau, nu không khi lp trình CT s không báo l!i nhng s cho kt qa sai.
Ch s mc )nh trong kh%i to mãng nu không ch )nh c& th
s là b t u t 0, 1,
2... hoc chúng ta s vit tng minh hn nh sau :
$countries[0] = “cr”;
$countries[1] = “de”;
$countries[2] = “ca”;
Chúng ta cng có th
kh%i to mãng 1 cách không tu n t nh sau :
$countries[50] = “cr”;
$countries[20] = “de”;
$countries[10] = “ca”;
$countries[] = “uk”; // s mang ch s là 51
Hoc :
$countries = array (“cr”, “de”, “us”);
echo ($countries[2]); // s in ra “us”
Nu mun l"y ch s u là 1 ta kh%i to nh sau :
$countries = array (1=> “cr”, “de”, “us”);
echo ($countries[2]); // s in ra “de”
Toán t( => có th
thay
i v) trí
ví d& :
$countries = array (“cr”, 7=>“de”, “us”); /* index 0 là “cr”, index 7 là “de”,
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 28/68 www.qhonline.info
index 8 là “us” */
m s ph n t( ca mãng ta dùng hàm count, nh ví d& % trên nu ta ghi
echo (count ($countries)); // s in ra 3
2-
i vi các mãng loi tun t:
Ta có th
in ra theo on CT sau:
ví d& :
$countries = array (“cr”, “de”, “us”);
$num_elements = count ($countries);
for ($idx = 0; $idx < $num_elements; $idx++) {
echo (“$countries[$idx]” . “”);
}
3-
i vi các mãng loi không tun t:
Cách 1 :
ví d& :
$countries[50] = "cr";
$countries[20] = "de";
$countries[10] = "us";
$countries[] = "uk";
reset ($countries); /* a pointer ca mãng v v) trí khai báo u tiên là index 50 */
while (list ($key, $value) = each ($countries)) {
echo ("Element $key equals $value "); /* L n lt hi
n th) theo th t ã khai
báo ban u là index 50, k tip là index 20 r#i index 10, cui cùng là index 51 */
}
C ch list () : Gán ch s index ca mãng cho i s th nh"t ca list là $key, giá tr)
tng ng vi ch s index ó ca mãng cho i s th hai ca c ch
list () là $value
each () : C m!i l n c gi s di chuy
n pointer ca mãng n thành ph n k tip
ca mãng, gán ch s index ca mãng cho $key và giá tr) tng ng vi ch s index
ó ca mãng cho $value ca c ch list ().
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 29/68 www.qhonline.info
Cách 2 :
Ví d& :
function println ($s) {
echo (“$s ”);
}
$countries = array (“ca”, “cr”, “de”, “us”);
array_walk ($countries, println);
4- Mãng có ch s là ki
u chu!i:
Ví d& :
$countries[“ca”] = “Canada”;
$countries[“uk”] = “United Kingdom”;
$countries[“us”] = “United States”;
$countries[“cr”] = “Costa Rica”;
reset ($countries);
while (list ($key, $value) = each ($countries)) {
echo ("Element $key equals $value ");
}
5- Mãng nhiu chiu:
Ví d& :
$continents = array (“europe”=>array (“de”, “uk”), “north america”=>array (“ca”,
“cr”, “us”));
echo ($continents[“europe”][1]); // in ra “uk”
echo ($continents[“north america”][2]); // in ra “us”
s # bi
u din mãng 2 chiu % trên nh sau :
$continents[“europe”] $continents[“north america”]
[0] [1] [0] [1] [2]
“de” “uk” “ca” “cr” “us”
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 30/68 www.qhonline.info
Phép duyt cho mãng % trên c thc hin nh sau :
ví d& :
while (list ($key1) = each ($continents)) {
echo (“$key1 : ”);
while (list ($key2, $value) = each ($continents[“$key1”])) {
echo (“- $value”);
}
}
II- Các hàm sp xp trên mng:
Quy lut chung trong s p xp mng, chúng u tiên s p s trc, k n là các ký t
d"u, r#i mi n các ký t ch, s p
xp theo alphabetical
1- Khi ch s (index) là s :
Hàm sort () :
Ví d& :
$countries = array (“us”, “uk”, “ca”, “cr”, “de”);
sort ($countries);
while (list ($key, $value) = each ($countries)) {
echo ("Element $key equals $value ");
}
s hin th ra nh sau :
Element 0 equals ca
Element 1 equals cr
Element 2 equals de
Element 3 equals uk
Element 4 equals us
* Ghi Chú: s p xp giá tr) tng theo alphabetical, ch s index b t u t 0.
2- Khi ch s (index) là chui :
Hàm asort () :
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 31/68 www.qhonline.info
Ví d& :
$countries = array (“us”=>“United States”, “uk”=>“United Kingdom”,
“ca”=>“Canada”, “cr”=>“Costa Rica”, “de”=>“Germany”);
asort ($countries);
while (list ($key, $value) = each ($countries)) {
echo ("Element $key equals $value ");
}
Kt qu :
Element ca equals Canada
Element cr equals Costa Rica
Element de equals Germany
Element uk equals United Kingdom
Element us equals United States
hàm asort () gi nguyên ch s chu!i, ch s p xp trên giá tr) chu!i ca ch s chu!i
tng ng.
Các hàm rsort () và arsort () cách thc s( d&ng ging nh hàm sort () và asort ()
nhng s p xp theo hng ngc li vi trt t trc ó.
3- Sp xp tng dn theo ch s (index) :
Hàm ksort () :
Ví d& :
$countries = array (“e”=>“United States”, “d”=>“United Kingdom”,
“c”=>“Canada”, “b”=>“Costa Rica”, “a”=>“Germany”);
ksort ($countries);
while (list ($key, $value) = each ($countries)) {
echo ("Element $key equals $value ");
}
Kt qu :
Element a equals Germany
Element b equals Costa Rica
Element c equals Canada
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 32/68 www.qhonline.info
Element d equals United Kingdom
Element e equals United States
Lu ý : không có hàm s p xp gim d n theo ch s (index), mun s p xp nh th ta
s( d&ng hàm ksort (), r#i sau ó s( d&ng hàm arsort ()
t c m&c ích nêu trên.
4- Hàm sp xp theo quy nh trc c a ng!i s
dng:
a) Ch liên quan n giá tr) tng ng vi ch s (index) :
Hàm usort () : không gi li ch s (index) c
Ví d& :
function by_length ($a, $b) {
$l_a = strlen ($a);
$l_b = strlen ($b);
if ($l_a == $l_b) return 0;
return ($l_a < $l_b) ? –1 : 1;
}
$countries = array (“e”=>“United States”, “d”=>“United Kingdom”,
“c”=>“Canada”, “b”=>“Costa Rica”, “a”=>“Germany”);
usort ($countries, by_length);
while (list ($key, $value) = each ($countries)) {
echo ("Element $key equals $value ");
}
Kt qu :
Element 0 equals Canada
Element 1 equals Germany
Element 2 equals Costa Rica
Element 3 equals United States
Element 4 equals United Kingdom
Vic s( d&ng hàm usort () trong s p xp cho phép ngi s( d&ng a vào quy )nh
s p xp ca riêng h nh trong ví d& trên là v chiu dài ca câu: câu ng n % trên, câu
dài % di, nhng hàm usort () không gi li c ch s (index) nguyên thy nh lúc
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 33/68 www.qhonline.info
ban u ca mãng, mun gi nguyên ch s (index) nh lúc ban u ta hãy s( d&ng
hàm uasort ().
b) Ch liên quan n vic s p xp ch s (index) theo quy )nh trc b%i ngi s(
d&ng : ta s( d&ng hàm uksort () (cách s( d&ng thì tng t nh hàm va hc % trên)
c) Hàm to dãy s nguyên ng+u nhiên trong phm vi t a -> b :
(iu kin: a : integer, b : integer và a < b)
Ví d& : To dãy s nguyên ng+u nhiên trong phm t 1 n 10
$int = range (1, 10);
srand (time ());
suffle ($int);
while (list ( , $num) = each ($int)) {
echo (“$num ”);
}
III – Tng kt:
Qua bài hc này, chúng ta tìm hi
u k/ v các thành ph n ca mng mt chiu, nhiu
chiu và các hàm c bn v
x( lý d liu. Hi
u rõ c"u trúc mng, s s p xp #ng b
s giúp ích cho các bn r"t nhiu trong nhng ng d&ng ln.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 34/68 www.qhonline.info
Bài 4: Hàm Và Gi Li Hàm
I- To Hàm Trong Php:
Ta nên to các hàm vi lý do:
tng tính nh"t quán, tin cy, gim thi gian vit
mã và tng tính mm d$o cho chng trình.
Trong php, hàm (có giá tr) tr v) và th t&c (không có giá tr) tr v) u c gi
chung là hàm. )nh ngha mt hàm c xây dng b%i ngi s( d&ng nh sau:
function tênhàm([thams 1, tham s 2, ...)
{
//Ni dung ph n )nh ngha ca hàm
}
Trong ó: function: là t khoá.
- Tên hàm: Là mt tên hp l c t theo qui t c nh t tên bin và không trùng
vi các tên hàm ã xây dng trong php.
- Mt hàm có th
có mt hay nhiu tham s hay không có tham s nào. Các tham
s (nu có) s không có kèm theo ki
u d liu mà ki
u ca nó s tu* thuc vào
giá tr) nhn c khi gi hàm.
- Ph n ni dung hàm n'm trong cp d"u bao khi {}.
- Hàm s nhn giá tr) tr v thông qua phát bi
u return giátr).
- return; s thoát kh-i hàm và không tr v giá tr) nào.
- return biuthc; s thoát kh-i chng trình và tr v
giá tr) biuthc.
- Hàm có th
t b"t c v) trí nào trong trang và ch c thi hành khi ta thc hin
gi hàm.
Ví d&: Vit hàm ki
m tra xem mt s có phi là s nguyên t hay không. Hàm s
nhn giá tr) tr v: true hay false tng ng vi tham s nhn vào là s nguyên t hay
không.
<?
//Hàm có giá tr) tr v: true/false.
function IsNguyenTo($num)
{
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 35/68 www.qhonline.info
for($i=2; $i<$num; $i++)
if ($num % $i==0) return false;
return true; }
// Hàm không có giá tr) tr v. Kt qu in ngay trong hàm
function IsNguyenTo2($num)
{
$i=2;
$nto = 1;
while ($i<$num)
{
if ($num % $i==0)
{
$nto = 0;
break; //Thoát kh-i while
}
$i++;
}
if ($nto) echo "| " .$num;
}
$ArrNum = array(2, 3, 5, 6, 9, 10, 23, 28, 29);
echo " Danh sach cac so nguyen to trong mang :";
//Duyt qua các ph n t( trong mng
for ($i=0; $i<9; $i++)
//Truyn tham s và gi hàm.
if (IsNguyenTo($ArrNum[$i]))
echo "| ". $ArrNum[$i];
echo "";
for ($i=0; $i<9; $i++)
IsNguyenTo2($ArrNum[$i]);
?>
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 36/68 www.qhonline.info
II- Truyn Các Giá Tr Mc nh:
Các hàm trong php có th
nhn các tham s mc )nh. Các tham s mc )nh khi )nh
nghiã hàm, chúng c gán giá tr). $thams = giátr). Các hàm có tham s mc )nh
nên chuy
n các tham s mc )nh sang phi.
function tênhàm($thams_1, $thams_2 = gíatri_2, $thams_3=giátr)_3)
Các tham s $thams_2 và $thams_3 là các giá tr) mc )nh. Khi gi hàm, nu ta ch
truyn 1 giá tr) cho hàm thì giá tr) ó là ca $thams_1. Các tham s $thams_2 và
$thams_3 nhn các giá tr) là gíatri_2 và giátr)_3.
Ví d&: Hàm function F($num1, $num2 = 5) {} ta s gi F(3) 1 F(3, 5).
III- Truyn Tham Bin Và Tham Tr:
T"t c các ví d& trc, t"t c vic truyn bin u là tham tr).
truyn tham bin
(bin c truyn có th
thay
i ni dung khi ra kh-i hàm), khi gi hàm, ta t thêm
d"u & trc bin c n truyn tham bin.
Ví d&:
<? function F($a, $b)
{
$a = 5;
$b = 5;
echo "Trong ham F(), a = " .$a ." va b= " .$b;
}
$a = 8;
$b = 8;
echo "1. Ngoai ham F(), a = " .$a." va b= " .$b;
//Gi hàm tham tr).
F($a, $b);
echo " 2. Ngoai ham F(), a = " .$a." va b= " .$b;
//Gi hàm vi bin $a là tham bin
F(&$a, $b);
echo " 3. Ngoai ham F() a = " .$a." va b= " .$b;
?>
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 37/68 www.qhonline.info
Kt qu:
1. Ngoai ham F(), a = 8 va b= 8
Trong ham F(), a = 5 va b= 5
2. Ngoai ham F(), a = 8 va b= 8
Trong ham F(), a = 5 va b= 5
3. Ngoai ham F() a = 5 va b= 8
IV- Tm vc ca bin:
Mt bin trong mt hàm ch có phm vi trong hàm ó. Tuy nhiên, nu trong mt hàm,
ta c n truy cp n mt bin mà không thông qua truyn tham s qua gi hàm, ta phi
s( d&ng t khoá global trc bin nh minh ho trong ví d& sau: Hàm local_Func có
truy cp n mt bin ngoài nhng không s( d&ng t khoá global. Ngc li hàm
global_Func cng truy cp n cùng mt bin value, nhng tác ng % hai hàm s
khác nhau.
Ví d&:
<?
function localFunc()
{
$value = 100;
echo “Trong local, value co gia tri la :” + $value;
}
function globalFunc()
{
global $value;
echo “Trong Global, value co gia tri la :” + $value;
}
$value = 5;
echo “1.Gtri bien value = “ . $value;
localFunc();
echo “2.Gtri bien value = “ . $value
globalFunc();
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 38/68 www.qhonline.info
echo “3. Gtri bien value = “ . $value
?>
Kt qu:
1. Gtri bien value = 5
Trong local, value co gia tri la: 100
2.Gtri bien value =5
Global, value co gia tri la :5
3. Gtri bien value = 5
V- S dng li mã PHP:
s( d&ng li mã trong nhiu trang web (các script), ta thng vit các hàm, )nh
ngha các h'ng hay các on mã và lu vào mt file riêng. Khi ó, mt trang php nào
c n s( d&ng các on mã ã vit, có th
chèn vào v) trí c n thit.
chèn mt file có
s0n vào trang web, ta s( d&ng mt trong bn câu lnh sau: include (filename), require
, include_once, require_once.
Ví d&: s chèn file functions.php t cùng th m&c vi
trang ang vit vào ngay v) trí t lnh include.
Ví d&: có file includefile.php có ni dung
<?php
echo 'You have included a file';
?>
To file mainfile.php có ni dung.
<?php
include 'includefile.php';
echo 'I should have included a file.';
?>
File mainfile.php tng ng vi file có ni dung:
<?php
echo 'You have included a file';
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 39/68 www.qhonline.info
echo 'I should have included a file.';
?>
Khác bit gia include, include_once, require, require_once
Include: c file filename vào ngay ti v) trí câu lnh. Trng trng hp không tìm
th"y file filename, Chng trình phát ra cnh báo nhng v+n tip t&c thc thi các câu
lnh sau include.
Require: Thc thi ging include, tuy nhiên khi không tìm th"y filename, chng
trình s không tip t&c thc thi các câu lnh tip theo.
Require_once và Include_once: Làm vic ging nh require và include nhng nó
ch cho phép filename ch c chèn vào trang web mt l n.
VI- Tng kt:
Kt thúc bài hc này, h2n các bn ã có nhng khái nim c bn v hàm và cách s(
d&ng li mã PHP. Trên ng d&ng thc t vic dùng các hàm
triu gi óng vai trò
khá quan trng, nó giúp mã ngu#n ca ngi s( d&ng logic và d dàng chnh s(a hn,
vic ng d&ng nó trên website nh th nào cng s tùy bin hn so vi cách vit trc
tip trên tng file.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 40/68 www.qhonline.info
Bài 5: Làm Vic Vi Chu!i
I- Nhng khái nim c bn:
Trong PHP chu!i c xác )nh theo 3 cách:
+ D"u nháy n : VD: ‘abc’;
+ D"u nháy kép : VD “abc”;
+ Heredoc
Ví d&:
<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
?>
Khuyn khích s( d&ng ki
u nháy kép vì nó h! tr nhiu ký t c bit hn ki
u nháy
n.
1- Ph"ng thc ni chui và ký t c bit trong PHP:
ni 2 chu!i vi nhau, PHP cho phép ngi s( d&ng dùng cú pháp: d"u (.)
ni
hai chu!i vi nhau thành 1 chu!i dài hn.
Ví d&:
<?php
$a=”abc”;
Echo “12345 ”.$a. “mnb”;
?>
x( lý nhng ký t l trong chu!i nh d"u “ hoc $, PHP cung c"p cho ta 1 phng
thc x( lý hiu qu. ó là thêm d"u “\” sau m!i giá tr).
Ví d&:
<?php
Echo “gia tri \$a trong PHP that \“de hieu\” phai khong nao”;
?>
Ta có bng ký t sau:
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 41/68 www.qhonline.info
\n Ký t xung dòng
\r Tr% v u dòng
\t Ký t tab
\\ backslash
\$ dollar sign
\" double-quote
II- Các hàm v chui c bn:
1- Hàm substr() :
cú pháp : string substr (string source, int begin, int length);
tr v 1 chu!i con trong chu!i c n l"y, i s th 3 là tùy chn, v) trí u tiên ca
chu!i c tính là v) trí 0.
ví d& 1:
echo (substr (“christopher”, 1)); // in ra “hristopher”
echo (substr (“christopher”, -2)); // in ra “er”
//Nu i s th hai là s âm nó s m t cui chu!i ngc li phía trc s ký t
b'ng vi giá tr) tuyt i ca s âm ó.
echo (substr (“christopher”, -5, 3)); // in ra “oph”
echo (substr (“christopher”, -3)); // in ra “her”
echo (substr (“christopher”, 2, 3)); // in ra “ris”
echo (substr (“christopher”, 2, -3)); // in ra “ristop”
echo (substr (“christopher”, -6, -3)); // in ra “top”
echo (substr (“christopher”, 7, -8)); // in ra “” chu!i r!ng
2- Hàm strlen():
cú pháp : int strlen (string str);
xác )nh chiu dài ca chu!i
Ví d& :
echo (strlen (“Christopher”)); // in ra s 11
3- Hàm thay #i kiu ch :
+ Hàm strtoupper () :
i ch thng thành hoa
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 42/68 www.qhonline.info
ví d& : strttoupper (“toi”); // in ra “TOI”
+ Hàm strtolower () :
i ch hoa thành thng
ví d& : strlower (“TOI”); // in ra “toi”
+ Hàm ucfirst () :
i ch in ký t u tiên ca câu
ví d& : ucfirst (“in house”); // in ra “In house”
+ Hàm ucwords () :
i ch in ký t u tiên ca m!i t
ví d& : ucwords (“in house”); // in ra “In House”
4- Hàm so sánh chui:
Có th
dùng toán t( so sánh = = (b'ng), !=, , >=, ===
so sánh các chu!i.
Ngoài ra, ta còn có mt s phng thc so sánh chu!i nh sau:
Các hàm strcmp(), strcasecmp(), strnatcmp() s so sánh các chu!i theo phép so sánh
t i
n.
Hàm int strcmp(string S1, string S2): So sánh 2 chu!i S1, S2 có phân bit
hoa/thng. Hàm này tr v giá tr) >0 nu S1>S2, 0 nu S1=S2 và giá tr) <0 nu
S1<S2. Nói chung hàm này có th
s( d&ng ging toán t( so sánh trong bi
u thc.
Hàm int strcasecmp(string S1, string S2): Ging hàm strcmp() nhng không phân bit
ch hoa và ch thng.
Ví d&
<?php
$var1 = "Hello";
$var2 = "hello";
echo “Length $var1:” . strlen($var1);
if (!strcasecmp ($var1, $var2))
echo “$var1 = $var2 in a case-insensitive “
if (strcmp($var1, $var2) >0)
echo “$var1 > $var2”;
if (strcmp($var1, $var2) <0)
echo “$var1 < $var2”;
if (strcmp($var1, $var2) ==0)
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 43/68 www.qhonline.info
echo “$var1 = $var2”;
?>
Kt qu hin th:
Length Hello:5
Hello = hello in a case-insensitive
Hello < hello
5- Hàm tìm kim và thay th chui:
+ Tìm kim chu!i bên trong chu!i :
tìm kim 1 chu!i bên trong 1 chu!i khác, bn
có th
s( d&ng 1 trong 3 hàm strstr (), strchr (), strrchr () hay stristr (), các hàm trên s
tr v chu!i str1, nu tìm th"y chu!i str1 trong chu!i str2, ngc li hàm tr v giá tr)
false, nu có nhiu chu!i con str1 trong str2, thì hàm này ch tìm kim chu!i str1 u
tiên.
Hàm strstr () :
cú pháp : string strstr (string str1, string str2);
ví d& :
<?php
$str = “Your customer service is excellent”;
echo (strstr ($str, “is”) . “”); // is excellent
?>
+ Hàm to chu!i con:Hàm string substr (string S, int start [, int length]): tr v
chu!i con c thành lp t( chu!i S vi các tham s start và length. Nu start >=0:
s tr v chu!i b t u t v) trí start trong S.
Ví d&:
<?php
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>
Nu start <0: s tr v chu!i b t u t v) trí start ca S tính t cui chu!i.
<?php
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 44/68 www.qhonline.info
$rest = substr ("abcdef", -1); // returns "f"
$rest = substr ("abcdef", -2); // returns "ef"
$rest = substr ("abcdef", -3, 1); // returns "d"
?>
Nu length >=0 (giá tr) mc )nh là 0), chu!i tr v có chiu dài length ký t tính t
v) trí start.
Nu length < 0: Chu!i tr v chu!i t start ti v) trí kt thúc cách cui chu!i length ký
t.
+ Hàm thay th chu!i con :
Hàm str_replace () :
Cú pháp : string str_replace (string str1, string str2, string str);
Hàm thay th chu!i S1 b'ng chu!i S2 trong chu!i S. Trong trng hp có nhiu S1
trong S, t"t c các S1 u c thay b%i S2 (thay th t"t c).
<?php
$bodytag = str_replace ("%body%", "black", "");
//$bodytag = "”
?>
Hàm substr_replace () :
Cú pháp : string substr_replace (string str, string replacement, int start, int [length]);
Hàm này s thay th chu!i str b'ng chu!i replacement, ph n nào ca chu!i str c
thay th s tùy thuc vào 2 tham s là start và length.
+ start : v) trí b t u ca chu!i thay th replacement trong chu!i str
Nu start >= 0 : v) trí thay th s c tính t u chu!i tr% i, start tính b'ng n v)
ký t (v) trí th nh"t ca chu!i là 0).
Nu start < 0 : Nó s c tính b t u t cui chu!i.
+length : là tham s tùy chn, cho bit i
m dng vic thay th. Nu không có i s
này thì vic thay th s là t v) trí start n cui chu!i.
Nu length = 0 : vic thay th s là chèn vào v) trí start và ký t trc start
Nu length > 0 : cho bit s ký t mà bn mun thay th vi replacement
Nu length < 0 : cho bit i
m kt thúc vic thay th tính t v) trí cui chu!i tr% li
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 45/68 www.qhonline.info
Các hàm c gii thiu phía trên là nhng hàm thông d&ng và thng s( d&ng.
bit thêm thông tin nhiu hàm hn, các bn có th
truy cp vào website : php.net
l"y thông tin y v các hàm trong chu!i.
III- Tng kt:
, bài này chúng ta ã làm tìm hi
u k/ v ki
u d liu chu!i, nhng hàm ph& tr quan
trng trong vic lp trình ng d&ng nh tìm kim, thay th, so sánh,.i vi PHP
chu!i là mt trong nhng mng có phong phú v các hàm,
s( d&ng tt chúng bn
c n hi
u rõ nguyên t c hot ng ca tng hàm, n m vng c"u trúc c bn trong các
hàm chu!i
t ó chúng ta d dàng vn d&ng chúng trong các ng d&ng ln.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 46/68 www.qhonline.info
Bài 6: Các Thao Tác Trên File
I- C bn v File:
1- M file : S( d&ng hàm fopen ()
Cú pháp : int fopen (string filename, string mode)
i vi h iu hành Unix hay Linux, th m&c gc c )nh ngha b'ng d"u /,
nhng i vi h iu hành Windows, th m&c gc c )nh ngha trên mt
da c&
th
nào ó ví d& nh C:\, d"u phân cách gia các th m&c và tp tin trong Unix hoc
Linux chúng ta s( d&ng d"u /, còn trong windows chúng ta s( d&ng \
ví d& :
trong Linux :
$fl = fopen (“/website/customers.txt”, “w”);
trong Windows :
$fw = fopen (“C:\webdesign\sales.txt”, “r”);
a. Các ch m file :
Mode Din gii
r Read only
r+ Read_Write
w Write Only
w+ Write_Read. Nu file này t#n ti, ni dung c s b)
xoá i, còn nu không t#n ti nó s c to mi
a M% di dng append d liu, ch có write, nu file
t#n ti, s ghi tip vào ph n di ca ni dung có
s0n, nu file không t#n ti s c to mi.
a+ M% di dng append d liu (write và read), nu file
t#n ti, d liu s ghi tip vào ph n bên di ca ni
dung c, nu file không t#n ti s c to mi
b M% di ch file binary
Trong trng hp không bit file n'm % v) trí nào trên h thng, bn có th
khai báo
thêm tham s là s 1 cho hàm fopen () nh sau :
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 47/68 www.qhonline.info
$fw = fopen (“customers.txt”, “a”, 1);
ví d& :
Open File
<?
$f = “C:\thuchanh\vanban.txt”
$fw = fopen ($f, “a”);
?>
b. M file thông qua ftp hay http :
Ví d& :
$f = “ftp://www.qhonline.info/orders.txt”;
$fw = fopen ($f, “a”);
hoc :
$f = “”;
$fw = fopen ($f, “a”);
c. M file và vic s
dng toán t
@ bt li
Xem on chng trình sau ây :
Open file and Debug
<?
$f = “C:\thuchanh\vanban.txt”;
@$fw = fopen ($f, “a”);
if (!$fw) {
echo (“File b) tr&c trc, không m% c”);
}
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 48/68 www.qhonline.info
?>
2-
óng file : hàm fclose ()
Cú pháp : int fclose (int fw)
$fw là bin nhn giá tr) tr v khi gi hàm m% file $fw = fopen (...);
3- Hin th file : hàm fpassthru ()
Cú pháp : int fpassthru (int fw)
Hàm này có th
hi
n th) c file nh
Ví d& :
if (!$fw = fopen (“picture.gif”, “rb”)) {
echo (“could not open file”);
}
else {
fpassthru ($fw);
}
4- c file :
a) Hàm fread ()
Cú pháp : string fread (int fw, int length);
m!i l n c length ký t
Ví d& :
if (!$fw = fopen (“vanban.txt”, “r”)) {
echo (“could not open file”);
}
else {
$text = fread ($fw, 10); // c 10 ký t u ca file
fclose ($fw);
}
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 49/68 www.qhonline.info
Nu nh file có s ký t ít hn length ký t trong fread (), nó s c úng s ký t
ca file.
b) Hàm fgetc ():
Cú pháp : string fgetc (int fw)
c úng 1 ký t ca file. Nu file r!ng (không có ký t) thì nó s tr v mt chu!i
r!ng (false)
c) Hàm fgets ()
Cú pháp : string fgets (int fw, int length);
s dng vic c file khi gp ký t new line hay cui file.
d) Hàm fgetss ()
Cú pháp và hot ng y nh hàm fgets (), nhng các ký t n'm trong cp d"u s b)
loi b- khi c, cho dù vy nó v+n c tính vào chiu dài ca chu!i c.
e) Hàm file ()
Cú pháp : array file (string filename);
m!i dòng ca file c c s là 1 ph n t( ca mãng, dòng u tiên ca file s là
ph n t( 0
Ví d& :
$arrtext = file (“vanban.txt”);
for ($i = 0; $i < count ($arrtext); $i++) {
echo (“ $arrtext[$i] ”);
}
5- Ghi lên file :
Hàm fwrite () và fputs ()
Cú pháp : int fwrite (int fw, string str, int length);
int fputs (int fw, string str, int length);
i s th ba nu không a vào thì toàn b chu!i s c ghi, còn nu a vào i
s th ba thì nó s ghi vào file chu!i str (i th hai) có dài úng b'ng chiu dài
length ca i s th ba.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 50/68 www.qhonline.info
II- Các hàm x lý file:
1- Các hàm dch chuyn hoc qun lý con tr$ m%u tin trong file :
a) Hàm rewind ()
Cú pháp : int rewind (int fw);
a con tr- m3u tin v u file
b) Hàm fseek ()
Cú pháp : int fseek (int fw, int offset);
Di chuy
n con tr- m3u tin n mt v) trí xác )nh trong file
offset : s byte hoc s character tính t u file
Ví d& : fseek ($fw, 1); // di chuy
n n ký t th hai ca file
c) Hàm ftell ()
Cú pháp : int ftell (int fw);
cho bit v) trí hin thi ca con tr- m3u tin
Ví d& :
fseek ($fw, ftell ($fw) + 20); t v) trí hin thi d)ch chuy
n thêm 20 ký t
d) Hàm feof ()
Cú pháp : int feof (int fw);
cho bit v) trí cui file
Ví d& :
if (!$fw = fopen (“vanban.txt”, “r”)) {
echo (“could not open file”);
}
else {
while (!feof ($fw)) {
echo (fgetc ($fw));
}
}
2- Copy, Delete, Rename file:
a) Hàm Copy ()
Cú pháp : int copy (string source, string destination);
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 51/68 www.qhonline.info
b) Hàm unlink ()
Cú pháp : int unlink (string filename);
delete file, file c delete phi óng (không m%)
c) Hàm rename ()
Cú pháp : int rename (string oldname, string newname);
t tên file li
II- Tng kt:
Vic s( d&ng file mt cách thành tho s giúp bn d dàng vn hành các ng d&ng
mang quy mô va và nh- nh: website nhiu ngôn ng, b m,và c nhng công
ngh web mi nh XML mt cách d dàng,
Qua bài hc này chúng ta cng hi
u c nguyên lý hot ng, trình t x( lý 1 file d
liu khi chúng c triu gi trong tài liu PHP.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 52/68 www.qhonline.info
Bài 7: X( Lý Form Trong PHP
I- Tng tác vi ng i s dng:
PHP cho phép ngi s( d&ng tng tác vi chúng thông qua form nhp liu c vit
thu n túy trên HTML. Tuy nhiên
làm c iu "y PHP yêu c u form phi áp
ng 1 s quy )nh chung t ra.
Chúng ta cùng phân tích th$ form trong HTML sau:
Chúng ta th"y r'ng 1 form phi bao g#m:
Tên form
d dàng tách bit vi giá tr) ca chúng.
Action: hành ng chuy
n tip n link x( lý.
Method: Là phng thc truyn bao g#m POST và GET.
Ví d&:
Please type your name here :
Vy làm cách nào
chúng ta l"y c giá tr) va nhp liu nào ?.
PHP cho phép ta l"y giá tr) da vào 2 phng thc POST và GET.
i vi POST ta có : $_POST[‘Giá tr)’]
i vi GET ta có : $_GET[‘Giá tr)’]
Vy vi on code trên có th
l"y c bin x( lý là : $_POST[‘username’];
II- X lý d liu t! trang ng i nhp liu.
1- Ph"ng thc POST:
Phng thc này c s( d&ng
l"y d liu t form nhp liu. Và chuy
n chúng
lên trình ch webserver.
2- Ph"ng thc GET:
Phng thc này cng c dùng
l"y d liu t form nhp liu. Tuy nhiên nhim
v& chính ca nó v+n là l"y ni dung trang d liu t web server.
Bài tp ví d&:
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 53/68 www.qhonline.info
Xây dng 1 trang HTML vi ni dung g#m form nhp liu h và tên. Sau ó dùng 1
file php
xu"t ra thông tin h và tên mà ngi s( d&ng va nhp liu.
áp Án:
To file userform.htm vi ni dung sau:
Please type your name here :
To file processform.php
xu"t ra d liu
<?
echo “Welcome, ” . $_POST[‘username’] . “!”;
?>
Bài tp áp d&ng :
To 1 trang web vi hp thoi nhp liu username và password. Nu ngi s( d&ng
nhp thông tin username/password là admin/12345 thì xu"t ra thông báo “welcome,
admin” vi ki
u ch Tahoma, màu -. Ngc li nu nhp sai thì xu"t thông báo
“Username hoc password sai. Vui lòng nhp li”.
áp án:
To trang login.html vi ni dung sau:
login page
Username
Password
Tip t&c to trang checklogin.php vi ni dung sau:
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 54/68 www.qhonline.info
<?php
$username=$_POST['user'];
$password=$_POST['pass'];
if($username == "admin" && $password="12345")
{
echo "Welcome to, ".$username."";
}
else
{
echo "Username hoac password khong chinh xac,
vui long dang nhap lai";
}
?>
III- Tng Kt:
Kt thúc bài này các bn ã n m c k/ thut ki
m tra thông tin da trên PHP. K/
thut xây dng trang upload, ki
m tra tính hp l ca ngi s( d&ng 1 cách d dàng
b%i s tùy bin trong các bi
u thc ca PHP.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 55/68 www.qhonline.info
Bài 8: Qun Lý Phiên Làm Vic
I- Tng quan v cookie:
Cookie là 1 on d liu c ghi vào a cng hoc b nh ca máy ngi s( d&ng.
Nó c trình duyt g%i ngc lên li server m!i khi browser ti 1 trang web t
server.
Nhng thông tin c lu tr trong cookie hoàn toàn ph& thuc vào website trên
server. M!i website có th
lu tr nhng thông tin khác nhau trong cookie, ví d& thi
i
m l n cui ta ghé thm website, ánh d"u ta ã login hay cha, v.v...
Cookie c to ra b%i website và g%i ti browser, do vy 2 website khác nhau (cho
dù cùng host trên 1 server) s có 2 cookie khác nhau g%i ti browser. Ngoài ra, m!i
browser qun lý và lu tr cookie theo cách riêng ca mình, cho nên 2 browser cùng
truy cp vào 1 website s nhn c 2 cookie khác nhau.
1- Thit l&p cookie trong PHP:
thit lp cookie ta s( d&ng cú pháp:
Setcookie(“tên cookie”,”giá tr)”)
Tên cookie là tên mà chúng ta t cho phiên làm vic.
Giá tr) là thông s ca tên cookie.
Ví d&:
Setcookie(“username”,”admin”)
Nh ví d& trên ta th"y vi tên là username và giá tr) là admin.
Chú ý: K)ch bn cookie phi t trên mi giá tr) tr v bao g#m th$ HTML và lnh
echo.
2- S
dng cookie trong PHP:
s( d&ng li cookie va thit lp, chúng ta s( d&ng cú pháp:
Cú pháp: $_COOKIE[“tên cookies”]
Tên cookie là tên mà chúng ta thit lp phía trên.
Ví d&:
To trang cookie.php vi ni dung sau:
<?php
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 56/68 www.qhonline.info
setcookie("name","Kenny Huy");
?>
Test page 1
Click here
Tip t&c to trang cookie2.php vi ni dung sau:
Result Page
<?php
echo "Ten cua ban la ".$_COOKIE['name']."";
?>
3-
nh dng các tham s khác trong cookie:
Cú pháp c bn:
Setcookie(“Tên Cookie”,”Giá tr)”,”Thi Gian”,”ng d+n”,”Tên min”,”An toàn”
Tên cookie là tên mà chúng ta t cho phiên làm vic.
Giá tr) là thông s ca tên cookie.
Thi gian là thi hn dùng
thit lp s t#n ti ca cookie. c tính theo s giây
so vi mc ngày 1-1-1970. Thng c tính b'ng thi gian hin ti cng vi 1
khong thi gian nào ó mun s( d&ng cookie
ng d+n là th m&c nào thì cookie có tác d&ng.
Tên min là tên trang web mà chúng ta thit lp cookie .
An toàn là s la chn cookie có c g(i theo giao thc HTTPS hay không. Chn 1
là có và 0 là kt ni thông thng(HTTP).
Ví d&:
Setcookie(“user_id”,”1301”,time()+3600,”/”,””,0);
Tên cookie: User_id
Giá tr): 1301
Thi gian: Cookie t#n ti trong 1 gi tính t thi gian thit lp.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 57/68 www.qhonline.info
ng d+n: trên mi th m&c
Tên min: B- qua thuc tính này
An toàn: Ch"p nhn giao thc HTTP(thông thng).
4- H y Cookie:
hy 1 cookie ã c to ta có th
dùng 1 trong 2 cách sau:
a) Cú pháp: setcookie(“Tên cookie”)
Gi hàm setcookie vi ch duy nh"t tên cookie mà thôi
b) Dùng thi gian ht hn cookie là thi i
m trong quá kh.
Ví d&: setcookie(“name”,”Kenny Huy”,time()-3600);
Ví d&:
Tip t&c to trang cookie3.php vi ni dung sau:
<?php
setcookie("name","Kenny Huy",time()-360);
?>
Test page 1
Click here
Bài tp áp dng:
Xây dng website s( d&ng tính nng cookie th-a mãn nhng yêu c u sau:
1- To trang ng nhp vi username/password là : admin/vietchuyen. Nu user
ng nhp thành công thì s xu"t ra dòng welcome, admin.
2- To trang ng xu"t thoát kh-i ph n qun tr)
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 58/68 www.qhonline.info
II- Tng quan v SESSION
Mt cách khác qun lý ngi s( d&ng là session. Session c hi
u là khong thi
gian ngi s( d&ng giao tip vi 1 ng d&ng. Mt session c b t u khi ngi s(
d&ng truy cp vào ng d&ng l n u tiên, và kt thúc khi ngi s( d&ng thoát kh-i
ng d&ng. M!i session s có c c"p mt )nh danh (ID) khác nhau và ni dung
c lu trong th m&c thit lp trong file php.ini (tham s session.save_path).
Trong PHP, session c xem nh mt iu khi
n phía server
lu tr và qun lý
phiên làm vic.
làm c iu này, khi mt ngi s( d&ng truy cp vào mt
website, webserver cung c"p cho ngi s( d&ng mt xâu giá tr) là SessionID gi là
xâu )nh danh- ví d& 9b02405434373d6d96c8db11ed819a60. Gía tr) xâu này mt giá
tr) ng+u nhiên và nó c g(i ti máy ngi s( d&ng thông qua cookie có tên
PHPSESSID. Giá tr) này t#n ti cho n khi nào chu k* sng ca session kt thúc
hoc ngi s( d&ng di chuy
n ti website khác. Chu k* sng ca session do
webserver qui )nh. Ta có th
iu chnh chu k* này khi c"u hình webserver.
Bên phía server, mt tp tin có tên tng ng PHPSESSID cng c to ra. Các
bin session s c lu trong mt tp tin vn bn này và % ti v) trí c qui )nh
trong file php.ini % dòng session.save_path.
1- Thit l&p 1 session trong PHP:
thit lp 1 session ta s( d&ng cú pháp: session_start()
on code này phi c n'm trên các k)ch bn HTML. Hoc nhng lnh echo,
printf.
thit lp 1 giá tr) session, ngoài vic cho phép b t u thc thi session. Chúng ta
còn phi ng ký 1 giá tr) session.
tin cho vic gán giá tr) cho session ó.
Ta có cú pháp sau: session_register(“Name”)
Ví d&:
<?php
Session_start();
Session_register(“username”);
?>
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 59/68 www.qhonline.info
2- S
dng giá tr c a session:
Ging vi cookie.
s( d&ng giá tr) ca session ta s( d&ng mã lnh sau:
Cú pháp: $_SESSION[“name”]
Vi Name là tên mà chúng ta s( d&ng hàm session_register(“name”)
khai báo.
Ví d&:
To trang session.php vi ni dung sau:
<?php
session_start();
session_register("name");
$_SESSION["name"] = "Kenny Huy";
?>
Test page 1
Click here
To trang session2.php vi ni dung sau:
<?
session_start();
?>
Result Page
<?php
echo "Ten cua ban la ".$_SESSION["name"]."";
?>
3- H y b$ session trong PHP:
hy b- giá tr) ca session ta có nhng cách sau:
Session_destroy() // Cho phép hy b- session
Session_unset()// Cho phép hy b- session (bao g#m t"t c nhng gì có liên quan).
Chú ý: Nên c3n trng khi s( d&ng hàm unset.
Ví d&
To trang session3.php vi ni dung sau:
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 60/68 www.qhonline.info
<?php
session_start();
session_destroy();
?>
Test page 1
Click here
Bài tp áp dng:
Xây dng website s( d&ng tính nng session th-a mãn nhng yêu c u sau:
1- To trang ng nhp vi username/password là : admin/vietchuyen. Nu user
ng nhp thành công thì s xu"t ra dòng welcome, admin.
2- To trang ng xu"t thoát kh-i ph n qun tr)
III- Tng Kt:
Sau bài hc này chúng ta ã n m c cách iu khi
n phiên làm vic gia cookie và
session. S( d&ng chúng trong tng trng hp c& th
. T ó có th
áp d&ng
vit
nhng ng d&ng nh- nh ki
m soát ngi ng nhp, làm gi- hàng online,..
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 61/68 www.qhonline.info
Bài 9: T
ng Quan V MYSQL
I- Nhng khái nim c bn:
Mysql là h qun tr) d liu min phí, c tích hp s( d&ng chung vi apache, PHP.
Chính yu t phát tri
n trong cng #ng mã ngu#n m% nên mysql ã qua r"t nhiu s h!
tr ca nhng lp trình viên yêu thích mã ngu#n m%.
1- Cách khi ng và s
dng MYSQL.
Chúng ta s( d&ng command nh sau:
Mysql –hname –uuser –ppass
truy cp vào c s% d liu.
Hoc s( d&ng b appserv
vào nhanh hn theo ng d+n sau:
Start/ Appserv/ Mysql command Line client
Sau ó nhp password mà chúng ta ã t vào.
2- Nh ng nh ngha c" bn:
a)
nh ngha c" s d liu, bng, ct:
C s% d liu: là tên ca c s% d liu chúng ta mun s( d&ng
Bng: Là 1 bng giá tr) n'm trong c s% d liu.
Ct là 1 giá tr) n'm trong bng. Dùng
lu tr các trng d liu.
Thuc tính
Ví d&:
Bng user
User_id 1234
First_name Nguyen
Last_name Hai Anh
Username Haianh123
Password 12345
Email test@yahoo.com
Date 2007-12-12 16:25:30
Nh vy ta có th
hi
u nh sau:
1 c s% d liu có th
bao g#m nhiu bng.
1 bng có th
bao g#m nhiu ct
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 62/68 www.qhonline.info
1 ct có th
có hoc không có nhng thuc tính.
b) )nh ngha 1 s thut ng:
NULL : Giá tr) cho phép r!ng.
AUTO_INCREMENT : Cho phép giá tr) tng d n (t ng).
UNSIGNED : Phi là s nguyên dng
PRIMARY KEY : Cho phép nó là khóa chính trong bng.
c)Loi d liu trong Mysql:
, ây chúng t ch gii thiu 1 s loi thông d&ng: 1 s d liu khác có th
tham kho
trên trang ch ca mysql.
Kiu d liu Mô T
Char )nh dng text có chiu dài t 0->255
Varchar )nh dng text có chiu dài t 0->255
Text )nh dng text có chiu dài 0->65535
Longtext )nh dng text có chiu dài 0->4294967215
INT )nh dng s có chiu dài t 0->4294967215
Float )nh dng s thp phân có chiu dài nh-
Double )nh dng s thp phân có chiu dài ln
Date )nh dng thi gian theo )nh dng: YYYY-MM-DD
DateTime )nh dng thi gian theo )nh dng: YYYY-MM-DD HH:MM:SS
3- Nh ng cú pháp c" bn:
Cú pháp to 1 c s% d liu:
CREATE DATABASE tên_c_s%_d_liu
Cú pháp s( d&ng c s% d liu: Use tên_database;
Cú pháp thoát kh-i c s% d liu: Exit
Cú pháp to 1 bng trong c s% d liu:
CREATE TABLE user ( ,,..)
Ví d&:
mysql> create table user(user_id INT(15) UNSIGNED NOT NULL
AUTO_INCREMENT, user
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 63/68 www.qhonline.info
ame VARCHAR(255) NOT NULL, password CHAR(50) NOT NULL, email
VARCHAR(200) NOT N
LL, PRIMARY KEY (user_id));
Query OK, 0 rows affected (0.01 sec)
Hi
n th) có bao nhiu bng: show tables;
Hi
n th) có bao nhiêu ct trong bng: show columns from table;
Thêm 1 ct vào bng :
ALTER TABLE tên_bng ADD AFTER
Ví d&:
mysql> alter table user add sex varchar(200) NOT NULL after email;
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
II- Nhng cú pháp sql c bn:
1- Thêm giá tr vào bng:
Cú pháp: INSERT INTO Tên_bng(tên_ct) VALUES(Giá_tr)_tng_ng);
Ví d&:
mysql> insert into user(username,password,email,sex,home) values("Lanna","12345"
,"lanna@yahoo.com","F","www.abc.com");
Query OK, 1 row affected (0.00 sec)
2- Truy xut d liu:
Cú pháp: SELECT tên_ct FROM Tên_bng;
Ví d&:
mysql> select user_id,username from user;
3 rows in set (0.00 sec)
4- Truy xut d liu vi iu kin:
Cú pháp: SELECT tên_ct FROM Tên_bng WHERE iu kin;
Ví d&:
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 64/68 www.qhonline.info
mysql> select user_id,username from user where user_id=2;
Bài tp áp dng:
To c s% d liu vi thông tin sau:
ID Fname Lname Email Password Sex Phone
1 Nguyen Van Hoa vanhoa@yahoo.com 12345 F 0903234532
2 Tran Hoa Hoa12@yahoo.com 23456 M 97234512
3 Nguyen Thi Thuy Thuy2a@yahoo.com 24625 F 98374642
4 Hoang Phi Hong phihong@hotmail.com 57265 M 94673257
5 Le Van Lam vanlam@gmail.com 45625 M 93562535
6 Nguyen Cam Nhung cnhung@gmail.com 52672 F 93525135
7 Hoang Phi Yen pyen@gmail.com 63456 F 94754363
Thc hin các công vic sau:
1- To 1 bng vi các ct trên.
2- Nhp liu thông tin theo nh bng trên.
3- Lit kê t"t c thông tin ca nhng ai có sex là female.
4- Lit kê thông tin ca ngi có Lname là “Van Hoa”.
5- Lit kê t"t c thông tin ca nhng ai có sex là male và có h là “Nguyn”.
6- Lit kê fname,lname, email ca nhng ai có s phone “0903234532”.
7- Dùng hàm mã hóa
bo mt password ca ngi dùng.
5- Truy c&p d liu và sp xp theo trình t
Cú pháp:
SELECT tên_ct FROM Tên_bng
WHERE iu kin (có th
có where hoc không)
ORDER BY Theo quy c s p xp.
Trong ó quy c s p xp bao g#m hai thông s là ASC (t trên xung di), DESC (t
di lên trên).
Ví d&:
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 65/68 www.qhonline.info
mysql> select user_id,username from user order by username ASC ;
Câu lnh trên l"y ra thông tin user_id và username t bng user và chúng c s p xp
theo username trình t t trên xung di.
6- Truy c&p d liu có gii hn :
Cú pháp:
SELECT tên_ct FROM Tên_bng
WHERE iu kin (có th
có where hoc không)
LIMIT v) trí b t u, s record mun l"y ra
Ví d&:
mysql> select user_id,username from user order by username ASC limit 0,10 ;
Câu lnh trên l"y ra thông tin user_id và username t bng user. Chúng c s p xp
theo username trình t t trên xung di. Và l"y ra 10 record t v) trí 0.
7- C&p nh&t d liu trong bng:
Cú pháp:
Update tên_bng set tên_ct=Giá tr) mi
WHERE (iu kin).
Nu không có ràng buc iu kin, chúng s cp nht toàn b giá tr) mi ca các record
trong bng.
Ví d&:
mysql> update user set email=”admin@qhonline.info” where user_id=1 ;
8- Xóa d liu trong bng:
Cú pháp:
DELETE FROM tên_bng WHERE (iu kin).
Nu không có ràng buc iu kin, chúng s xó toàn b giá tr) ca các record trong bng.
Ví d&
mysql>delete from user where user_id=1 ;
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 66/68 www.qhonline.info
III- Mysql và PHP:
1- Kt ni c" s d liu:
Cú pháp:
Mysql_connect(“hostname”,”user”,”pass”)
2- La chn c" s d liu:
Cú pháp:
Mysql_select_db(“tên_CSDL”)
Ví d:
$conn=mysql_connect(“localhost”,”root”,”root”) or die(“ khong the ket noi”);
Mysql_select_db(“demo”);
3- Thc thi câu lnh truy vn:
Cú pháp:
Mysql_query(“Câu lnh SQL”)
4-
m s record trong bng:
Cú pháp:
Mysql_num_rows();
5- Ly d liu t' database:
Cú pháp:
Mysql_fetch_array();
Ví d :
<?php
$conn=mysql_connect(“localhost”,”root”,”root”) or die(“ khong the ket noi”);
Mysql_select_db(“demo”);
$sql=”select * from user”;
$query=mysql_query($sql)
if(mysql_num_rows($query) != 0)
{
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 67/68 www.qhonline.info
$row=mysql_fetch_array($query)
}
?>
Bài tp áp dng:
Xu"t thông tin ngi dùng t c s% d liu % bài tp trên b'ng PHP.
ID Fname Lname Email Password Sex Phone
1 Nguyen Van Hoa vanhoa@yahoo.com 12345 F 0903234532
2 Tran Hoa Hoa12@yahoo.com 23456 M 97234512
3 Nguyen Thi Thuy Thuy2a@yahoo.com 24625 F 98374642
4 Hoang Phi Hong phihong@hotmail.com 57265 M 94673257
5 Le Van Lam vanlam@gmail.com 45625 M 93562535
6 Nguyen Cam Nhung cnhung@gmail.com 52672 F 93525135
7 Hoang Phi Yen pyen@gmail.com 63456 F 94754363
IV- Tng kt:
, bài này chúng ta ã làm vic vi sql và các k/ thut kt ni vi database ca PHP. Các
hàm PHP h! tr mysql hin nay có r"t nhiu. Tuy nhiên v tính nng cng nh phng
thc s( d&ng thì chúng cng ging nhau. Do vy các bn không nên lo l ng khi làm vic
vi nhng hàm mà chúng ta ang nghiên cu.
Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy
Trang 68/68 www.qhonline.info
Phn C: Project Training
Vi nhng kin thc ã hc c, bn hãy áp d&ng
xây dng hoàn chnh mt ng
d&ng web c& th
và np chúng cho ging viên ca bn.
Mt s project tiêu bi
u khuyn khích các hc viên làm:
tài 1: Xây dng trang tin tc in t( vi các tính nng chuyên nghip nh (chuyên
m&c tin, tin tc,
Các file đính kèm theo tài liệu này:
- tailieu.pdf