Giao an tin hoc 11 - Tuan 08 - On tap chuong 04 - vtq ngoc
Giáo Trình PHP & MySql căn bản
1. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 1/68 www.qhonline.info
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
2. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 2/68 www.qhonline.info
L i Nói 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 t i trung tâm ào t o m ng Vi t Chuyên.
M c dù ã ki m tra xác th c, c ng nh tính úng n c a giáo trình, nh ng khi biên
soan ch c ch n s có ít nhi u l!i liên quan n t ng , cú pháp. R"t mong nh n c
nhi u s ó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
3. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 3/68 www.qhonline.info
Ph n A: C B n V HTML & Javascript
I – Các Th HTML c b n
1- C u trúc chu n:
<HTML>
<HEAD><TITLE>Tiêu Website</TITLE>
</HEAD>
<BODY>
N i dung website c vi t t i ây
</BODY>
</HTML>
+ M t c"u trúc HTML luôn bao g#m th$ óng và th$ m%.
Ví d& : <B> Ł th$ M%
</B> Ł Th$ óng - c phân bi t b'ng d"u / ngay tr c th$
+ Các th$ HTML hoàn toàn có th vi t hoa ho c th ng. Tuy nhiên nên theo 1 quy t c
chung (vi t hoa thì vi t hoa h t, ng 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 : <H>N i Dung</H> (ví d&: <H1>Welcome, admin</H1>).
Th$ H bao g#m các thu c tính t (H1 H6). Nh ng ch S( d&ng t H1 H3.
In m: <B>N i Dung</B> (ví d&: <b>Welcome, admin</b>)
In Nghiêng: <I>N i Dung</I> (ví d&: <i>welcome, Admin</i>)
G ch D i : <U>N i Dung</U> (Ví d&: <u>welcome, Admin</u>)
Xu ng 1 Dòng : <BR> - Th$ này không có th$ óng.
Xu ng 2 Dòng : <P> - Có ho c không th$ óng c ng c.
)nh D ng Ch B'ng Th$ <FONT>
+ Kích th c ch : <FONT SIZE=”Thông S ”> N i Dung</FONT>
Ví d&: <font size=2>Hello, How Are You ?</font>
+ Ki u Ch : <FONT FACE=”Ki u Ch ”> N i Dung</FONT>
Ví d&: <font face=tahoma>Hello, How Are You ?</font>
+ Màu Ch : <FONT COLOR=”Màu Ch ”> N i Dung</FONT>
4. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 4/68 www.qhonline.info
Ví d&: <font color=red> Hello, How Are You ?</font>
T o Liên K t : <A HREF=”Link”> N i Dung</A>
Ví D&: <a href=”abc.html”>Hello, Huy</a>
+ M% 1 c(a s m i v i liên k t: TARGET=_BLANK
Ví d&: <a href=”abc.html” target=_balnk>Hello, Huy</a>
+ M% liên k t ó ngay trên trang hi n th): TARGET=_SEFT
Ví d&: <a href=”abc.html” target=_seft>Hello, Huy</a>
)nh d ng thu c tính : ALIGN=LEFT, RIGHT, CENTER, JUSTIFY
+ S( d&ng k t h p v i th$ <P>
Ví d&: <p align=center>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 <img>,<table>, <div>,….
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=”Thu c Tính” WIDTH=”Thông S ”
HEIGHT=”Thông S ”>
+ <IMG SRC=”URL”> cú pháp chính xu"t ra hình nh.
+ <IMG SRC=”URL Hình” BORDER=”Thông S ”> cú pháp c s( d&ng khi
hình nh i kèm v i liên k t.
Ví d& : <a href=”abc.html”><img src=”def.gif” border=”1”></a>
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&: <a href=”abc.html”><img src=”def.gif” border=”0”></a>
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 n l trái v n b n
+ Vspace: kho ng cách t TOP c a hình 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 c dòng và c t. Và áp t 1 s quy lu t, vi c
th c thi d h n so v i yêu c u t ra.
5. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 5/68 www.qhonline.info
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 có 1 b ng d li u. Ta
i t b ng tr 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 : <table> </table>
1 Dòng b t u và k t thúc s có cú pháp : <tr> </tr>
1 C t b t u và k t thúc s có cú pháp : <td> </td>
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 :
<Table>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</table>
Các thu c tính trên B ng (Table).
o Width : Chi u r ng c a b ng.
6. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 6/68 www.qhonline.info
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 u có th áp d&ng i v i c t (td). Nh ng không th
áp d&ng 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 i :
Th 2 Th 3 Th 4 Th 5 Th 6 Th 7
Toán A1 Anh V n PHP&MYSQLKinh t Chính Tr)
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
7. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 7/68 www.qhonline.info
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 :
<form method="POST" action="link" name=”Tên”>
N i dung c a form
</form>
+ Method : Là ph ng th c truy n nh n d li u. G#m 2 ph ng th c là POST và GET.
+ Action : Là ng d+n 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 :
<input type="Thu c tính" name="Tên" size="chi u dài" value="giá tr)">
+ Type : Thu c tính có hai lo i là Text (khi ng i nh p s th"y c n i dung
ang nh p và Password (ng i nh p s không th"y 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 :
<textarea name="textarea" cols="45" rows="5" ></textarea>
+ 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 :
<input type="radio" value="N" name="hot" checked>
+ 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
8. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 8/68 www.qhonline.info
+ 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&:
<input type="radio" value="m" name="sex" checked> Male
<input type="radio" value="f" name="sex" > 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:
<select size="thông s " name="tên">
<option value="giá tr)" selected>L a ch n </option>
</select>
+ 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&:
<select size="1" name="country">
<option value=”VN” selected>Vi t Nam </option>
<option value=”CN”>Trung Qu c </option>
</select>
, 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:
<input type="checkbox" name="tên" value="giá tr)">
+ 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 :
9. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 9/68 www.qhonline.info
<input type="L a ch n" value="Giá tr)" name="Tên">
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 i :
10. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 10/68 www.qhonline.info
IV- Các th nâng cao:
1- T o ch ch y :
Cú pháp c b n : <Marquee> N i Dung </Marquee>
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 ng chuy n ng c a v n b n.
ScrollDelay: Giá tr) nguyên d ng này là s mili giây v n b n ng ng tr c khi chuy n
ng ti p. Giá tr) càng nh-, chuy n ng càng nhanh.
Behavior: Lo i chuy n 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& :
<Marquee align="middle" direction="right" scrolldelay="60">
Chào m ng b n ã n website c a chúng tôi
</Marquee>
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 :
<iframe src=”URL” Name=”Tên” Frameborder=”Thông s ” height=”Thông s ”
width=”thông s ” scrolling=”Thông s ” allowtransparency> </iframe>
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.
11. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c 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></iframe>
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 ng là danh sách có ánh s . Ta c ng có
th k t h p hai lo i này 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 c hi n th) v i các con s thay vì các nút. S(
d&ng th$ <OL> (Order List) 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 : <OL type=”[a] [i] [I]”> </OL>
Ví d& :
<OL>
<LI>This is the first level-1 item in the list.
<LI>This is the second level-1 item in the list.
<OL>
<LI>This is the first level-2 item in the list.
<LI>And this is the second level-2 item in the list.
</OL>
<LI>This is the third level-1 item in the list.
</OL>
b) Danh sách không có th t :
Cú pháp : <UL type=”[square] [cicle] [disc]”> </UL>
Ví d& :
<UL Type="Disc">This is the first level header.
<LI>This is the first level-1 item in the list.
<LI>This is the second level-1 item in the list.
<UL>
<LI>This is the first level-2 item in the list.
<LI>And this is the second level-2 item in the list.
</UL>
<LI>This is the third level-1 item in the list.
</UL>
12. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 12/68 www.qhonline.info
4- S d ng th <DIV>:
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 n )nh d ng c a
riêng nó. Các th$ này th ng 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 <DIV STYLE="font:bold 14pt">some text</DIV> in a DIV.
V- CASCADING STYLE SHEET (CSS)
)nh ngh a v b ng ki u x p ch#ng (css) s( d&ng tách bi t format trang và n i dung
c a trang web. V i CSS, ta có th bi n i m i th t kích c., ki u, màu s c c a v n b n
cho n kho ng cách gi a 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 c a i t ng trên trang.
1- 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% <STYLE> và
th$ óng </STYLE>, nó th ng c t trong ph n head c a trang HTML.
Ví d&:
<HTML>
<HEAD>
<STYLE>
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}
</STYLE>
</HEAD>
<BODY>
<DIV>This text is in a DIV.</DIV>
<H1>This text is in an H1.</H1>
<H2>This text is in an H2.</H2>
</BODY>
</HTML>
13. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 13/68 www.qhonline.info
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 c p trong nh ng ph n tr c không ch d ng l i % m c
c a m t trang web 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 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
tin này 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$ <LINK> 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}
14. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 14/68 www.qhonline.info
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 <Style> và </Style> (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&:
<HTML>
<HEAD>
<LINK HREF="styles.css" REL="STYLESHEET" TYPE="text/css">
</HEAD>
<BODY>
<DIV>This text is in a DIV.</DIV>
<H1>This text is in an H1.</H1>
<H2>This text is in an H2.</H2>
<H2 STYLE="font-size: 36pt">This is modified H2 text.</H2>
</BODY>
</HTML>
Trong ví d& này t p tin s( d&ng th$ <LINK> 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 )nh rõ r'ng
liên k t này là m t tham chi u 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 c )nh ngh a trong t p
tin style.css s c th hi n b'ng cách s( d&ng ki u ã c xác )nh.
Vì không n'm trong b"t k* t p tin HTML c bi t nào, nên b ng ki u liên k t ngoài có
th c liên k t v i s l 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 i cách th hi n t ng th c a Website.
3- nh Ngh a Trên 1 L p:
15. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 15/68 www.qhonline.info
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$ u có th
dùng c.
Cú pháp : .tênl p {các thu c tính}.
Ví d&:
<HTML>
<HEAD>
<STYLE>
.large
{
font-size: 24pt;
font-style : bold;
font-family : tahoma;
color: green;
Background-color: blue;
}
.small {font-size: 8pt}
</STYLE>
</HEAD>
<BODY>
<H2 CLASS="small">The small class on an H2 element.</H2>
<DIV CLASS="large">The large class on a DIV element.</DIV><BR>
<P CLASS="small">The small class on a P element.</P>
<B CLASS="large">The large class on a B element.</B><BR>
</BODY>
</HTML>
16. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 16/68 www.qhonline.info
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 c thi t k d dàng xây
d ng các trang Web ng. Mã PHP có th th c thi trên Webserver t o ra mã HTML
và xu"t ra trình duy t web theo yêu c u c a ng i s( d&ng.
Ngôn ng PHP ra i n m 1994 Rasmus Lerdorf sau ó c phát tri n b%i nhi u ng i
tr i qua nhi u phiên b n. Phiên b n hi n t i là PHP 5 ã 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.
17. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 17/68 www.qhonline.info
• 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 an mã PHP. Quá trình này có th
liên quan 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 c tr v cho Server..
• 6: Server g(i mã k t qu HTML v l i trình duy t.
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, i v i PHP
chúng ta có nhi u cách th hi n.
Cách 1 : Cú pháp chính:
<?php Mã l nh PHP ?>
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”;
18. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 18/68 www.qhonline.info
+ Printf “Thông tin”;
Thông tin bao g#m : bi n, chu!i, ho c l nh HTML ….
Ví d& :
<?php
Echo “Hello word”;
Printf”<br><font color=red>Who Are You ?</font>”;
?>
N u gi a hai chu!i mu n liên k t v i nhau ta s( d&ng d"u “.”
Ví d& :
<?php
Echo “Hello”.”who are you ?”;
?>
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 c xem là vùng nh d li u t m th i. Và giá tr) có th thay i c. Bi n c
b t 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 i.
1 bi n 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 u b'ng d"u g ch d i và theo sau là các ký t , s hay d"u g ch
d i.
+ Tên c a bi n không c phép trùng v i các t khóa c a PHP.
Trong PHP s( d&ng 1 bi n chúng ta th ng ph i khai báo tr c, tuy nhiên i v i các
l p trình viên khi s( d&ng h th 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 u c a bi n là d ng s .
19. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 19/68 www.qhonline.info
b) Khái ni m v h ng trong PHP.
N u bi n là cái có th thay i c thì ng c l i h'ng là cái chúng ta không th thay i
c. H'ng trong PHP 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 c phép gán giá tr) duy nh"t 1 l n.
+ H'ng th 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&:
<?php
$test=”VietNam”;
echo “welcome to”.$test;
echo “<br><font color=red>welcome to”.$test.”</font><br>”;
?>
d) Ki u d li u trong PHP
Các ki u d li u khác nhau chi m các l ng 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.
20. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 20/68 www.qhonline.info
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 ng i t ng trong PHP
Array M ng trong PHP, ch a các ph n t(.
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&:
<?php
$a= 5;
Echo gettype($a); // Integer.
$a=”<br>”;
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 u tiên v PHP, các cú pháp, các ki u d
li u, và cách làm vi c v i môi tr 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.
21. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 21/68 www.qhonline.info
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 n h 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 true.
22. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 22/68 www.qhonline.info
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
nh ng không ph i c hai
True || True False
&& 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 ng nh n th"y c n ph i t ng ho c gi m l ng bi n m t
s nguyên nào ó. B n s th ng th c hi n i u này khi chúng ta 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&:
<?php
$a=5;
23. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c 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 l p trong PHP:
a) While…..
Cú pháp:
While( i u ki n)
{
Hành ng – th c thi
}
Ví d&:
<?php
$a=1;
While($a < 10)
{
Echo “gia tri $a la”;
$a++;
}
?>
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 ó.
24. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 24/68 www.qhonline.info
áp Án:
Câu 1:
<?php
$a=1;
while($a <= 20)
{
echo "<br>$a";
$a++;
}
?>
Câu 2:
<?php
$a=1;
while($a <= 20)
{
if($a%2==0)
echo "<br>$a";
$a++;
}
?>
b) Do......while:
Cú pháp:
Do
{
Hành ng th c thi
}while( i u ki n)
Ví d&:
<?php
$a=5;
do{
echo "day la gia tri cua $a";
$a++;
}while($a >6)
?>
c) For…..Loop
Cú pháp:
25. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 25/68 www.qhonline.info
For( giá tr) ; i u ki n ; bi n t ng ho c gi m)
{ Hành ng }
Ví d& :
<?php
$a=2;
for($i=1; $i<=10; $i++)
{
echo"$a x $i =".$a*$i."<br>";
}
?>
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:
<?php
for($i=2; $i <= 10; $i++)
{
echo "Bang cuu chuong cua $i<br>";
for($j=1; $j <=10; $j++)
{
echo "$i x $j =".$i*$j."<br>";
}
echo "<p>";
}
?>
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 ng; Break;
Default: Hành ng; Break;
}
Ví d&:
<?php
26. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c 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 "<font color=red>day la gia tri $a</font>"; 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 .
27. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 27/68 www.qhonline.info
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 )nh c& th s là b t u t 0, 1,
2... ho c chúng ta s vi t t 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”,
28. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 28/68 www.qhonline.info
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]” . “<BR>”);
}
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 <BR>"); /* L n l t hi n th) theo th t ã khai
báo ban 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 i s th nh"t c a list là $key, giá tr)
t ng ng v i ch s index ó c a mãng cho 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 n thành ph n k ti p
c a mãng, gán ch s index c a mãng cho $key và giá tr) t ng ng v i ch s index
ó c a mãng cho $value c a c ch list ().
29. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 29/68 www.qhonline.info
Cách 2 :
Ví d& :
function println ($s) {
echo (“$s <BR>”);
}
$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 <BR>");
}
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”
30. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 30/68 www.qhonline.info
Phép duy t cho mãng % trên c th c hi n nh sau :
ví d& :
while (list ($key1) = each ($continents)) {
echo (“$key1 : <BR>”);
while (list ($key2, $value) = each ($continents[“$key1”])) {
echo (“- $value<BR>”);
}
}
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 c, k n là các ký t
d"u, r#i m i 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 <BR>");
}
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 () :
31. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c 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 <BR>");
}
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 <BR>");
}
K t qu :
Element a equals Germany
Element b equals Costa Rica
Element c equals Canada
32. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 32/68 www.qhonline.info
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 () t c m&c ích nêu trên.
4- Hàm s p x p theo quy nh tr c c a ng !i s d ng:
a) Ch liên quan n giá tr) t 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 <BR>");
}
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 i, nh ng hàm usort () không gi l i c ch s (index) nguyên th y nh lúc
33. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 33/68 www.qhonline.info
ban 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 c b%i ng i s(
d&ng : ta s( d&ng hàm uksort () (cách s( d&ng thì t 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 <BR>”);
}
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.
34. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 34/68 www.qhonline.info
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, tin c y, gi m th i gian vi t
mã và t ng tính m m d$o cho ch ng trình.
Trong php, hàm (có giá tr) tr v ) và th t&c (không có giá tr) tr v ) u c g i
chung là hàm. )nh ngh a m t hàm c xây d ng b%i ng 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 ng trình và tr v giá tr) bi uth c.
- Hàm có th 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)
{
35. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c 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 . 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 :<br>";
//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 "<br>";
for ($i=0; $i<9; $i++)
IsNguyenTo2($ArrNum[$i]);
?>
36. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 36/68 www.qhonline.info
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 c, t"t c vi c truy n bi n u là tham tr). truy n tham bi n
(bi n c truy n có th thay i n i dung khi ra kh-i hàm), khi g i hàm, ta t thêm
d"u & tr c bi n c n truy n tham bi n.
Ví d&:
<? function F($a, $b)
{
$a = 5;
$b = 5;
echo "<br>Trong ham F(), a = " .$a ." va b= " .$b;
}
$a = 8;
$b = 8;
echo "<br>1. Ngoai ham F(), a = " .$a." va b= " .$b;
//G i hàm tham tr).
F($a, $b);
echo " <br>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 " <br>3. Ngoai ham F() a = " .$a." va b= " .$b;
?>
37. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 37/68 www.qhonline.info
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 c bi n nh minh ho trong ví d& sau: Hàm local_Func có
truy c p n m t bi n ngoài nh ng không s( d&ng t khoá global. Ng c l i hàm
global_Func c ng truy c p n cùng m t bi n value, nh ng tác ng % hai hàm s
khác nhau.
Ví d&:
<?
function localFunc()
{
$value = 100;
echo “<p>Trong local, value co gia tri la :” + $value;
}
function globalFunc()
{
global $value;
echo “<p>Trong Global, value co gia tri la :” + $value;
}
$value = 5;
echo “<p>1.Gtri bien value = “ . $value;
localFunc();
echo “<p>2.Gtri bien value = “ . $value
globalFunc();
38. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 38/68 www.qhonline.info
echo “<p>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
<?php
echo 'You have included a file';
?>
T o file mainfile.php có n i dung.
<?php
include 'includefile.php';
echo 'I should have included a file.';
?>
File mainfile.php t ng ng v i file có n i dung:
<?php
echo 'You have included a file';
39. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 39/68 www.qhonline.info
echo 'I should have included a file.';
?>
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 ng tr ng h p không tìm
th"y file filename, Ch 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 tri u g i óng vai trò
khá quan tr ng, nó giúp mã ngu#n c a ng 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.
40. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 40/68 www.qhonline.info
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 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;
?>
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&:
<?php
$a=”abc”;
Echo “12345 ”.$a. “mnb”;
?>
x( lý nh ng ký t l trong chu!i nh d"u “ ho c $, PHP cung c"p cho ta 1 ph ng
th c x( lý hi u 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ó b ng ký t sau:
41. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 41/68 www.qhonline.info
n Ký t xu ng dòng
r Tr% v u dòng
t Ký t tab
backslash
$ dollar sign
" double-quote
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, i s th 3 là tùy ch n, v) trí u tiên c a
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”
//N u i s th hai là s âm nó s m t cu i chu!i ng c l i phía tr c s ký t
b'ng v i giá tr) tuy 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 () : i ch th ng thành hoa
42. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 42/68 www.qhonline.info
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), !=, <, <=, >, >=, === so sánh các chu!i.
Ngoài ra, ta còn có m t s ph 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
S1<S2. Nói chung hàm này có th s( d&ng gi ng toán t( so sánh trong bi u th c.
Hàm int strcasecmp(string S1, string S2): Gi ng hàm strcmp() nh ng không phân bi t
ch hoa và ch th ng.
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)
43. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 43/68 www.qhonline.info
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& :
<?php
$str = “Your customer service is excellent”;
echo (strstr ($str, “is”) . “<BR>”); // 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&:
<?php
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>
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.
<?php
44. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c 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"
?>
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 ng h p có nhi u 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", "<body text=%body%>");
//$bodytag = "<body text=%body%>”
?>
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ó i s
này thì vi c thay th s là t v) trí start 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
45. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 45/68 www.qhonline.info
Các hàm 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,…. i v i PHP
chu!i là m t trong nh ng m ng có phong phú v các hàm, s( d&ng t t chúng b n
c n hi u rõ nguyên t c ho t ng c a t ng hàm, n m v ng c"u trúc c b n trong các
hàm chu!i t ó chúng ta d dàng v n d&ng chúng trong các ng d&ng l n.
46. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 46/68 www.qhonline.info
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)
i v i h i u hành Unix hay Linux, th m&c g c c )nh ngh a b'ng d"u /,
nh ng i v i h i u hành Windows, th m&c g c 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:webdesignsales.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 c t o m i
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 c t o m i.
a+ M% d 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 i c a n i
dung c , n u file không t#n t i s c t o m i
b M% d i ch file binary
Trong tr 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 :
47. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 47/68 www.qhonline.info
$fw = fopen (“customers.txt”, “a”, 1);
ví d& :
<html>
<body>
Open File <BR>
<?
$f = “C:thuchanhvanban.txt”
$fw = fopen ($f, “a”);
?>
</body>
</html>
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 @ b t l i
Xem o n ch ng trình sau ây :
<html>
<body>
Open file and Debug <BR>
<?
$f = “C:thuchanhvanban.txt”;
@$fw = fopen ($f, “a”);
if (!$fw) {
echo (“File b) tr&c tr c, không m% c”);
}
48. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 48/68 www.qhonline.info
?>
</body>
</html>
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);
}
49. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 49/68 www.qhonline.info
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 ng y nh hàm fgets (), nh ng các ký t n'm trong c p d"u <> s b)
lo i b- khi 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 (“<P> $arrtext[$i] </P>”);
}
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 c ghi, còn n u 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 chi u dài
length c a i s th ba.
50. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 50/68 www.qhonline.info
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 u file
Ví d& : fseek ($fw, 1); // di chuy n 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);
51. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 51/68 www.qhonline.info
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 c nguyên lý ho t ng, trình t x( lý 1 file d
li u khi chúng c tri u g i trong tài li u PHP.
52. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 52/68 www.qhonline.info
Bài 7: X( Lý Form Trong PHP
I- T ng tác v i ng i s d ng:
PHP cho phép ng i s( d&ng t ng tác v i chúng thông qua form nh p li u c vi t
thu n túy trên HTML. Tuy nhiên làm c i u "y PHP yêu c u form ph i áp
ng 1 s quy )nh chung t ra.
Chúng ta cùng phân tích th$ form trong HTML sau:
<form name=”Tên form” action=”link x( lý” method=”Ph ng th c”>
Chúng ta th"y r'ng 1 form ph i bao g#m:
Tên form d dàng tách bi t v i giá tr) c a chúng.
Action: hành ng chuy n ti p n link x( lý.
Method: Là ph ng th c truy n bao g#m POST và GET.
Ví d&:
<form action = “check.php” method = post name=reg>
Please type your name here : <BR>
<input type = text name = “username”><BR><BR>
<input type = submit value = “Submit Data” name=”add”>
</form>
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 c bi n x( lý là : $_POST[‘username’];
II- X lý d li u t! trang ng 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&:
53. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 53/68 www.qhonline.info
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:
<html>
<form action = “processform.php” method = post>
Please type your name here : <BR>
<input type = text name = “username”><BR><BR>
<input type = submit value = “Submit Data”>
</form>
</html>
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:
<html>
<head>
<title>login page</title>
</head>
<body>
<form action="checklogin.php" method=POST>
Username <input type=text name="user" size=15>
<br>Password <input type=password name="pass" size=15>
<br><input type=submit name=submit value="Login">
</form>
</body>
</html>
Ti p t&c t o trang checklogin.php v i n i dung sau:
54. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 54/68 www.qhonline.info
<?php
$username=$_POST['user'];
$password=$_POST['pass'];
if($username == "admin" && $password="12345")
{
echo "<font color=red face=tahoma>Welcome to, ".$username."<font>";
}
else
{
echo "<font color=red face=tahoma>Username hoac password khong chinh xac,
vui long dang nhap lai<font>";
}
?>
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.
55. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 55/68 www.qhonline.info
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 a c ng ho c b nh c a máy ng i s( d&ng.
Nó c trình duy t g%i ng c lên l i server m!i khi browser t i 1 trang web t
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:
<?php
56. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 56/68 www.qhonline.info
setcookie("name","Kenny Huy");
?>
<html>
<head>
<title>Test page 1</title></head>
<body>
<b><a href=cookie2.php>Click here</a></b>
</body>
</html>
Ti p t&c t o trang cookie2.php v i n i dung sau:
<html>
<head><title>Result Page</title></head>
<body>
<?php
echo "Ten cua ban la <b>".$_COOKIE['name']."</b>";
?>
</body>
</html>
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”,” ng d+n”,”Tên mi n”,”An toàn”
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.
Th i gian là th i h n dùng thi t l p s t#n t i c a cookie. c tính theo s giây
so v i m c ngày 1-1-1970. Th ng 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ó c g(i theo giao th c HTTPS hay không. Ch n 1
là có và 0 là k t n i thông th 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.
57. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 57/68 www.qhonline.info
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:
<?php
setcookie("name","Kenny Huy",time()-360);
?>
<html>
<head>
<title>Test page 1</title></head>
<body>
<b><a href=cookie2.php>Click here</a></b>
</body>
</html>
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 ng xu"t thoát kh-i ph n qu n tr)
58. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 58/68 www.qhonline.info
II- T ng quan v SESSION
M t cách khác qu n lý ng i s( d&ng là session. Session c hi u là kho ng th i
gian ng i s( d&ng giao ti p v i 1 ng d&ng. M t session c b t u khi ng i s(
d&ng truy c p vào ng d&ng l n u tiên, và k t thúc khi ng i s( d&ng thoát kh-i
ng d&ng. M!i session s có 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 c xem nh m t i u khi n phía server l u tr và qu n lý
phiên làm vi c. làm c i u này, khi m t ng i s( d&ng truy c p vào m t
website, webserver cung c"p cho ng 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 i s( d&ng thông qua cookie có tên
PHPSESSID. Giá tr) này t#n t i cho n khi nào chu k* s ng c a session k t thúc
ho c ng 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 ng ng PHPSESSID c ng c t o ra. Các
bi n session s c l u trong m t t p tin v n b n này và % t i v) trí 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 u th c thi session. Chúng ta
còn ph i ng ký 1 giá tr) session. ti n cho vi c gán giá tr) cho session ó.
Ta có cú pháp sau: session_register(“Name”)
Ví d&:
<?php
Session_start();
Session_register(“username”);
?>
59. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 59/68 www.qhonline.info
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:
<?php
session_start();
session_register("name");
$_SESSION["name"] = "Kenny Huy";
?>
<html>
<head>
<title>Test page 1</title></head>
<body>
<b><a href=session2.php>Click here</a></b>
</body>
</html>
T o trang session2.php v i n i dung sau:
<?
session_start();
?>
<html>
<head><title>Result Page</title></head>
<body>
<?php
echo "Ten cua ban la <b>".$_SESSION["name"]."</b>";
?>
</body>
</html>
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:
60. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 60/68 www.qhonline.info
<?php
session_start();
session_destroy();
?>
<html>
<head>
<title>Test page 1</title></head>
<body>
<b><a href=session2.php>Click here</a></b>
</body>
</html>
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 ng h p c& th . T ó có th áp d&ng vi t
nh ng ng d&ng nh- nh ki m soát ng i ng nh p, làm gi- hàng online,…..
61. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 61/68 www.qhonline.info
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 ã t vào.
2- Nh ng nh ngh a c" b n:
a) 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 test@yahoo.com
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
62. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 62/68 www.qhonline.info
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 ng).
UNSIGNED : Ph i là s nguyên d 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 có chi u dài t 0->4294967215
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
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 (<tên_c t> <mô_t >,…,<tên_c t_n>…..<mô_t _n>)
Ví d&:
mysql> create table user(user_id INT(15) UNSIGNED NOT NULL
AUTO_INCREMENT, user
63. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c 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 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 <tên_c t> <thu c_tính> AFTER <tên_c t>
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"
,"lanna@yahoo.com","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&:
64. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 64/68 www.qhonline.info
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 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
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 c s p x p.
Trong ó quy c s p x p bao g#m hai thông s là ASC (t trên xu ng d i), DESC (t
d i lên trên).
Ví d&:
65. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 65/68 www.qhonline.info
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 c s p x p
theo username trình t t trên xu ng d 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 c s p x p
theo username trình t t trên xu ng d 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=”admin@qhonline.info” 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 ;
66. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 66/68 www.qhonline.info
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 :
<?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)
{
67. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 67/68 www.qhonline.info
$row=mysql_fetch_array($query)
}
?>
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 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- 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.
68. Giáo trình PHP C n B n Gi ng Viên: Bùi Qu c Huy
Trang 68/68 www.qhonline.info
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,…