Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Trung Tâm ào T o Công Ngh M ng Vi t Chuyên
Tài Li u L u Hành N i B
www.qhonline.info
GIÁO TRÌNH
PHP & MYSQL
Biên So n:
GV. Bùi Qu c Huy
Trang 1/68
www.qhonline.info
Giáo trình PHP C n B n
L i Nói
Gi ng Viên: Bùi Qu c Huy
u
Quy n giáo trình này
c t ng h p t nh ng tài li u và kinh nghi m th c ti n qua nhi u
n m gi ng d y c a gi ng viên, và
c so n th o cho phù h p v i n i dung môn h c.
Khác v i giáo trình mang tính th
ng m i, các t ng , cách di n gi i mang xu th thu t
ng , giáo trình
c xây d ng trên hình th c d
c, d hi u và g n g i v i th c t , tuy
nhiên i u ó không có ngh a h c viên có th ch tham kh o giáo trình mà không i h c.
N u các b n mu n hi u c n k ki n th c và ý ngh a c a giáo trình, b n nên tham gia các
khóa h c PHP
y
M c dù ã ki m tra
t i trung tâm ào t o m ng Vi t Chuyên.
xác th c, c ng nh tính úng
soan ch c ch n s có ít nhi u l!i liên quan
nhi u s
n c a giáo trình, nh ng khi biên
n t ng , cú pháp. R"t mong nh n
c
óng góp c a các b n.
M i ý ki n óng góp c a các b n vui lòng truy c p vào website: www.qhonline.info (là
website cá nhân c a tác gi ). Ho c www.ddcntt.vn (là website c a trung tâm).
Gi ng viên
Bùi Qu c Huy
TP.H# Chí Minh. Ngày 15 Tháng 06 N m 2006
Trang 2/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Ph n A: C B n V HTML & Javascript
I – Các Th HTML c b n
1- C u trúc chu n:
Tiêu
Website
N i dung website
c vi t t i ây
+ M t c"u trúc HTML luôn bao g#m th$ óng và th$ m%.
Ví d& : Ł th$ M%
Ł Th$ óng -
c phân bi t b'ng d"u / ngay tr
+ Các th$ HTML hoàn toàn có th vi t hoa ho c th
chung (vi t hoa thì vi t hoa h t, ng
c th$
ng. Tuy nhiên nên theo 1 quy t c
c l i).
+ M t website càng ít th$ thì s càng ch y nhanh h n.
2- Các th c b n :
Tiêu
: N i Dung (ví d&:
Welcome, admin
).
Th$ H bao g#m các thu c tính t (H1 H6). Nh ng ch S( d&ng t H1
In
H3.
m: N i Dung (ví d&: Welcome, admin)
In Nghiêng: N i Dung (ví d&: welcome, Admin)
G ch D
i : N i Dung (Ví d&: welcome, Admin)
Xu ng 1 Dòng : - Th$ này không có th$ óng.
Xu ng 2 Dòng :
- Có ho c không th$ óng c ng
c.
)nh D ng Ch B'ng Th$
+ Kích th
c ch : N i Dung
Ví d&: Hello, How Are You ?
+ Ki u Ch : N i Dung
Ví d&: Hello, How Are You ?
+ Màu Ch : N i Dung
Trang 3/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Ví d&: Hello, How Are You ?
T o Liên K t : N i Dung
Ví D&: Hello, Huy
+ M% 1 c(a s m i v i liên k t: TARGET=_BLANK
Ví d&: Hello, Huy
+ M% liên k t ó ngay trên trang hi n th): TARGET=_SEFT
Ví d&: Hello, Huy
)nh d ng thu c tính : ALIGN=LEFT, RIGHT, CENTER, JUSTIFY
+ S( d&ng k t h p v i th$
Ví d&:
N i dung
V n b n s % gi a
+ S( d&ng k t h p v i các th$ khác nh ,
,
,….
Chèn hình nh vào website:
+ 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 v i liên k t.
Ví d& :
T câu l nh trên s cho ra hình def.gif. Tuy nhiên bao b c hình nh ó s có 1
ng vi n.
Ví d&:
T câu l nh trên s cho ra hình def.gif. Nh ng không có vi n xung quanh
+ Hspace : kho ng cách t l ph i c a hình
+ Vspace: kho ng cách t TOP c a hình
n l trái v n b n
n BOTTOM c a v n b n
+ Align : )nh d ng trái, ph i, gi a c a hình (canh l ).
+ Width : Chi u r ng c a t"m hình.
+ Height : Chi u cao c a t"m hình.
II– T o b ng trong HTML :
t o 1 b ng chúng ta nên hình dung
th c thi d h n so v i yêu c u
Trang 4/68
c dòng và c t. Và áp
t 1 s quy lu t,
vi c
t ra.
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
M t b ng bao g#m 2 thu c tính là dòng và c t. V y ta có quy t c
i t b ng tr
có 1 b ng d li u. Ta
c, sau ó k$ dòng và chia c t trên dòng ó…Làm tu n t cho
n h t yêu
c u vi c t o b ng.
1 B ng b t
u và k t thúc s có cú pháp :
1 Dòng b t
u và k t thúc s có cú pháp :
1C tb t
u và k t thúc s có cú pháp :
Ví d&:
A
B
C
D
1
2
3
4
Nh b ng % trên ta s xây d ng nh sau :
+ G#m 1 b ng.
+ G#m 2 dòng
+ G#m 4 c t trên 1 dòng
V y ta có cú pháp t o b ng c b n nh sau :
A
B
C
D
1
2
3
4
Các thu c tính trên B ng (Table).
o Width : Chi u r ng c a b ng.
Trang 5/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
o Height: Chiêu cao c a b ng.
o Align : Các thu c tính trái, ph i, gi a theo chi u ngang c a b ng
o Valign : Các thu c tính trên, d
i, gi a theo chi u d c c a b ng.
o Background : Màu n n c a b ng b'ng 1 hình nh. (ch có tác d&ng trên c t và
b ng).
o Bgcolor : Màu n n b ng b'ng nh ng màu theo thông s (ch có tác d&ng trên c t
và b ng). Ví d&: white, blue, green, red,……
o Cellpadding : Kho ng cách t chân ch
n c nh d
i.
o Cellspacing : Kho ng cách c a các c nh.
o Rowspan : G p theo dòng
Ví d& :
o Colspan : G p theo c t
Ví d&:
* Các thu c tính c a table phía trên
áp d&ng
u có th áp d&ng
i v i c t (td). Nh ng không th
i v i dòng.
Bài T p Áp D ng: Thi t k 1 b ng b'ng HTML nh hình bên d
Th 2
Th 3
Th 4
i:
Th 5
Th 6
Th 7
Kinh t Chính Tr)
Toán A1
Anh V n
PHP&MYSQL
Phòng 301
ASP.NET
CCNA
V t Lý A1
Yêu c u :
1 – Vi t trên HTML, không dùng b"t k* tool h! tr nào.
2 – Th i gian trong 15 phút
Trang 6/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
III– T o Form nh p li u trong HTML :
Form nh p li u
c dùng
l"y d li u t phía ng
i truy c p, khách hàng,….Thông
qua h th ng website. Cú pháp c b n c a Form c ng có th$ b t
u và k t thúc :
Cú pháp chính :
+ Method : Là ph
+ Action : Là
ng th c truy n nh n d li u. G#m 2 ph
ng d+n
ng th c là POST và GET.
n liên k t x( lý form.
+ Name : là tên c a Form ó.
C c"u c a Form bao g#m nh ng thu c tính sau :
1- D ng Text : (Nh nh p h tên, )a ch , s
i n Tho i,….)
Cú pháp :
+ Type : Thu c tính có hai lo i là Text (khi ng
ang nh p và Password (ng
i nh p s th"y
i nh p s không th"y
c n i dung
c n i dung ang nh p)
+ Name : tên c a h p nh p li u (ví d&: name, address, phone,…..)
+ Size : Chi u dài c a h p nh p li u.
+ Value: Giá tr) mu n hi n th) (th
ng v i h p nh p li u thì ít s( d&ng).
2- D ng V n b n – Textarea : (nh nh p thông tin cá nhân, ghi chú,…..)
Cú pháp :
+ Có th$ b t
u và k t thúc.
+ Name: Tên c a h p nh p li u.
+ Cols :
c xem là chi u r ng c a h p nh p li u
+ rows:
c xem là chi u cao c a h p nh p li u
3- D ng L a Ch n : (nh ch n l a gi i tính nam ho c n )
Cú pháp :
+ Type : Radio là )nh d ng dành cho s l a ch n
+ Value : Giá tr) mà chúng ta mu n truy n khi user l a ch n
Trang 7/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
+ Name : Tên c a )nh d ng l a ch n
+ Thu c tính “checked”. N u add vào s m c )nh ch n l a
Ví d&:
Male
Female
T ví d& trên ta th"y n u trong 1 form ch n l a gi i tính. Thì thu c tính “name”
ph i gi ng nhau. , ây. Thu c tính male
c l a ch n m c )nh.
4- D ng Thanh cu n : (nh ch n qu c t)ch Vi t Nam,….)
Cú pháp:
+ Size : là kích th
c c a h p tho i mà b n mu n. Th
ng là 1.
+ Name : là tên c a thanh cu n "y.
+ Option: là nh ng thu c tính b n mu n ch n
+ Thu c tính “selected” N u thêm vào s m c )nh ch n l a.
+ Giá tr) : là thông t b n mu n truy n vào khi chúng ta ch n l a.
Ví d&:
, ví d& này chúng ta th"y. Vi t Nam là qu c gia
c l a ch n.
5- D ng Ch n Nhi u : (nh b ng ánh d"u s% thích: music, sport, game,…..)
Cú Pháp:
+ Type= Checkbox là )nh d ng c a h p tho i
+ Tên : là tên c a m&c ch n l a
+ Giá tr): Là thông s c n truy n vào.
6- D ng Nút Nh n : (nh ch"p nh n ho c làm l i,…..)
Cú pháp :
Trang 8/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Type có hai lo i chính là : submit bà reset
+ Submit cho phép g%i d li u lên trình duy t
x( lý.
+ Reset : xóa toàn b d li u t các form trên.
Giá tr): là tên hi n th) trên nút
Tên : là tên c a nút nh"n.
Bài t p Áp D ng :
Vi t l nh hi n th) 1 form nh bên d
Trang 9/68
i:
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
IV- Các th nâng cao:
1- T o ch ch y :
Cú pháp c b n :
Mô t : V n b n n'm gi a hai th$ này s di chuy n tu* theo các giá tr) thu c tính
c
thi t l p. M t s thu c tính c a Marquee là:
Direction: Có giá tr) b'ng Left ho c Right là h
ScrollDelay: Giá tr) nguyên d
ng c a v n b n.
ng này là s mili giây v n b n ng ng tr
ng ti p. Giá tr) càng nh-, chuy n
Behavior: Lo i chuy n
ng chuy n
c khi chuy n
ng càng nhanh.
ng c a text. Scroll, Slide, Alternate
Align With text: o n v n b n
c canh ch nh trong vùng di n tích c a marquee. Có 3
giá tr): Top, Middle, Bottom.
Loop: Giá tr) nguyên thi t l p s chu k* chuy n
ng c a o n v n b n.
Ví d& :
2 – S d ng Frame:
B'ng cách dùng frame (khung), ta có th ng t trang web thành các vùng riêng bi t (c(a
s ) và th hi n các t p tin HTML khác nhau trong m!i vùng. V i 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 b n :
SRC : URL c a trang mu n hi n th).
Name : Tên c a frame
Frameborder :
ng vi n c a frame (th
ng là 0 ho c 1)
Height : chi u cao c a frame
Width : Chi u r ng c a frame.
Scrolling : Hi n th) thanh tr
t (có 3 thu c tính là “No”, “Yes”, “Auto”).
Allowtransparency: Cho phép background c a frame trong su t.
Trang 10/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Ví d& :
3- T o danh sách:
HTML có m t t p các th$ cho phép t o ra các danh sách d ng phân c"p. Có hai d ng
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
d ng nút, trong khi ó danh sách có th t th
th k t h p hai lo i này
ng là danh sách có ánh s . Ta c ng có
t o ra danh sách ph c t p h n.
a) Danh sách có th t :
Các m&c c a m t danh sách có th t
d&ng th$ (Order List)
c hi n th) v i các con s thay vì các nút. S(
thi t l p m t danh sách có th t , nh
c th hi n trong
o n mã sau. Hình nh th hi n cách mà trình duy t hi n th) o n 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.
Trang 11/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
4- S d ng th
:
DIV
c xem nh là các th$ ch a (th$ mang). Chúng r"t h u d&ng trong vi c phân chia
các kh i v n b n v i ph n xung quanh nó mà không làm nh h %ng
riêng nó. Các th$ này th
ng
n )nh d ng c a
c dùng v i các )nh d ng style sheet CSS và ang
c
a chu ng trong thi t k layout c a nh ng trang web ph c t p.
Ví d& :
Here is
some text
in a DIV.
V- CASCADING STYLE SHEET (CSS)
)nh ngh a v b ng ki u x p ch#ng (css) s( d&ng
c a trang web. V i CSS, ta có th bi n
cho
i m i th t kích c., ki u, màu s c c a v n b n
n kho ng cách gi a các ch cái và các dòng,
ph n t(, v) trí chính xác c a
1-
tách bi t format trang và n i dung
it
ng biên và ph n
m xung quanh
ng trên trang.
nh ngh a tr c ti p :
B ng ki u toàn c&c (ho c b ng ki u
c nhúng vào)
c kèm theo nh là m t ph n c a
h# s HTML. Lo i b ng ki u này xác )nh biên gi i c a nó b'ng th$ m% , nó th
ng
c
t trong ph n head c a trang HTML.
Ví d&:
This text is in a DIV.
This text is in an H1.
This text is in an H2.
Trang 12/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Hi n Th) :
Mô t thu c tính :
Color: màu ch
Font-size : Kích th
c c a ch
Font-style : )nh d ng ch (italic : Nghiêng, blod: in
m, underline: g ch d
i).
Font-family: Ki u ch
Background-color : màu n n
Text –decoration: )nh d ng link.
+ None : không )nh d ng gì c
+ Underline: g ch d
i liên k t.
+ Overline: g ch trên liên k t
2-
nh ngh a gián ti p:
Kh n ng )nh d ng
c a m t trang web
c
c p trong nh ng ph n tr
c không ch d ng l i % m c
n mà còn có th ki m soát ki u trên nhi u trang web hay có th trên
toàn b website b'ng cách s( d&ng b ng ki u liên k t. M t b ng ki u liên k t (hay b ng
ki u bên ngoài) ch
tin này
n gi n là m t t p tin v n b n, bao g#m nh ng )nh ngh a ki u. T p
c l u v i ph n m% r ng là CSS. T p này (n'm ngoài t p tin HTML) có th
c tham chi u ho c liên k t b%i v n b n HTML b'ng cách s( d&ng th$ c a
trang HTML.
Ví d&:
u tiên, s( d&ng notepad
so n th o t p tin có n i 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}
Trang 13/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
L u t p tin v i tên b"t k* có ph n m% r ng là CSS (ví d&: style.css). C ng c n chú ý
r'ng, b ng ki u liên k t này không kèm theo các thành ph n (t c
trong file CSS không có các th$ này).
Bây gi t p tin t o m t file HTML ch a m t liên k t
n b ng ki u bên ngoài ã )nh
ngh a.
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 t p tin s( d&ng th$ trong ph n
u c a h# s HTML. Th$ này
ch a thu c tính HREF xác )nh v) trí c a t p tin ích. Thu c tính REL s
liên k t này là m t tham chi u
)nh rõ r'ng
n m t b ng ki u và thu c tính TYPE )nh rõ lo i b ng
ki u. Th i i m hi n t i thì text/css là lo i b ng ki u
c h! tr ph bi n và duy nh"t.
B ng ki u liên k t có nh h %ng t i h# s HTML gi ng nh b ng ki u toàn c&c (b ng
ki u nhúng). M i ph n t( trong h# s HTML mà th$ c a chúng
tin style.css s
c th hi n b'ng cách s( d&ng ki u ã
Vì không n'm trong b"t k* t p tin HTML
th
c liên k t v i s l
c )nh ngh a trong t p
c xác )nh.
c bi t nào, nên b ng ki u liên k t ngoài có
ng h# s không gi i h n. Ví d&, t p tin có th t o b ng ki u
cho toàn b Website và liên k t t ng trang v i b ng ki u ó. Kh n ng này r"t h u ích
khi t p tin mu n duy trì cách th hi n, c ng nh cách c m nh n nh"t quán trên toàn b
website. Nó c ng r"t ti n l i khi mu n thay
3-
i cách th hi n t ng th c a Website.
nh Ngh a Trên 1 L p:
Trang 14/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Là m t bi n )nh ngh a format c a các thu c tính trong các th$ nh ng m i th$
dùng
u có th
c.
Cú pháp : .tênl p {các thu c tính}.
Ví d&:
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.
Trang 15/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Ph n B: PHP & MYSQL
Bài 1: T ng Quan V PHP
I - Gi i thi u v PHP.
PHP (Hypertext Preprocessor) là ngôn ng script trên server
d ng các trang Web
ng. Mã PHP có th th c thi trên Webserver
và xu"t ra trình duy t web theo yêu c u c a ng
Ngôn ng PHP ra
c thi t k
d dàng xây
t o ra mã HTML
i s( d&ng.
i n m 1994 Rasmus Lerdorf sau ó
tr i qua nhi u phiên b n. Phiên b n hi n t i là PHP 5 ã
c phát tri n b%i nhi u ng
i
c công b 7/2004.
Có nhi u lý do khi n cho vi c s( d&ng ngôn ng này chi m u th xin nêu ra ây m t s
lý do c b n :
-
Mã ngu#n m% (open source code)
-
Mi n phí, download d dàng t Internet.
-
Ngôn ng r"t d h c, d vi t.
-
Mã ngu#n không ph i s(a l i nhi u khi vi t ch y cho các h
i u hành t
Windows, Linux, Unix
-
R"t
n gi n trong vi c k t n i v i nhi u ngu#n DBMS, ví d& nh : MySQL,
Microsoft SQL Server 2000, Oracle, PostgreSQL, Adabas, dBase, Empress,
FilePro, Informix, InterBase, mSQL, Solid, Sybase, Velocis và nhi u h th ng
CSDL thu c H
i u 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 c a IBM.
S
v l p trình server side c a PHP.
Trang 16/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
•
1: Trình duy t g(i yêu c u t i trang PHP.
•
2: Web server g(i các yêu c u ó t i trình thông d)ch PHP.
•
3-4: Trình thông d)ch PHP th c thi các
liên quan
an mã PHP. Quá trình này có th
n nhi u tài nguyên nh filesystem, database...
•
5: K t qu c a quá trình thông d)ch là các mã HTML
•
6: Server g(i mã k t qu HTML v l i trình duy t.
c tr v cho Server..
II- Ki n Th c C b n
1- Cú pháp chính :
PHP c ng có th$ b t
u và k t thúc gi ng v i ngôn ng HTML. Ch khác,
chúng ta có nhi u cách
i v i PHP
th hi n.
Cách 1 : Cú pháp chính:
Cách 2: Cú pháp ng n g n
Mã l nh PHP ?>
Cách 3: Cú pháp gi ng v i ASP.
<% Mã l nh PHP %>
M c dù có 3 cách th hi n. Nh ng
i v i 1 l p trình viên có kinh nghi m thì vi c s(
d&ng cách 1 v+n là l a chon t i u.
Trong PHP
k t thúc 1 dòng l nh chúng ta s( d&ng d"u “;”
chú thích 1 o n d li u nào ó trong PHP ta s( d&ng d"u “//” cho t ng dòng. Ho c
dùng c p th$ “/*……..*/” cho t ng c&m mã l nh.
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- Xu t d li u ra trình duyêt
xu"t d li u ra trình duy t chúng ta có nh ng dòng cú pháp sau :
+ Echo “Thông tin”;
Trang 17/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
+ Printf “Thông tin”;
Thông tin bao g#m : bi n, chu!i, ho c l nh HTML ….
Ví d& :
Who Are You ?”;
?>
N u gi a hai chu!i mu n liên k t v i nhau ta s( d&ng d"u “.”
Ví d& :
3- Khái ni m bi n, h ng, chu i và các ki u d li u.
a) Bi n trong PHP.
Bi n
b t
c xem là vùng nh d li u t m th i. Và giá tr) có th thay
c. Bi n
c
u b'ng ký hi u “$”. Và theo sau chúng là 1 t , 1 c&m t nh ng ph i vi t li n ho c
có g ch d
1 bi n
i.
c xem là h p l khi nó th-a các y u t :
+ Tên c a bi n ph i b t
d
i
u b'ng d"u g ch d
i và theo sau là các ký t , s hay d"u g ch
i.
+ Tên c a bi n không
Trong PHP
c phép trùng v i các t khóa c a PHP.
s( d&ng 1 bi n chúng ta th
l p trình viên khi s( d&ng h th
ng ph i khai báo tr
c, tuy nhiên
i v i các
ng x( lý cùng m t lúc các công vi c, ngh a là v a khái
báo v a gán d li u cho bi n.
B n thân bi n c ng có th gãn cho các ki u d li u khác. Và tùy theo ý )nh c a ng
i
l p trình mong mu n trên chúng.
M t s ví d& v bi n :
$a= 100 // bi n a % ây có giá tr) là 100.
$a= “PHP is easy” // Bi n a % ây có giá tr) “PHP Is easy”.
Biena=123 //Có l!i vì b t
u 1 bi n ph i có d"u “$”
$123a=”PHP” //Có l!i vì ph n tên b t
Trang 18/68
u c a bi n là d ng s .
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
b) Khái ni m v h ng trong PHP.
N u bi n là cái có th thay
c. H'ng trong PHP
i
c thì ng
c l i h'ng là cái chúng ta không th thay
i
c )nh ngh a b%i hàm define theo cú pháp: define (string
tên_h'ng, giá_tr)_h'ng ).
C ng gi ng v i bi n h'ng
c xem là h p l thì chúng ph i áp ng 1 s y u t :
+ H'ng không có d"u “$” % tr
c tên.
+ H'ng có th truy c p b"t c v) trí nào trong mã l nh
+ H'ng ch
+ H'ng th
c phép gán giá tr) duy nh"t 1 l n.
ng vi t b'ng ch in
phân bi t v i bi n
Ví d& :
define (“C”, “COMPANY”);
define (“YELLOW”, “#ffff00”);
c) Khái ni m v chu i:
Chu!i là m t nhóm các k/ t , s , kho ng tr ng, d"u ng t
c
t trong các d"u nháy.
Ví d&:
‘Huy’
“welcome to VietNam”
t o 1 bi n chu!i, chúng ta ph i gán giá tr) chu!i cho 1 bi n h p l .
Ví d&:
$fisrt_name= “Nguyen”;
$last_name= ‘Van A’;
liên k t 1 chu!i và 1 bi n chúng ta th
ng s( d&ng d"u “.”
Ví d&:
welcome to”.$test.” ”;
?>
d) Ki u d li u trong PHP
Các ki u d li u khác nhau chi m các l
cách khác nhau khi chúng
Trang 19/68
ng b nh khác nhau và có th
c x( lý theo
c theo tác trong 1 script.
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Trong PHP chúng ta có 6 ki u d li u chính nh sau :
Ki u D Li u
Ví d
Mô T
Integer
10
M t s nguyên
Double
5.208
Ki u s th c
String
“How are you ?”
M t t p h p các ký t
Boolean
True or False
Giá tr) true ho c false
Object
H
Array
M ng trong PHP, ch a các ph n t(.
ng
it
ng trong PHP
Chúng ta có th s( d&ng hàm d ng s0n gettype() c a PHP4
ki m tra ki u c a b"t k*
bi n.
Ví d&:
”;
Echo gettype($a); //String
?>
III- T ng K t:
Sau bài này các b n ã có nh ng khái ni m
li u, và cách làm vi c v i môi tr
u tiên v PHP, các cú pháp, các ki u d
ng PHP nh th nào. , bài sau, chúng ta s ti p t&c
ti p c n v i các thu t toán và cú pháp PHP m t cách rõ ràng và quen thu c trong các
ngôn ng l p trình.
Trang 20/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Bài 2 : Toán T( Và Bi u Th c
I – Toán t c b n.
1- Toán t gán:
Chúng ta ã t ng ti p xúc v i toán t( này b%i vi c kh%i t o 1 bi n. Nó g#m ký t
n =.
Toán t( gán l"y giá tr) c a toán h ng bên ph i gán nó vào toán h ng bên trái.
Ví d&: $name = “Johny Nguyen”;
2- Toán t s h c:
Ta có b ng các phép toán s h c nh sau:
Toán T
Lý gi i
Ví d
K t qu
+
C ng hai s h ng
10+8
18
-
Tr hai s h ng
10-8
2
*
Nhân hai s h ng
10*8
80
/
Chia hai s h ng
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 b n nh sau:
Phép Toán
Tên
Gi i Thích
Ví D
==
B'ng
Hai s h ng b'ng nhau
$a= =5
!=
Không b'ng
Hai s h ng không b'ng nhau
$a != 5
===
#ng nh"t
Hai s b'ng nhau và cùng ki u
$a = = = 5
>
L nh n
V trái l n h n v ph i
$a > 5
>=
L n h n ho c b'ng
V trái l n h n ho c b'ng v ph i
$a >= 5
<
Nh- h n
V trái nh- h n v ph i
$a < 5
<=
Nh% h n ho c b'ng
V trái nh- h n ho c b'ng v ph i
$a <= 5
4- Toán t logic
Toán t( logic là các t h p các giá tr) boolean. Ví d&: toán t( or tr% v true n u toán t(
trái ho c toán t( ph i là true.
True || false
Trang 21/68
true.
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Ta có b ng các toán t( nh sau:
Toán T(
Tên
Tr v True N u
Ví d&
K t qu
||
Or
V trái ho c v ph i là True
True || false
True
Or
Or
V trái ho c v ph i là True
True || false
True
Xor
Xor
V trái ho c v ph i là True
True || True
False
nh ng không ph i c hai
&&
And
V trái và v ph i là true
True && false
False
And
And
V trái và v ph i là true
True && false
False
!
Not
không ph i là true
!true
False
5- Phép gán k t h p:
Khi t o mã PHP, chúng ta s th
s nguyên nào ó. B n s th
ng nh n th"y c n ph i t ng ho c gi m l
ng th c hi n i u này khi chúng ta
ng bi n m t
m 1 giá tr) nào ó
trong vòng l p.
Phép Toán
Ví d
Lý Gi i
++
$a++
B'ng v i $a= $a + 1
--
$a--
B'ng v i $a= $a – 1
+=
$a+=$b
B'ng v i $a= $a + $b
-=
$a-=$b
B'ng v i $a= $a - $b
*=
$a*=$b
B'ng v i $a= $a * $b
/=
$a/=$b
B'ng v i $a= $a / $b
II- Các bi u th c c b n:
1- Bi u th c i u ki n:
Cú pháp:If( i u ki n)
{
hành
ng
}
Ví d&:
2- Vòng l p trong PHP:
a) While…..
Cú pháp:
While( i u ki n)
{
Hành
ng – th c thi
}
Ví d&:
Bài t p áp d&ng:
1- Vi t 1 trang web xu"t ra giá tr) t 1->20. V i )nh d ng font màu -, ki u
Tahoma, canh ph i.
2- Vi t 1 trang web có giá tr) t 1->20. Hãy xu"t ra trình duy t nh ng s ch0n n'm
trong kho ng 1->20 ó.
Trang 23/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
áp Án:
Câu 1:
$a";
$a++;
}
?>
Câu 2:
$a";
$a++;
}
?>
b) Do......while:
Cú pháp:
Do
{
Hành
ng th c thi
}while( i u ki n)
Ví d&:
6)
?>
c) For…..Loop
Cú pháp:
Trang 24/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
For( giá tr) ; i u ki n ; bi n t ng ho c gi m)
{ Hành
ng }
Ví d& :
";
}
?>
Bài t p ví d&:
Xây d ng 1 website th-a yêu c u xu"t ra b ng c(u ch
ng t 2 10.
áp án:
";
for($j=1; $j <=10; $j++)
{
echo "$i x $j =".$i*$j." ";
}
echo "
";
}
?>
d) Phát bi u switch:
Cú pháp:
Switch(bi n)
{
Case giá tr) 1: Hành
ng; Break;
…………
Case giá tr) N: Hành
Default: Hành
ng; Break;
ng; Break;
}
Ví d&:
day la gia tri $a"; break;
default: echo “Khong co gia tri phu hop”; break;
}
?>
III – T ng k t:
K t thúc bài h c này, các b n ít nhi u ã n m
c nh ng thu c tính c b n c a các
phép toán h c trong PHP, ngoài ra chúng ta c ng t ng b
c hi u
c cú pháp c a
t ng bi u th c.
i v i các vòng l p, chúng ta c n hi u và v n chúng m t cách linh ho t và m m
d$o, phân bi t
c while và do…while. S( d&ng hàm switch trong tr
ng h p có
quá nhi u giá tr) if…else tr v .
Trang 26/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Bài 3: M ng Trong PHP (Array)
I- Nh ng khái ni m c b n:
Chúng ta có th t o 1 mãng v i các ph n t( không #ng nh"t v m t d li u. ây là
m t u i m c a PHP so v i các lo i ngôn ng khác nh C++ hay Java
1- Cách kh i t o :
có nhi u cách
$countries[] = “cr”;
$countries[] = “de”;
$countries[] = “ca”;
L u ý : gi a tên bi n mãng và d"u [] không
c cách kho ng tr ng mà ph i vi t li n
v i nhau, n u không khi l p trình CT s không báo l!i nh ng s cho k t q a sai.
Ch s m c )nh trong kh%i t o mãng n u không ch
2... ho c chúng ta s vi t t
)nh c& th s là b t
u t 0, 1,
ng minh h n nh sau :
$countries[0] = “cr”;
$countries[1] = “de”;
$countries[2] = “ca”;
Chúng ta c ng có th kh%i t o 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
Ho c :
$countries = array (“cr”, “de”, “us”);
echo ($countries[2]); // s in ra “us”
N u mu n l"y ch s
u là 1 ta kh%i t o 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”,
Trang 27/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
index 8 là “us” */
m s ph n t( c a mãng ta dùng hàm count, nh ví d& % trên n u ta ghi
echo (count ($countries)); // s in ra 3
2-
i v i các mãng lo i tu n t :
Ta có th in ra theo o n 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 v i các mãng lo i không tu n t :
Cách 1 :
ví d& :
$countries[50] = "cr";
$countries[20] = "de";
$countries[10] = "us";
$countries[] = "uk";
reset ($countries); /*
a pointer c a 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 l
báo ban
t hi n th) theo th t
ã khai
u là index 50, k ti p là index 20 r#i index 10, cu i cùng là index 51 */
}
C ch list () : Gán ch s index c a mãng cho
t
ng ng v i ch s index ó c a mãng cho
i s th nh"t c a list là $key, giá tr)
i s th hai c a c ch
list () là $value
each () : C m!i l n
c g i s di chuy n pointer c a mãng
c a mãng, gán ch s index c a mãng cho $key và giá tr) t
n thành ph n k ti p
ng ng v i ch s index
ó c a mãng cho $value c a c ch list ().
Trang 28/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
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 nhi u chi u:
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 di n mãng 2 chi u % trên nh sau :
$continents[“europe”]
$continents[“north america”]
[0]
[1]
[0]
[1]
[2]
“de”
“uk”
“ca”
“cr”
“us”
Trang 29/68
www.qhonline.info
Giáo trình PHP C n B n
Phép duy t cho mãng % trên
Gi ng Viên: Bùi Qu c Huy
c th c hi n 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 s p x p trên m ng:
Quy lu t chung trong s p x p m ng, chúng u tiên s p s tr
d"u, r#i m i
c, k
n là các ký t
n các ký t ch , s p
x p 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 hi n 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 x p giá tr) t ng theo alphabetical, ch s index b t
u t 0.
2- Khi ch s (index) là chu i :
Hàm asort () :
Trang 30/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
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 ");
}
K t 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 x p trên giá tr) chu!i c a ch s chu!i
t
ng ng.
Các hàm rsort () và arsort () cách th c s( d&ng gi ng nh hàm sort () và asort ()
nh ng s p x p theo h
ng ng
c l i v i tr t t tr
c ó.
3- S p x p t ng d n 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 ");
}
K t qu :
Element a equals Germany
Element b equals Costa Rica
Element c equals Canada
Trang 31/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Element d equals United Kingdom
Element e equals United States
L u ý : không có hàm s p x p gi m d n theo ch s (index), mu n s p x p nh th ta
s( d&ng hàm ksort (), r#i sau ó s( d&ng hàm arsort ()
4- Hàm s p x p theo quy
a) Ch liên quan
nh tr
n giá tr) t
t
c m&c ích nêu trên.
c c a ng !i s d ng:
ng ng v i ch s (index) :
Hàm usort () : không gi l i 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 ");
}
K t qu :
Element 0 equals Canada
Element 1 equals Germany
Element 2 equals Costa Rica
Element 3 equals United States
Element 4 equals United Kingdom
Vi c s( d&ng hàm usort () trong s p x p cho phép ng
i s( d&ng
a vào quy )nh
s p x p c a riêng h nh trong ví d& trên là v chi u dài c a câu: câu ng n % trên, câu
dài % d
Trang 32/68
i, nh ng hàm usort () không gi l i
c ch s (index) nguyên th y nh lúc
www.qhonline.info
Giáo trình PHP C n B n
ban
Gi ng Viên: Bùi Qu c Huy
u c a mãng, mu n 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 vi c s p x p ch s (index) theo quy )nh tr
d&ng : ta s( d&ng hàm uksort () (cách s( d&ng thì t
c b%i ng
i s(
ng t nh hàm v a h c % trên)
c) Hàm t o dãy s nguyên ng+u nhiên trong ph m vi t a -> b :
( i u ki n: a : integer, b : integer và a < b)
Ví d& : T o dãy s nguyên ng+u nhiên trong ph m t 1
n 10
$int = range (1, 10);
srand (time ());
suffle ($int);
while (list ( , $num) = each ($int)) {
echo (“$num ”);
}
III – T ng k t:
Qua bài h c này, chúng ta tìm hi u k/ v các thành ph n c a m ng m t chi u, nhi u
chi u và các hàm c b n v x( lý d li u. Hi u rõ c"u trúc m ng, s s p x p #ng b
s giúp ích cho các b n r"t nhi u trong nh ng ng d&ng l n.
Trang 33/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Bài 4: Hàm Và G i L i Hàm
I- T o Hàm Trong Php:
Ta nên t o các hàm v i lý do:
t ng tính nh"t quán,
mã và t ng tính m m d$o cho ch
tin c y, gi m th i gian vi t
ng trình.
Trong php, hàm (có giá tr) tr v ) và th t&c (không có giá tr) tr v )
chung là hàm. )nh ngh a m t hàm
c xây d ng b%i ng
u
cg i
i s( d&ng nh sau:
function tênhàm([thams 1, tham s 2, ...)
{
//N i dung ph n )nh ngh a c a hàm
}
Trong ó: function: là t khoá.
- Tên hàm: Là m t tên h p l
c
t theo qui t c nh
t tên bi n và không trùng
v i các tên hàm ã xây d ng trong php.
- M t hàm có th có m t hay nhi u tham s hay không có tham s nào. Các tham
s (n u có) s không có kèm theo ki u d li u mà ki u c a nó s tu* thu c vào
giá tr) nh n
c khi g i hàm.
- Ph n n i dung hàm n'm trong c p d"u bao kh i {}.
- Hàm s nh n 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 bi uth c; s thoát kh-i ch
- Hàm có th
ng trình và tr v giá tr) bi uth c.
t b"t c v) trí nào trong trang và ch
c thi hành khi ta th c hi n
g i hàm.
Ví d&: Vi t hàm ki m tra xem m t s có ph i là s nguyên t hay không. Hàm s
nh n giá tr) tr v : true hay false t
ng ng v i tham s nh n vào là s nguyên t
hay
không.
//Hàm có giá tr) tr v : true/false.
function IsNguyenTo($num)
{
Trang 34/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
for($i=2; $i<$num; $i++)
if ($num % $i==0) return false;
return true;
}
// Hàm không có giá tr) tr v . K t 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 : ";
//Duy t qua các ph n t( trong m ng
for ($i=0; $i<9; $i++)
//Truy n tham s và g i hàm.
if (IsNguyenTo($ArrNum[$i]))
echo "| ". $ArrNum[$i];
echo " ";
for ($i=0; $i<9; $i++)
IsNguyenTo2($ArrNum[$i]);
?>
Trang 35/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
II- Truy n Các Giá Tr M c
nh:
Các hàm trong php có th nh n các tham s m c )nh. Các tham s m c )nh khi )nh
nghiã hàm, chúng
c gán giá tr). $thams = giátr). Các hàm có tham s m c )nh
nên chuy n các tham s m c )nh sang ph i.
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) m c )nh. Khi g i hàm, n u ta ch
truy n 1 giá tr) cho hàm thì giá tr) ó là c a $thams _1. Các tham s $thams _2 và
$thams _3 nh n các giá tr) là gíatri_2 và giátr)_3.
Ví d&: Hàm function F($num1, $num2 = 5) {…} ta s g i F(3) 1 F(3, 5).
III- Truy n Tham Bi n Và Tham Tr :
T"t c các ví d& tr
(bi n
c, t"t c vi c truy n bi n
c truy n có th thay
d"u & tr
u là tham tr).
truy n tham bi n
i n i dung khi ra kh-i hàm), khi g i hàm, ta
t thêm
c bi n c n truy n tham bi n.
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;
//G i hàm tham tr).
F($a, $b);
echo " 2. Ngoai ham F(), a = " .$a." va b= " .$b;
//G i hàm v i bi n $a là tham bi n
F(&$a, $b);
echo " 3. Ngoai ham F() a = " .$a." va b= " .$b;
?>
Trang 36/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
K t 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- T m v c c a bi n:
M t bi n trong m t hàm ch có ph m vi trong hàm ó. Tuy nhiên, n u trong m t hàm,
ta c n truy c p
n m t bi n mà không thông qua truy n tham s qua g i hàm, ta ph i
s( d&ng t khoá global tr
truy c p
c bi n nh minh ho trong ví d& sau: Hàm local_Func có
n m t bi n ngoài nh ng không s( d&ng t khoá global. Ng
global_Func c ng truy c p
n cùng m t bi n value, nh ng tác
c l i hàm
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();
Trang 37/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
echo “
3. Gtri bien value = “ . $value
?>
K t 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 d ng l i mã PHP:
s( d&ng l i mã trong nhi u trang web (các script), ta th
ng vi t các hàm, )nh
ngh a các h'ng hay các o n mã và l u vào m t file riêng. Khi ó, m t trang php nào
c n s( d&ng các o n mã ã vi t, có th chèn vào v) trí c n thi t.
chèn m t file có
s0n vào trang web, ta s( d&ng m t trong b n câu l nh sau: include (filename), require
, include_once, require_once.
Ví d&: Include (“functions.php”) ?> s chèn file functions.php t cùng th m&c v i
trang ang vi t vào ngay v) trí
t l nh include.
Ví d&: có file includefile.php có n i dung
T o file mainfile.php có n i dung.
File mainfile.php t
ng
ng v i file có n i dung:
Khác bi t gi a include, include_once, require, require_once
Include:
c file filename vào ngay t i v) trí câu l nh. Tr
th"y file filename, Ch
ng tr
ng h p không tìm
ng trình phát ra c nh báo nh ng v+n ti p t&c th c thi các câu
l nh sau include.
Require: Th c thi gi ng include, tuy nhiên khi không tìm th"y filename, ch
ng
trình s không ti p t&c th c thi các câu l nh ti p theo.
Require_once và Include_once: Làm vi c gi ng nh require và include nh ng nó
ch cho phép filename ch
c chèn vào trang web m t l n.
VI- T ng k t:
K t thúc bài h c này, h2n các b n ã có nh ng khái ni m c b n v hàm và cách s(
d&ng l i mã PHP. Trên ng d&ng th c t vi c dùng các hàm
khá quan tr ng, nó giúp mã ngu#n c a ng
tri u g i óng vai trò
i s( d&ng logic và d dàng ch nh s(a h n,
vi c ng d&ng nó trên website nh th nào c ng s tùy bi n h n so v i cách vi t tr c
ti p trên t ng file.
Trang 39/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Bài 5: Làm Vi c V i Chu!i
I- Nh ng khái ni m c b n:
Trong PHP chu!i
+ D"u nháy
c xác )nh theo 3 cách:
n : VD: ‘abc’;
+ D"u nháy kép : VD “abc”;
+ Heredoc
Ví d&:
Khuy n khích s( d&ng ki u nháy kép vì nó h! tr nhi u ký t
c bi t h n ki u nháy
n.
1- Ph "ng th c n i chu i và ký t
c bi t trong PHP:
n i 2 chu!i v i nhau, PHP cho phép ng
i s( d&ng dùng cú pháp: d"u (.)
n i
hai chu!i v i nhau thành 1 chu!i dài h n.
Ví d&:
x( lý nh ng ký t l trong chu!i nh d"u “ ho c $, PHP cung c"p cho ta 1 ph
th c x( lý hi u qu . ó là thêm d"u “\” sau m!i giá tr).
Ví d&:
Ta có b ng ký t sau:
Trang 40/68
www.qhonline.info
ng
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
\n
Ký t xu ng dòng
\r
Tr% v
\t
Ký t tab
\\
backslash
\$
dollar sign
\"
double-quote
u dòng
II- Các hàm v chu i c b n:
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,
chu!i
i s th 3 là tùy ch n, v) trí
u tiên c a
c tính là v) trí 0.
ví d& 1:
echo (substr (“christopher”, 1)); // in ra “hristopher”
echo (substr (“christopher”, -2)); // in ra “er”
//N u
i s th hai là s âm nó s
b'ng v i giá tr) tuy t
m t cu i chu!i ng
c l i phía tr
c s ký t
i c a 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 chi u dài c a chu!i
Ví d& :
echo (strlen (“Christopher”)); // in ra s 11
3- Hàm thay #i ki u ch :
+ Hàm strtoupper () :
Trang 41/68
i ch th
ng thành hoa
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
ví d& : strttoupper (“toi”); // in ra “TOI”
+ Hàm strtolower () :
i ch hoa thành th
ng
ví d& : strlower (“TOI”); // in ra “toi”
+ Hàm ucfirst () :
i ch in ký t
u tiên c a câu
ví d& : ucfirst (“in house”); // in ra “In house”
+ Hàm ucwords () :
i ch in ký t
u tiên c a m!i t
ví d& : ucwords (“in house”); // in ra “In House”
4- Hàm so sánh chu i:
Có th dùng toán t( so sánh = = (b'ng), !=, <, <=, >, >=, ===
Ngoài ra, ta còn có m t s ph
so sánh các chu!i.
ng th c 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 bi t
hoa/th
ng. Hàm này tr v giá tr) >0 n u S1>S2, 0 n u S1=S2 và giá tr) <0 n u
S10)
echo “$var1 > $var2”;
if (strcmp($var1, $var2) <0)
echo “$var1 < $var2”;
if (strcmp($var1, $var2) ==0)
Trang 42/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
echo “$var1 = $var2”;
?>
K t qu hi n th :
Length Hello:5
Hello = hello in a case-insensitive
Hello < hello
5- Hàm tìm ki m và thay th chu i:
+ Tìm ki m chu!i bên trong chu!i :
tìm ki m 1 chu!i bên trong 1 chu!i khác, b n
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, n u tìm th"y chu!i str1 trong chu!i str2, ng
c l i hàm tr v giá tr)
false, n u có nhi u chu!i con str1 trong str2, thì hàm này ch tìm ki m chu!i str1
u
tiên.
Hàm strstr () :
cú pháp : string strstr (string str1, string str2);
ví d& :
”); // is excellent
?>
+ Hàm t o chu!i con:Hàm string substr (string S, int start [, int length]): tr v
chu!i con
c thành l p t( chu!i S v i các tham s start và length. N u start >=0:
s tr v chu!i b t
u t v) trí start trong S.
Ví d&:
N u start <0: s tr v chu!i b t
u t v) trí start c a S tính t cu i chu!i.
N u length >=0 (giá tr) m c )nh là 0), chu!i tr v có chi u dài length ký t tính t
v) trí start.
N u length < 0: Chu!i tr v chu!i t start t i v) trí k t thúc cách cu i 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 tr
trong S, t"t c các S1
u
ng h p có nhi u S1
c thay b%i S2 (thay th t"t c ).
");
//$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 c a chu!i str
c
thay th s tùy thu c vào 2 tham s là start và length.
+ start : v) trí b t
u c a chu!i thay th replacement trong chu!i str
N u 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 c a chu!i là 0).
N u start < 0 : Nó s
c tính b t
u t cu i chu!i.
+length : là tham s tùy ch n, cho bi t i m d ng vi c thay th . N u không có
này thì vi c thay th s là t v) trí start
is
n cu i chu!i.
N u length = 0 : vi c thay th s là chèn vào v) trí start và ký t tr
c start
N u length > 0 : cho bi t s ký t mà b n mu n thay th v i replacement
N u length < 0 : cho bi t i m k t thúc vi c thay th tính t v) trí cu i chu!i tr% l i
Trang 44/68
www.qhonline.info
Giáo trình PHP C n B n
Các hàm
Gi ng Viên: Bùi Qu c Huy
c gi i thi u phía trên là nh ng hàm thông d&ng và th
ng s( d&ng.
bi t thêm thông tin nhi u hàm h n, các b n có th truy c p vào website : php.net
l"y thông tin
y
v các hàm trong chu!i.
III- T ng k t:
, bài này chúng ta ã làm tìm hi u k/ v ki u d li u chu!i, nh ng hàm ph& tr quan
tr ng trong vi c l p trình ng d&ng nh tìm ki m, thay th , so sánh,….
chu!i là m t trong nh ng m ng có phong phú v các hàm,
c n hi u rõ nguyên t c ho t
hàm chu!i
Trang 45/68
t
i v i PHP
s( d&ng t t chúng b n
ng c a t ng hàm, n m v ng c"u trúc c b n trong các
ó chúng ta d dàng v n d&ng chúng trong các ng d&ng l n.
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Bài 6: Các Thao Tác Trên File
I- C b n v File:
1- M file : S( d&ng hàm fopen ()
Cú pháp : int fopen (string filename, string mode)
iv ih
nh ng
i u hành Unix hay Linux, th m&c g c
iv ih
i u hành Windows, th m&c g c
c )nh ngh a b'ng d"u /,
c )nh ngh a trên m t
d a c&
th nào ó ví d& nh C:\, d"u phân cách gi a các th m&c và t p tin trong Unix ho c
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
Di n gi i
r
Read only
r+
Read_Write
w
Write Only
w+
Write_Read. N u file này t#n t i, n i dung c s b)
xoá i, còn n u không t#n t i nó s
a
M% d
i d ng append d li u, ch có write, n u file
t#n t i, s ghi ti p vào ph n d
i c a n i dung có
s0n, n u file không t#n t i s
a+
M% d
ct om i
c t o m i.
i d ng append d li u (write và read), n u file
t#n t i, d li u s ghi ti p vào ph n bên d
dung c , n u file không t#n t i s
b
Trong tr
M% d
i ch
ic an i
ct om i
file binary
ng h p không bi t file n'm % v) trí nào trên h th ng, b n có th khai báo
thêm tham s là s 1 cho hàm fopen () nh sau :
Trang 46/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
$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”);
ho c :
$f = “http://www.qhonline.info.com/orders.txt”;
$fw = fopen ($f, “a”);
c. M file và vi c s d ng toán t @
Xem o n ch
b tl i
ng trình sau ây :
Open file and Debug
$f = “C:\thuchanh\vanban.txt”;
@$fw = fopen ($f, “a”);
if (!$fw) {
echo (“File b) tr&c tr c, không m%
c”);
}
Trang 47/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
?>
2- óng file : hàm fclose ()
Cú pháp : int fclose (int fw)
$fw là bi n nh n giá tr) tr v khi g i hàm m% file $fw = fopen (...);
3- Hi n 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 c a file
fclose ($fw);
}
Trang 48/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
N u nh file có s ký t ít h n length ký t trong fread (), nó s
c úng s ký t
c a file.
b) Hàm fgetc ():
Cú pháp : string fgetc (int fw)
c úng 1 ký t c a file. N u file r!ng (không có ký t ) thì nó s tr v m t chu!i
r!ng (false)
c) Hàm fgets ()
Cú pháp : string fgets (int fw, int length);
s d ng vi c
c file khi g p ký t new line hay cu i file.
d) Hàm fgetss ()
Cú pháp và ho t
lo i b- khi
ng y nh hàm fgets (), nh ng các ký t n'm trong c p d"u <> s b)
c, cho dù v y nó v+n
c tính vào chi u dài c a chu!i
c.
e) Hàm file ()
Cú pháp : array file (string filename);
m!i dòng c a file
c
c s là 1 ph n t( c a mãng, dòng
u tiên c a 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 n u không
a vào thì toàn b chu!i s
s th ba thì nó s ghi vào file chu!i str ( i th hai) có
length c a
Trang 49/68
c ghi, còn n u
a vào
dài úng b'ng chi u dài
i s th ba.
www.qhonline.info
i
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
II- Các hàm x lý file:
1- Các hàm d ch chuy n ho c qu n 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 m t v) trí xác )nh trong file
offset : s byte ho c s character tính t
Ví d& : fseek ($fw, 1); // di chuy n
u file
n ký t th hai c a file
c) Hàm ftell ()
Cú pháp : int ftell (int fw);
cho bi t v) trí hi n th i c a con tr- m3u tin
Ví d& :
fseek ($fw, ftell ($fw) + 20); t v) trí hi n th i d)ch chuy n thêm 20 ký t
d) Hàm feof ()
Cú pháp : int feof (int fw);
cho bi t v) trí cu i 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);
Trang 50/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
b) Hàm unlink ()
Cú pháp : int unlink (string filename);
delete file, file
c delete ph i óng (không m%)
c) Hàm rename ()
Cú pháp : int rename (string oldname, string newname);
t tên file l i
II- T ng k t:
Vi c s( d&ng file m t cách thành th o s giúp b n d dàng v n hành các ng d&ng
mang quy mô v a và nh- nh : website nhi u ngôn ng , b
m,…và c nh ng công
ngh web m i nh XML m t cách d dàng,
Qua bài h c này chúng ta c ng hi u
li u khi chúng
Trang 51/68
c nguyên lý ho t
ng, trình t x( lý 1 file d
c tri u g i trong tài li u PHP.
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Bài 7: X( Lý Form Trong PHP
I- T
ng tác v i ng
PHP cho phép ng
i s d ng:
i s( d&ng t
ng tác v i chúng thông qua form nh p li u
thu n túy trên HTML. Tuy nhiên
ng 1 s quy )nh chung
làm
c vi t
c i u "y PHP yêu c u form ph i áp
t ra.
Chúng ta cùng phân tích th$ form trong HTML sau:
V y làm cách nào
chúng ta l"y
c giá tr) v a nh p li u nào ?.
PHP cho phép ta l"y giá tr) d a vào 2 ph
ng th c POST và GET.
i v i POST ta có : $_POST[‘Giá tr)’]
i v i GET ta có : $_GET[‘Giá tr)’]
V y v i o n code trên có th l"y
II- X lý d li u t! trang ng
c bi n x( lý là : $_POST[‘username’];
i nh p li u.
1- Ph "ng th c POST:
Ph
ng th c này
c s( d&ng
l"y d li u t form nh p li u. Và chuy n chúng
lên trình ch webserver.
2- Ph "ng th c GET:
Ph
ng th c này c ng
c dùng
l"y d li u t form nh p li u. Tuy nhiên nhi m
v& chính c a nó v+n là l"y n i dung trang d li u t web server.
Bài t p ví d&:
Trang 52/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Xây d ng 1 trang HTML v i n i dung g#m form nh p li u h và tên. Sau ó dùng 1
file php
xu"t ra thông tin h và tên mà ng
i s( d&ng v a nh p li u.
áp Án:
T o file userform.htm v i n i dung sau:
T o file processform.php xu"t ra d li u
echo “Welcome, ” . $_POST[‘username’] . “!”;
?>
Bài t p áp d&ng :
T o 1 trang web v i h p tho i nh p li u username và password. N u ng
i s( d&ng
nh p thông tin username/password là admin/12345 thì xu"t ra thông báo “welcome,
admin” v i ki u ch Tahoma, màu -. Ng
c l i n u nh p sai thì xu"t thông báo
“Username ho c password sai. Vui lòng nh p l i”.
áp án:
T o trang login.html v i n i dung sau:
login page
Ti p t&c t o trang checklogin.php v i n i dung sau:
Trang 53/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Welcome to, ".$username."";
}
else
{
echo "Username hoac password khong chinh xac,
vui long dang nhap lai";
}
?>
III- T ng K t:
K t thúc bài này các b n ã n m
c k/ thu t ki m tra thông tin d a trên PHP. K/
thu t xây d ng trang upload, ki m tra tính h p l c a ng
i s( d&ng 1 cách d dàng
b%i s tùy bi n trong các bi u th c c a PHP.
Trang 54/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Bài 8: Qu n Lý Phiên Làm Vi c
I- T ng quan v cookie:
Cookie là 1 o n d li u
c ghi vào
Nó
c lên l i server m!i khi browser t i 1 trang web t
c trình duy t g%i ng
a c ng ho c b nh c a máy ng
i s( d&ng.
server.
Nh ng thông tin
c l u tr trong cookie hoàn toàn ph& thu c vào website trên
server. M!i website có th l u tr nh ng thông tin khác nhau trong cookie, ví d& th i
i m l n cu i ta ghé th m website, ánh d"u ta ã login hay ch a, v.v...
Cookie
c t o ra b%i website và g%i t i browser, do v y 2 website khác nhau (cho
dù cùng host trên 1 server) s có 2 cookie khác nhau g%i t i browser. Ngoài ra, m!i
browser qu n lý và l u tr cookie theo cách riêng c a mình, cho nên 2 browser cùng
truy c p vào 1 website s nh n
c 2 cookie khác nhau.
1- Thi t l&p cookie trong PHP:
thi t l p 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 vi c.
Giá tr) là thông s c a tên cookie.
Ví d&:
Setcookie(“username”,”admin”)
Nh ví d& trên ta th"y v i tên là username và giá tr) là admin.
Chú ý: K)ch b n cookie ph i
t trên m i giá tr) tr v bao g#m th$ HTML và l nh
echo.
2- S d ng cookie trong PHP:
s( d&ng l i cookie v a thi t l p, 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 thi t l p phía trên.
Ví d&:
T o trang cookie.php v i n i dung sau:
Test page 1Click here
Ti p t&c t o trang cookie2.php v i n i dung sau:
Result Page
".$_COOKIE['
name'
]."";
?>
3-
nh d ng các tham s khác trong cookie:
Cú pháp c b n:
Setcookie(“Tên Cookie”,”Giá tr)”,”Th i Gian”,”
Tên cookie là tên mà chúng ta
ng d+n”,”Tên mi n”,”An toàn”
t cho phiên làm vi c.
Giá tr) là thông s c a tên cookie.
Th i gian là th i h n dùng
thi t l p s t#n t i c a cookie.
so v i m c ngày 1-1-1970. Th
ng
c tính theo s giây
c tính b'ng th i gian hi n t i c ng v i 1
kho ng th i gian nào ó mu n s( d&ng cookie
ng d+n là th m&c nào thì cookie có tác d&ng.
Tên mi n là tên trang web mà chúng ta thi t l p cookie .
An toàn là s l a ch n cookie có
là có và 0 là k t n i thông th
c g(i theo giao th c HTTPS hay không. Ch n 1
ng(HTTP).
Ví d&:
Setcookie(“user_id”,”1301”,time()+3600,”/”,””,0);
Tên cookie: User_id
Giá tr): 1301
Th i gian: Cookie t#n t i trong 1 gi tính t th i gian thi t l p.
Trang 56/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
ng d+n: trên m i th m&c
Tên mi n: B- qua thu c tính này
An toàn: Ch"p nh n giao th c HTTP(thông th
ng).
4- H y Cookie:
h y 1 cookie ã
c t o ta có th dùng 1 trong 2 cách sau:
a) Cú pháp: setcookie(“Tên cookie”)
G i hàm setcookie v i ch duy nh"t tên cookie mà thôi
b) Dùng th i gian h t h n cookie là th i i m trong quá kh .
Ví d&: setcookie(“name”,”Kenny Huy”,time()-3600);
Ví d&:
Ti p t&c t o trang cookie3.php v i n i dung sau:
Test page 1Click here
Bài t p áp d ng:
Xây d ng website s( d&ng tính n ng cookie th-a mãn nh ng yêu c u sau:
1- T o trang
ng nh p v i username/password là : admin/vietchuyen. N u user
ng nh p thành công thì s xu"t ra dòng welcome, admin.
2- T o trang
Trang 57/68
ng xu"t thoát kh-i ph n qu n tr)
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
II- T ng quan v SESSION
M t cách khác qu n lý ng
gian ng
i s( d&ng là session. Session
c hi u là kho ng th i
i s( d&ng giao ti p v i 1 ng d&ng. M t session
d&ng truy c p vào ng d&ng l n
ng d&ng. M!i session s có
u tiên, và k t thúc khi ng
cb t
u khi ng
i s(
i s( d&ng thoát kh-i
c c"p m t )nh danh (ID) khác nhau và n i dung
c l u trong th m&c thi t l p trong file php.ini (tham s session.save_path).
Trong PHP, session
phiên làm vi c.
làm
c xem nh m t i u khi n phía server
c i u này, khi m t ng
website, webserver cung c"p cho ng
l u tr và qu n lý
i s( d&ng truy c p vào m t
i s( d&ng m t xâu giá tr) là SessionID g i là
xâu )nh danh- ví d& 9b02405434373d6d96c8db11ed819a60. Gía tr) xâu này m t giá
tr) ng+u nhiên và nó
c g(i t i máy ng
PHPSESSID. Giá tr) này t#n t i cho
ho c ng
i s( d&ng thông qua cookie có tên
n khi nào chu k* s ng c a session k t thúc
i s( d&ng di chuy n t i website khác. Chu k* s ng c a session do
webserver qui )nh. Ta có th
i u ch nh chu k* này khi c"u hình webserver.
Bên phía server, m t t p tin có tên t
bi n session s
ng ng PHPSESSID c ng
c l u trong m t t p tin v n b n này và % t i v) trí
c t o ra. Các
c qui )nh
trong file php.ini % dòng session.save_path.
1- Thi t l&p 1 session trong PHP:
thi t l p 1 session ta s( d&ng cú pháp: session_start()
o n code này ph i
c n'm trên các k)ch b n HTML. Ho c nh ng l nh echo,
printf.
thi t l p 1 giá tr) session, ngoài vi c cho phép b t
còn ph i
ng ký 1 giá tr) session.
u th c thi session. Chúng ta
ti n cho vi c gán giá tr) cho session ó.
Ta có cú pháp sau: session_register(“Name”)
Ví d&:
Trang 58/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
2- S d ng giá tr c a session:
Gi ng v i cookie.
s( d&ng giá tr) c a session ta s( d&ng mã l nh sau:
Cú pháp: $_SESSION[“name”]
V i Name là tên mà chúng ta s( d&ng hàm session_register(“name”)
khai báo.
Ví d&:
T o trang session.php v i n i dung sau:
Test page 1Click here
T o trang session2.php v i n i dung sau:
session_start();
?>
Result Page
".$_SESSION["name"]."";
?>
3- H y b$ session trong PHP:
h y b- giá tr) c a session ta có nh ng cách sau:
Session_destroy() // Cho phép h y b- session
Session_unset()// Cho phép h y b- session (bao g#m t"t c nh ng gì có liên quan).
Chú ý: Nên c3n tr ng khi s( d&ng hàm unset.
Ví d&
T o trang session3.php v i n i dung sau:
Trang 59/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Test page 1Click here
Bài t p áp d ng:
Xây d ng website s( d&ng tính n ng session th-a mãn nh ng yêu c u sau:
1- T o trang
ng nh p v i username/password là : admin/vietchuyen. N u user
ng nh p thành công thì s xu"t ra dòng welcome, admin.
2- T o trang
ng xu"t thoát kh-i ph n qu n tr)
III- T ng K t:
Sau bài h c này chúng ta ã n m
c cách i u khi n phiên làm vi c gi a cookie và
session. S( d&ng chúng trong t ng tr
nh ng ng d&ng nh- nh ki m soát ng
Trang 60/68
ng h p c& th . T
i
ó có th áp d&ng
vi t
ng nh p, làm gi- hàng online,…..
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Bài 9: T ng Quan V MYSQL
I- Nh ng khái ni m c b n:
Mysql là h qu n tr) d li u mi n phí,
c tích h p s( d&ng chung v i apache, PHP.
Chính y u t phát tri n trong c ng #ng mã ngu#n m% nên mysql ã qua r"t nhi u s h!
tr c a nh ng l p trình viên yêu thích mã ngu#n m%.
1- Cách kh i
ng và s d ng MYSQL.
Chúng ta s( d&ng command nh sau:
Mysql –hname –uuser –ppass
truy c p vào c s% d li u.
Ho c s( d&ng b appserv
vào nhanh h n theo
ng d+n sau:
Start/ Appserv/ Mysql command Line client
Sau ó nh p password mà chúng ta ã
2- Nh ng
a)
t vào.
nh ngh a c" b n:
nh ngh a c" s d li u, b ng, c t:
C s% d li u: là tên c a c s% d li u chúng ta mu n s( d&ng
B ng: Là 1 b ng giá tr) n'm trong c s% d li u.
C t là 1 giá tr) n'm trong b ng. Dùng
l u tr các tr
ng d li u.
Thu c tính
Ví d&:
B ng user
User_id
1234
First_name
Nguyen
Last_name
Hai Anh
Username
Haianh123
Password
12345
Email
[email protected]
Date
2007-12-12 16:25:30
Nh v y ta có th hi u nh sau:
1 c s% d li u có th bao g#m nhi u b ng.
1 b ng có th bao g#m nhi u c t
Trang 61/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
1 c t có th có ho c không có nh ng thu c tính.
b) )nh ngh a 1 s thu t ng :
NULL : Giá tr) cho phép r!ng.
AUTO_INCREMENT : Cho phép giá tr) t ng d n (t
UNSIGNED : Ph i là s nguyên d
ng).
ng
PRIMARY KEY : Cho phép nó là khóa chính trong b ng.
c)Lo i d li u trong Mysql:
, ây chúng t ch gi i thi u 1 s lo i thông d&ng: 1 s d li u khác có th tham kh o
trên trang ch c a mysql.
Ki u d li u
Mô T
Char
)nh d ng text có chi u dài t 0->255
Varchar
)nh d ng text có chi u dài t 0->255
Text
)nh d ng text có chi u dài 0->65535
Longtext
)nh d ng text có chi u dài 0->4294967215
INT
)nh d ng s
Float
)nh d ng s th p phân có chi u dài nh-
Double
)nh d ng s th p phân có chi u dài l n
Date
)nh d ng th i gian theo )nh d ng: YYYY-MM-DD
DateTime
)nh d ng th i gian theo )nh d ng: YYYY-MM-DD HH:MM:SS
có chi u dài t 0->4294967215
3- Nh ng cú pháp c" b n:
Cú pháp t o 1 c s% d li u:
CREATE DATABASE tên_c _s%_d _li u
Cú pháp s( d&ng c s% d li u: Use tên_database;
Cú pháp thoát kh-i c s% d li u: Exit
Cú pháp t o 1 b ng trong c s% d li u:
CREATE TABLE user (,…,…..)
Ví d&:
mysql> create table user(user_id INT(15) UNSIGNED NOT NULL
AUTO_INCREMENT, user
Trang 62/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
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 nhi u b ng: show tables;
Hi n th) có bao nhiêu c t trong b ng: show columns from table;
Thêm 1 c t vào b ng :
ALTER TABLE tên_b ng 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- Nh ng cú pháp sql c b n:
1- Thêm giá tr vào b ng:
Cú pháp: INSERT INTO Tên_b ng(tên_c t) VALUES(Giá_tr)_t
ng_ ng);
Ví d&:
mysql> insert into user(username,password,email,sex,home) values("Lanna","12345"
,"[email protected]","F","www.abc.com");
Query OK, 1 row affected (0.00 sec)
2- Truy xu t d li u:
Cú pháp: SELECT tên_c t FROM Tên_b ng;
Ví d&:
mysql> select user_id,username from user;
3 rows in set (0.00 sec)
4- Truy xu t d li u v i i u ki n:
Cú pháp: SELECT tên_c t FROM Tên_b ng WHERE i u ki n;
Ví d&:
Trang 63/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
mysql> select user_id,username from user where user_id=2;
Bài t p áp d ng:
T o c s% d li u v i thông tin sau:
ID Fname
Lname
Email
Password
Sex
Phone
1
Nguyen
Van Hoa
[email protected]
12345
F
0903234532
2
Tran
Hoa
[email protected]
23456
M
97234512
3
Nguyen
Thi Thuy
[email protected]
24625
F
98374642
4
Hoang
Phi Hong
[email protected] 57265
M
94673257
5
Le
Van Lam
[email protected]
45625
M
93562535
6
Nguyen
Cam Nhung
[email protected]
52672
F
93525135
7
Hoang
Phi Yen
[email protected]
63456
F
94754363
Th c hi n các công vi c sau:
1- T o 1 b ng v i các c t trên.
2- Nh p li u thông tin theo nh b ng trên.
3- Li t kê t"t c thông tin c a nh ng ai có sex là female.
4- Li t kê thông tin c a ng
i có Lname là “Van Hoa”.
5- Li t kê t"t c thông tin c a nh ng ai có sex là male và có h là “Nguy n”.
6- Li t kê fname,lname, email c a nh ng ai có s phone “0903234532”.
7- Dùng hàm mã hóa
b o m t password c a ng
i dùng.
5- Truy c&p d li u và s p x p theo trình t
Cú pháp:
SELECT tên_c t FROM Tên_b ng
WHERE i u ki n (có th có where ho c không)
ORDER BY Theo quy
Trong ó quy
d
c s p x p.
c s p x p bao g#m hai thông s là ASC (t trên xu ng d
i), DESC (t
i lên trên).
Ví d&:
Trang 64/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
mysql> select user_id,username from user order by username ASC ;
Câu l nh trên l"y ra thông tin user_id và username t b ng user và chúng
theo username trình t t trên xu ng d
cs px p
i.
6- Truy c&p d li u có gi i h n :
Cú pháp:
SELECT tên_c t FROM Tên_b ng
WHERE i u ki n (có th có where ho c không)
LIMIT v) trí b t
u, s record mu n l"y ra
Ví d&:
mysql> select user_id,username from user order by username ASC limit 0,10 ;
Câu l nh trên l"y ra thông tin user_id và username t b ng user. Chúng
theo username trình t t trên xu ng d
cs px p
i. Và l"y ra 10 record t v) trí 0.
7- C&p nh&t d li u trong b ng:
Cú pháp:
Update tên_b ng set tên_c t=Giá tr) m i
WHERE ( i u ki n).
N u không có ràng bu c i u ki n, chúng s c p nh t toàn b giá tr) m i c a các record
trong b ng.
Ví d&:
mysql> update user set email=”[email protected]” where user_id=1 ;
8- Xóa d li u trong b ng:
Cú pháp:
DELETE FROM tên_b ng WHERE ( i u ki n).
N u không có ràng bu c i u ki n, chúng s xó toàn b giá tr) c a các record trong b ng.
Ví d&
mysql>delete from user where user_id=1 ;
Trang 65/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
III- Mysql và PHP:
1- K t n i c" s d li u:
Cú pháp:
Mysql_connect(“hostname”,”user”,”pass”)
2- L a ch n c" s d li u:
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- Th c thi câu l nh truy v n:
Cú pháp:
Mysql_query(“Câu l nh SQL”)
4-
m s record trong b ng:
Cú pháp:
Mysql_num_rows();
5- L y d li u t' database:
Cú pháp:
Mysql_fetch_array();
Ví d :
Bài t p áp d ng:
Xu"t thông tin ng
i dùng t c s% d li u % bài t p trên b'ng PHP.
ID Fname
Lname
Email
Password
Sex
Phone
1
Nguyen
Van Hoa
[email protected]
12345
F
0903234532
2
Tran
Hoa
[email protected]
23456
M
97234512
3
Nguyen
Thi Thuy
[email protected]
24625
F
98374642
4
Hoang
Phi Hong
[email protected] 57265
M
94673257
5
Le
Van Lam
[email protected]
45625
M
93562535
6
Nguyen
Cam Nhung
[email protected]
52672
F
93525135
7
Hoang
Phi Yen
[email protected]
63456
F
94754363
IV- T ng k t:
, bài này chúng ta ã làm vi c v i sql và các k/ thu t k t n i v i database c a PHP. Các
hàm PHP h! tr mysql hi n nay có r"t nhi u. Tuy nhiên v tính n ng c ng nh ph
ng
th c s( d&ng thì chúng c ng gi ng nhau. Do v y các b n không nên lo l ng khi làm vi c
v i nh ng hàm mà chúng ta ang nghiên c u.
Trang 67/68
www.qhonline.info
Giáo trình PHP C n B n
Gi ng Viên: Bùi Qu c Huy
Ph n C: Project Training
V i nh ng ki n th c ã h c
c, b n hãy áp d&ng
xây d ng hoàn ch nh m t ng
d&ng web c& th và n p chúng cho gi ng viên c a b n.
M t s project tiêu bi u khuy n khích các h c viên làm:
tài 1: Xây d ng trang tin t c i n t( v i các tính n ng chuyên nghi p nh (chuyên
m&c tin, tin t c,…
Trang 68/68
www.qhonline.info