You are on page 1of 41

LAP TRNH WEB NG VI

PHP / MySQL
GUESTBOOK CATALOG FORUM SHOPPING CART

PHAN 1
Tong Phc Khai (tong hp& bien dch)

Gii thieu
Chung ta hay thc hien mot chuyen i than thoai, trong chuyen i nay chung ta se kham pha ngoai hnh cung nh noi tai cua MySQL va PHP mot cach that t m. ay la mot cuoc hanh trnh ay nhng thu v va bat ng. Okie, co le toi co ve hi lac quan phai khong cac ban. Neu nh ban ong quan iem vi toi tren mot phng dien nao o, trong cuoc hanh trnh nay ban se co ngay s giup moi khi gap phai nhng s nham chan. Hay oi mat s that ngay nhe: Tro chi lap trnh ng dung khong phai luc nao cung de nuot au. Trong bat ky cuoc tham hiem nao th chac chan cac ban se phai co nhng giay phut nan long, o la luc gap phai s co loi cu phap hoac oi khi la nhng oan ma khong cho ket qua nh mong muon. Nhng ngoai nhng viec o ra, toi ngh la co mot ly do that chnh ang en cac ban en vi chung toi ay. Lap trnh Web ang la mot cuoc chi ay ha hen hien nay cung nh tng lai. Bat ke ban co kien thc c s lap trnh cho bat ky loai ngon ng nao nh Visual Basic, Cobol, hay ban ch biet ve HTML va JavaScript, th hom nay ban van co c hoi e nam bat cac kinh nghiem mi me ve lap trnh ng dung Web. Toi ngh la khong co s ket hp nao tot hn gia PHP va MySQL. So lng ngi s

dung ngon ng nay cang gia tang, PHP va MySQL a tr thanh rat thong dung, nhng oi hoi lng ngi biet cac cong cu lap trnh nay cung tang theo. Mot chut xu na toi se noi ro cho ban biet tai sao lai phai s dung PHP va MySQL. Nhng trc het toi muon ban hay khao sat qua kien truc s bo cua ng dung Web. V ch khi ban nam bat c ieu nay th toi mi co the tiep tuc trnh bay chi tiet rang tai sao PHP va MySQL la trung tam cua moi trng phat trien ng dung Web.
Trc khi tiep tuc, toi ngh rang ban a oc nhng g toi a gii thieu va hieu no. Chung ta tiep tuc i thoi!

Kien truc c ban


Kien truc can ban nhat e trang Dynamic Web hoat ong c la no phai lam viec tren mo hnh client/server. Nom na la moi th client hay server eu am ng mot chc nang rieng e hoan thanh cong viec chung o la cho ra mot trang Web ong. Cac ban co le a quen thuoc vi chng trnh WinWord e soan van ban, no co the hoat ong oc lap tren bat ky may tnh nao chang can quan tam ti cai g la client hay cai g la server. ng dung Web th khac han, phai co mot mo hnh server co the la

mot may tnh lam server thoi, nham tap trung hoa viec x ly d lieu. Con cac client, con c hieu nom na la may tnh cua ngi s dung phai c noi mang vi server, gia s cac may nay truy cap vao mot Website chang han, th co ngha ho a truy cap vao server, sau o lay d lieu t server ve the hien len may mnh. Cung mot luc co the co hang tram ngi (client) truy cap vao cung mot Website c x ly tap trung tren server, tng t nh mot am tre xum nhau gianh phan cua mnh t mot cai banh.

Cac ng dung ma ban phat trien tren nen MySQL va PHP s dung tnh nang single client o la trnh duyet Web. Tuy nhien, khong phai ay ch la ngon ng duy nhat e phat trien ng dung Web. oi vi nhng ng dung phc tap oi hoi multi-client hoac can cac tnh nang bao tr (chung ta se ban tnh nang nay sau), th ng dung Java applet se hu dung cho viec nay. Ch tr trng hp ban can s dung ng dung thi gian thc nh ng dung chat chang han, th ban Java Applet mi can thiet. ay chung ta khong ban ti lap ng dung cho chuyen tan gau ma ch tap trung vao ng dung duyet Web nen khong ung cham g ti Java Applet ca.

Client (ngi Viet tam oc la klai-n)

Nh ban a biet ngon ng khi thuy cho viec duyet Web la HTML. HTML cung cap hang ta nhng the lenh (Tag) cho phep the hien trang Web theo nhieu kieu cach khac nhau. Neu ban cha co kien thc c s ve HTML th co the chay ra ngoai mua ngay mot quyen sach hoac download tren internet xuong cac bai hoc hng dan. Ban khong nen bo ra qua nhieu thi gian e hoc ve HTML. Ngoai HTML ra cac trnh duyet Web con cho phep cac add-in ho tr nhieu th khac nh RealPlayer, Flash, Shockwave, hoac ho tr ve Javascript hoac XML. Nhng ay chung toi ch tap trung tren nhng g can thiet cho s hoi nhap cua ban o la HTML.

Hau het cac ng dng Web eu hoat ong tap trung tren Server. Mot ng dung ac trng goi la Web Server se am trach viec giao tiep vi cac trnh duyet. Mot C s d lieu (CSDL) tren Server se lu tr tat ca nhng thong tin ap ng yeu cau cho cong viec cua ng dung Web. Ke tiep, ban can phai co mot ngon ng lam vai tro "chu be lien lac" gia Web Server va CSDL tren server. Ngon ng nay cung thc hien cac cong viec x ly thong tin en va i t Web Server.

Server (ngi Viet tam oc la s-v)

WEB SERVER (Apache, IIS)

MIDDLE WARE (PHP, ASP, JSP)

DATABASE SERVER (MySQL, SQLserver..)

INTERNET

WEB BROWSER (Internet Explorer, Netscape)

Va d nhien la cac th nay se chang hoat ong c neu nh khong chay tren mot He ieu Hanh (HH). Cac th nh Web Server, Ngon ng lap trnh, CSDL phai hoat ong tot tren mot HH nao o.

He ieu hanh
Co rat nhieu chung loai HH. Windows 98/XP va Linux co le rat pho bien vi tat ca moi ngi. Co trng hp ban lam viec tren HH ma t ai biet ti va ban ch co an tng thch s dung no ma thoi. Hay gac qua nhng y tng o neu nh ban that s muon i tren con ng thiet ke web. Hay trang b cho mnh kien thc ve HH WinNT /2000 /2003 va Unix i. Viec lam nay se rat co ch hn la chuyen bao moi ngi nen i hoc mot khoa ve AS/400. Ban se s dung loai nao trong cac th noi tren ay? Okie, ay la mot cau hoi hn rac roi ay. Cau tra li ay la tuy thuoc ban la "tn o" cua HH nao. Neu nh ban van cha ro rang ve ieu nay, hay e toi noi cho ban nghe ve "chien tranh giao phai HH". Neu ban cha hieu c toi ang noi g, th ay la cac kien thc c ban: PHP va MySQL thuoc nhom phan mem ng dung co ten goi la open source (nguon m). Viec nay co ngha la ngi dung se xem c ma nguon cua cac ng dung s dung PHP/MySQL. Chung tan dung c mo hnh phat trien da vao nguon m, cho phep ngi nao cam thay thch no eu co the gop phan vao viec phat trien cac d an.

Trong trng hp cua PHP, cac lap trnh vien tren toan the gii tham gia vao viec phat trien ngon ng va khong trong ch mot khoan li nhuan nao. Phan ln nhng ngi tham gia cong viec eu co niem am me viec tao ra mot san pham phan mem tot, ho se cam thay thch thu khi thay ngi khac s dung cac cong cu cua ho nh toi va ban chang han. Phng phap nguon m nay ban au ch con la nhng vong lan quan ma thoi, nhng ve sau a tr thanh ay tiem lc khi co s ra i va tr nen pho bien cua bo nguon m Linux. Hau nh cac nguon m eu mien ph, ban co the download, cai at va s dung chung ma khong can phai i s cho phep hay phai tra tien cho bat ky ai. Phng thc nay th Microsoft, Oracle hay mot so cac cong ty lap trnh nao khac khong the ap ng c. Neu ban khong phai la tn o cua phai nguon m, th hay chon cong cu c coi la beo b: NT/2000/2003. Neu cong ty cua ban a s dung san pham cua Microsoft nhieu nam roi th moi viec se tr nen de dang neu ban muon duy tr lam viec vi moi trng nay. Neu ban la thanh vien cua nhom lap trnh Visual Basic, co le ban se gan bo vi NT/2000/2003. Ngay ca trong trng hp nay, khong co tr lc nao ngan can

ban trong cong viec phat trien vi cong cu PHP va MySQL. Ban cung co the th nghiem PHP/MySQL tren nen HH Windows 95, 98, XP.

Web Server

Chc nang cua Web Server co ve khong phc tap may. No ch tai cho, chay tren nen cua HH, lang nghe cac yeu cau ai o tren Web gi en, sau o tra li nhng yeu cau nay, va cap phat nhng trang Web thch ng. Thc te th no khong qua n gian nh vay, bi v nhiem vu cua Web Server la phai cung cap tnh on nh cho moi trng Web cho nen oi hoi nay phai c ap ng mot cach rat nghiem tuc. Co nhieu loai Web Server khac nhau, nhng chu yeu tren th trng ch thng s dung Apache va IIS (Internet Information Server cua Microsoft). INTERNET INFORMATION SERVER (IIS) c gan lien vi moi trng Windows va no la thanh phan khong the thieu cua Active Server Pages (ASP). Neu ban chon con ng cua Microsoft th co le ban a hieu ro ve IIS. Co mot s tch hp nhat nh gia mot ngon ng lap trnh va mot Web Server. Cung vay, PHP4 c tch hp rat toi oi vi IIS. Trc ay, co mot so van e can phai ban

ve tnh on nh cua PHP/IIS vi viec truyen tai ln, nhng PHP va IIS cung a c cai thien lien tuc nen viec nay khong con ang phai ban tam. APACHE la mot kieu mau Web Server rat pho bien. Giong nh Linux, PHP, MySQL no la mot d an nguon m. Khong co g ngac nhien khi ngi ta thay Apache c ho tr rat tot tren moi trng Unix, nhng ch kha tot trong Windows. Apache tan dung c tnh nang cua third-party. Bi v ay la nguon m nen bat ky ai co kha nang eu co the viet chng trnh m rong tnh nang cua Apache. PHP hoat ong vi t cach la mot phan m rong cua Apache, va ngi ta goi la mot module cua Apache. Apache co tnh on nh va toc o ang phai noi. Tuy nhien, cung co mot so s phan nan ve no la khong ho tr cong cu o hoa trc quan, ieu co the giup ngi ta lam viec mot cach de dang hn. Ban phai thc hien cac thay oi oi vi Apache bang cach s dung dong lenh, hoac s cac tap tin text trong folder chng trnh Apache. Neu lan au en vi Apache th ban se gap mot chut la lam. Mac du Apache ch lam viec tot tren Unix, nhng cung co nhng phien ban chay tot tren he Windows. Khong mot ai, ke ca cac nha phat trien Apache e ngh rang

Apache nen c chay tren mot server Windows ban ron. Neu ban quyet nh chon HH Windows cho server th ban nen s dung IIS. Neu ban th nghiem ng dung tren Windows va sau o em upload va chay tren Unix/Apache cua nha cung cap host th cung khong he han g, ng dung cua ban van chay ngon lanh.

PHP thuoc lp ngon ng lap trnh goi la middleware. Cac ngon ng nay hoat ong can ke vi Web Server e thong dch cac yeu cau t tren World Wide Web, sau o nhan cac tra li t Web Server chuyen tai en trnh duyet Web nham ap ng cac yeu cau o. Middleware la ni ma ban se thc hien cac khoi lng rat ln cong viec chnh yeu cua ban. Vi ho tr nay Web Server cua ban se khong phai can ang qua nhieu khoi lng cong viec. Nhng khi ban phat trien ng dung cua ban, ban se ton nhieu thi gian viet ma chng trnh e cho chng trnh cua ban co the hoat ong c. Ngoai PHP ra co mot so ngon ng khac co chc nang tng ng nh ASP, Perl, ColdFusion.

Middleware

Relational Database Management Systems (He Quan tr C S D Lieu Quan he RDBMSs) cung cap phng thc tuyet vi e lu tr va truy xuat lng thong tin ln va phc tap. No a ra i kha lau. Thc te, no co trc Web, Linux va WindowsNT, cho nen khong co g ngac nhien khi co qua nhieu he CSDL e chon la. Tat ca cac CSDL nay e da tren c s SQL (Structure Query Language). Mot so he pho bien nh Oracle, Sysbase, Informix, Ms SQL Server, IBM's DB2. He nguon m thong dung hien nay la MySQL ma quyen sach nay e cap en, ngoai ra con co hai he nguon m khac la PostgresSQL a mot thi thay the MySQL va Interbase la bo nguon m cua Borland gii thieu vao thang 8/1999.

He CSDL quan he

Tai sao s dung PHP va MySQL

Tai sao co qua nhieu chon la nh vay ma chung ta lai phai ch lay ra cap bai trung PHP/MySQL ma thoi? Toi se giai thch ieu nay phan sau.

Noi ve PHP
Cac ngon ng lap trnh xem ra giong nh cac loai giay dep. Co loai co ve bat mat vi mot so ngi nay, nhng lai kho a vi ngi khac va ngc lai. Mot so ngi ch thch s dung mot hieu giay nao o a quen thuoc va ngon ng lap trnh cung tng t nh vay. ay toi muon ngu y vi cac ban la khi lap trnh Web, cac ngon ng lap trnh eu cho ket qua gan giong nhau. Cau hoi ngon ng nao tot nhat khong phai la van e no khong co kha nang thc hien mot so chc nang nao o ma thng la no co lam cho ban thc hien cong viec mot cach nhanh chong va nhoc cong hay khong?

Toc o nhanh, de s dung


Chung ta hay ban ve toc o. Co 3 th ma toi chac chan khi ban ve viec so sanh toc o gia cac ngon ng lap trnh Web. Th nhat, ng dung viet bang C chay nhanh nhat. Th hai, cong viec lap trnh C kha la phc tap, va se ngon nhieu thi gian hn. Th ba, viec so sanh gia cac ngon ng la mot ieu kho khan. Tat ca nhng g toi biet la toi cam thay yen tam khi noi rang PHP cung nhanh nh cac ngon ng khac. Tr lai v

du so sanh vi cac loai giay dep: Vina, ong Hai, Kien Hoa, Hong Thanh, Italy v.v., chan chan ban se chon loai tien dung nhat? Neu ban giong nh toi, ban se cam thay rang PHP co ay u cac ac tnh nh kha nang, cau truc va de s dung. Xin noi them, ay ch la cach nhn rieng cua toi th toi tin rang cu phap PHP tuyet hn ASP hay JSP. Va theo toi th viec go lenh PHP nhanh hn ColdFusion va no khong kho hoc nh Perl. Tom lai, toi cho rang PHP cung cap cac tnh nang manh me e thc hien ng dung Web mot cach nhanh chong.

Chay tren nhieu he ieu hanh


Nh a trnh bay phan kien truc web, toi co noi la PHP co the chay tren WindowsNT/2000/2003 va Unix vi s ho tr cua IIS va Apache. Nhng ngoai ra no co the chay tren mot so cac platform khac nh Netscape, Roxen, hay mot vai th khac. Nh chung ta biet ASP co the chay tren Unix, ColdFusion co the chay tren Solaris va Linux, JSP co the chay tren kha nhieu loai platform. oi vi PHP, no co the chay tot tren nhng platform ho tr cac chung loai tren.

Truy cap bat ky loai CSDL nao

ng dung cua ban d nh se truy cap nhng loai d lieu dch vu nao? LDAP, IMAP mail server, DB2, hay XML parser hay WDDX. Bat ke ban can en th g th PHP cung san sang ho tr thong qua cac ham c xay dng san no se lam cong viec cua ban tr nen rat de dang va tien li. Nhng neu nh co mot so th cha c xay dng san th sao? Ta tiep tuc sang phan sau se ro.

Luon c cai tien & cap nhat


Neu nh ban cam thay b ng oi vi viec phat trien nguon m, ban co le se ngac nhien oi vi chat lng cua loai phan mem nay. Co hang ngan nhng chuyen gia lap trnh xuat sac i san va ho san sang bo thi gian ra e tao nhng phan mem tuyet vi va hau nh mien ph. oi vi ngon ng thnh hanh nh PHP th at han la cac rat nhieu cac nha lap trnh ang thc hien phat trien no hang ngay.

S that co mot viec rat an tng la neu nh ban co mot s co ky thuat, ban co the gi email en mot nha phat trien PHP cac chi tiet s co o. Ch trong vong vai gi ban se nhan c s tra li thoa ang. Khi PHP4 c pho bien, no a tr thanh mot hien tng cua ngon ng lap trnh. No giup cho viec bo sung so lng ln cac ham chc nang mot cach de dang. Neu nh ngon ng a co san nhieu ham ac thu cho cong viec th ban se ton cong hn cho viec lap trnh cua mnh.

c hng dan ky thuat bat c luc nao


Hau het cac ngon ng eu ho tr active mailing list (hieu nom na la danh sach mail nhng thanh vien trc chien ho tr ky thuat) va cac development site (trang web ho tr giai quyet ky thuat). PHP cung khong ngoai le. Neu ban gap phai s co - gap nhng loi trong chng trnh va khong tm ra cach khac phuc - se co hang tram ngi co ten trong danh sach mail luon san long kiem tra va khac phuc s co cho ban. Bo nguon m PHP that s a tao ra mot tnh cam cua ca cong ong. Khi ban gap phai kho khan oi vi no th luc nao cung co nhng ong mon chia se noi long o va giup ban khac phuc nham em lai niem vui cho ban.

Hoan toan mien phi$


Ban khong ngai g ve van e ban quyen khi ban sam mot may vi tnh va cai len o nhng phan mem nh Linux, Apache, PHP v tat ca eu mien ph.

Free!

Noi ve MySQL
Mac du MySQL c pho bien rat nhieu nhng no van co nhng oi thu ang gm ang canh tranh vi no. Nhng oi thu cua no co the troi hn ve mot phng dien ac thu nao o. Trong phan tren, chung ta a ban s qua MySQL. Trong phan nay, ban se c biet ve nhng ac iem cua nhng He quan tr CSDL khac ma MySQL khong ho tr. Vi nhng han che o a lam cho MySQL khong c chon e chay tren mot so cac moi trng. Neu ban ang co ke hoach bat au cho mot ngan hang chang han, th toi khuyen ban la MySQL khong thch hp cho ban. Nhng oi vi phan ong moi ngi va phan ln cac ng dung, MySQL la s chon la cua ho bi no rat thch hp cho nhng ng dung Web.

Va tui tien

Hay ngh ban can cai at Oracle. Hay chuan b hau bao cua mnh khoang 30.000 en 100.000 USD hoac tham ch con hn the na. ieu hien nhien la Oracle, Sysbase va

Informix la nhng He Quan tr CSDL tuyet vi, nhng gia thanh qua cao, khong hp vi tui tien cua phan ong moi ngi. MySQL hoan toan mien ph. Ban co the s dung ma khong can chuan b bat ky khoan tien nao.

Nhanh va manh
MySQL khong co ay u nhng c s vat chat cho mot He Quan tr CSDL chnh tong, nhng oi vi cong viec thng nhat cua phan ong moi ngi th no cung cap cung kha nhieu th. Neu cong viec cua ban la lu tr d lieu tren Web hoac lam mot trang Thng mai ien t c va, th MySQL co u nhng th ban can. oi vi nhng CSDL c trung bnh th MySQL ho tr tuyet vi ve toc o. Cac nha phat trien MySQL rat t hao ve toc o san pham cua ho. Vi cac ng dung ma toi gii thieu trong phan III va IV cua quyen sach nay, th ban kho co the kiem c mot He Quan tr CSDL nao at c toc o nhanh hn no.

Cai tien lien tuc


MySQL c cai thien lien tuc vi mot tan so khong ng. Cac nha phat trien cap nhat no thng xuyen, ngoai ra con bo sung cac tnh nang rat an tng cho no moi luc moi ni. Hien tai, MySQL a c bo sung them ho tr transaction. Nh vay la MySQL a thc thu tr thanh mot He Quan tr CSDL chuyen nghiep.

Good!

Thc hanh ng dung au tien


Phan m au nh vay la tam u. Bay gi chung ta hay tiep tuc sang phan viet mot ng dung th nghiem e biet c cach thc hoat ong cua ngon ng nay nh the nao. Co le oc qua phan gii thieu ban cung a co mot so khai niem nhat nh ve s hoat ong cua chung.

Cong cu can thiet

Co mot so thanh phan can thiet ma ban phai co trc het. Toi se gii thieu ngay sau ay va ban se biet mnh can en nhng g.

ay la ng dung chay tren Web, cho nen ban ieu hien nhien la ban can phai co mot Web Server. Ban s dung Apache, ban cai len Winserver2000/ 2003 hoac 98, XP thong dung cua ban. Co mot so phien ban Apache co san bo cai at PHP trong o.

PHP Webserver

Neu cha co ban phai cai at them PHP. Con na, ban phai cai MySQL. Nh vay bo ba Apache, PHP va MySQL luon ong hanh vi nhau. Ban xem them phan cai Apache server tren cac CD thc hanh PHP hoac xem tren cac Dien an Tin hoc . Sau khi cai at xong ban khi ong Apache. Neu t trnh duyet go vao http://localhost trang web thong tin cua Apache hien th th coi nh thanh cong. Lu y: Ban can phai xac nh th muc goc cua localhost e cha cac file .php cua ban sau nay (xem trong hng dan cai at Apache).

Text Editor
e soan thao cac dong lenh PHP ban can co mot chng trnh soan thao text n gian thoi, nh Notepad trong Windows chang han. Co mot so chng trnh soan thao ho tr PHP, cac dong lenh c ngi sang bang nhieu mau khac nhau nham lam cho viec lap trnh cua ban de dang hn. Ban co the vao cac website cua Allairre (www.allaire.com) hoac Editplus (www.editplus.com). Hien nay, chng trnh Dreamweaver MX cua Macromedia cung ho tr soan thao ma lenh PHP rat tot.

BAT AU LAM
Toi ngh la toi a khi au quyen sach vi nhng m ly thuyet suong. Bay gi chung ta hay bat tay vao thc i thoi. Nh ban a biet khi truy cap vao mot trang Web co the ban se c yeu cau hay chnh ban muon ghi lai y kien cung vi mot m cac thong tin nhan dang ve mnh nh ho ten, a ch website, email v.v. Tat ca cac thong tin nay se c lu tr vao mot CSDL tren Web. Nh vay, ngi quan tr Web hoac nhng ngi truy cap khac se biet thong tin ca nhan cung nhng y kien cua ban. Ngi ta goi thong tin nay la GuestBook (hieu nom na la So vang e khach vieng tham ghi chep). Bay gi chung ta bat tay vao viec tao mot GuestBook.

Tao mot Database (quan trong!)

Bay gi ban can biet phai lam g roi. Chuyen au tien la phai tao mot CSDL lu tr thong tin cua khach. e lam c ieu nay ban can phai dung en ngon ng SQL

(thc te ban co the lam vi vai ong tac nhap chuot va vai ngon go phm, nhng hay tap lam quen vi SQL v no se hu dung ve sau). Ban se c hoc ky ve SQL trong cac chng sau. Do o ban ng lo lang khi cha hieu g ve no.

Bay gi ban hay khi ong MySQL. Neu ban a cai at MySQL trong Windows th no se co bieu tng e khi ong hoac no se c t ong khi ong khi m Windows len. oi vi MySQLAdmin version 1.1 cho phep ban lam viec trong 2 giao dien: Windows va Dos. oi vi giao dien Widows th bieu tng MySQL (bieu tng en giao thong) nam SystemTray, ban ch viec click chuot phai len no va chon Show me. Ca so lam viec cua MySQL hien len, tuy nhien trong ca so nay ch cho phep ban thc hien mot so thao tac co han oi vi CSDL. Hnh tren la cach tao Database mi trong MySQL theo giao dien Windows. Tuy nhien, toi khuyen cac ban nen dung tien ch PhpMyAdmin, chng trnh nay ho tr cac thao tac oi vi CSDL trong MySQL vi giao dien de s dung. Trong phan nay toi hng dan them ban thc hien thao tac vi Database trong giao dien dong lenh MSDOS bi v cac giao dien khac toi ngh t ban co the lam c. Bat man hnh dong lenh DOS len, chuyen sang th muc cai at MySQL co cha tap tin mysql.exe (/mysql/bin) va go vao mysql <Enter>. Tai dau nhau nhac lenh hay go lenh e tao ra mot database mi:

mysql> create database guestbook; Query OK, 1 row affected (0.00 sec) mysql>

Bay gi trong CSDL guestbook ban can phai co table cha thong tin cua khach. Ban hay dung lenh create table t dau nhac lenh:

mysql> use guestbook Database changed mysql> create table guestbook -> ( -> name varchar(40) null, -> location varchar(40) null, -> email varchar(40) null, -> url varchar(40) null, -> comments text null -> ) -> ; Query OK, 0 rows affected (0.00 sec) mysql>

Ban a co mot CSDL ten la guestbook va mot table trong CSDL nay cung ten la guestbook. Bay gi a en luc chung ta viet mot ng dung bang PHP e thc hien cac thao tac: xem, chen, sa, xoa cac thong tin trong CSDL guestbook.

Viet lenh PHP


Ban hay dung mot chng trnh soan thao van ban n gian nh Notepad chang han. at ten cho cac tap tin la .php, cac tap tin nay c lu tr trong th muc goc cua web local tren may ban (nen tham khao CD cai Apache e ro hn).

Cu phap c ban
ieu thu v oi vi PHP la cho phep ban xen ke gia lenh HTML va lenh PHP. Do o, PHP c xem nh la mot script giong nh Javascript hay Vbscript. Cac lenh cua PHP c goi trong the m: <? va the ong: ?> Bay gi ban hay th chay tap tin hi.php sau:
<? echo Hi,; ?> mom.

Khi chay ban se go vao: localhost/hi.php Ket qua cho ra la "Hi, mom". Ta thay ch "Hi," nam trong tag lenh PHP con ch "mom" thuoc ve HTML.

Tuy nhien, PHP con lam c nhieu ieu khac na, cung giong nh cac ngon ng lap trnh khac, no co the lam viec vi cac loai bien, kieu d lieu, cha rat nhieu ham chc nang. Hay tm hieu v du sau:
<? echo hi, mom. ; $var = date(H); if ($var <= 11) { echo good morning; } elseif ($var > 11 and $var < 18) { echo good afternoon; } else { echo good evening; } ?>

Neu nh ban thay kho hieu th cung khong sao. Chung ta se biet tng tan hn phan sau.

Trang ket qua se hien th cac li chao tuy thuoc vao gi giac hien tai. Toi a dung ham date cua PHP e lay ra c gi giac hien tai. Gia tr gi c em gan cho bien $var. Ke en la cac chon la c s dung e a ra li chao thch hp. Cac ban hay e y mot chut, cac lenh cua PHP eu c ket thuc vi dau cham phay (;). Trong phat bieu IF chung ta thay dau ngoac nhon { } cha cac lenh tuy se c thi hanh tuy thuoc vao ieu kien. Cac ieu kien th c bao trong dau ngoac n ( ). Ham date() va lenh echo ch la 2 trong hang tram cac ham va lenh co trong PHP ma cac ban se c hoc mot so can thiet cua chung trong cac chng sau. Bay gi ban hay tm hieu them mot so lenh ve CSDL.

Lenh PHP e ket noi Database (quan trong)


Bi v PHP va MySQL hien tai tren may cua ban van con la hai the gii tach biet nhau. Do o, muon dung PHP e lam viec c vi CSDL ban can phai tao ra si day lien ket gia hai chien hu nay. V co the co rat nhieu database trong MySQL, do o ban can phai ch ra ban muon s dung database nao trong MySQL. Chung ta hay thc hien nh sau:

<? mysql_connect(localhost, khai,kkk) or die (Could not connect to database); mysql_select_db(guestbook) or die (Could not select database); ?>

Dong au tien thc hien viec ket noi vi Database Server ang nam tren may localhost, co username la khai, password la kkk. Neu ket noi thanh cong, no se thc hien bc ke tiep la ket noi vi database nam trong o la guestbook bang lenh mysql_select_db() Cac ban nen lu y la cac lenh tren ban s dung thng xuyen cho moi ket noi CSDL cua ban, do o toi khuyen ban nen lu no vao mot tap tin (dbconnect.php chang han), sau nay can th ch viec dung lenh include(dbconnect.php);

Nhap d lieu vao Database


Bi v hien tai database cua ban van cha co user nao, cho nen toi se hng dan ban viet cac lenh e thc hien viec nay. Nhng trc tien, ban can phai biet them mot chut t ve bien trong PHP. phan trc ban a xem qua mot v du trong o co cha bien, tuy nhien oi vi moi trng client/server, ban can phai lam viec vi bien data t client. Ban se thng xuyen lam viec vi form HTML (ban co the tm hieu ky hn phan Phuc luc A. Chung ta nen biet la moi phan t cua form eu co mot cai ten, va khi ban submit mot form nao o th cac ten cua cac phan t trong o tr thanh mot bien trong script PHP c form submit en. Vi form nh sau, khi c submit, cac bien $surname va $submit se c tao ra trong myscript.php. Gia tr $surname se mang gia tr ma user a nhap vao. Gia tr cua $submit se la chuoi "submit".
<form action=myscript.php> <input type=text name=surnmae> <input type=submit name=submit value=submit> </form>

Toi xin lu y vi cac ban la lap trnh Web khong giong nh cac dang lap trnh khac cho no khong trang thai tnh. e the hien mot trang, Web Server phai trc het nhan mot thnh cau t trnh duyet. Giao thc s dung cua chung la HTTP, Hypertext Transfer Protocol. Cac yeu cau se bao gom: trang web ma trnh duyet se thay, form data, loai trnh duyet ang c s dung, a ch IP ma trnh duyet s dung. Da vao thong tin nay ma Web Server se quyet nh phuc vu nhng g. Mot khi server phuc vu yeu cau trang web, no se duy tr s ket noi vi trnh duyet. Thong thng, ban can biet cach thc e chuyen cac bien t trang nay sang trang khac. Ban se tm thay thao tac nay trong ng dung tiep theo. ng dung cua chung ta se giai quyet van e da theo 1 trong 3 cach thc: chuyen giao theo phan t form an, s dung cookies, s dung session. Bay gi tr lai script sau:
<form action=myscript.php> <input type=text name=surnmae> <input type=submit name=submit value=submit> </form>

Ban co the quyet nh cho hien th tren site nhng g da vao cac bien thong tin t form HTML. Thong thng, ban co the kiem tra neu form a c submit hay cha bang cach kiem tra bien $submit co cha gia tr "submit" hay khong. Hay bat tay vao cong viec i thoi. Trang au tien trong ng dung c goi la sign.php co cha mot form HTML. Action cua no la create_entry.php. Sau ay la chi tiet dong lenh:
<h2>Sign my Guest Book!!!</h2> <form method=post action=create_entry.php> <b>Name:</b> <input type=text size=40 name=name> <br> <b>Location:</b> <input type=text size=40 name=location> <br> <b>Email:</b> <input type=text size=40 name=email> <br> <b>Home Page URL:</b> <input type=text size=40 name=url> <br> <b>Comments:</b>

<textarea name=comments cols=40 rows=4 wrap=virtual></textarea> <br> <input type=submit name=submit value=Sign!> <input type=reset name=reset value=Start Over> </form>

Khi ban ien ay u thong tin trong form, th cac thong tin se c chuyen oi ti create_entry.php. Chuyen au tien phai lam tren trang nay la kiem tra xem form a c submit cha. Neu roi, nhan lay gia tr a nhap vao trong form va s dung chung e tao mot query ong thi gi en MySQL. Ban ng lo lang la khong biet cac lenh SQL, ieu trc tien la ch can biet la no se thc hien viec chen d lieu vao table cua guestbook. Tap tin create_entry.php nh sau:
<?php include(dbconnect.php); if ($submit == Sign!) { $query = insert into guestbook (name,location,email,url,comments) values ($name, $location, $email, $url, $comments); mysql_query($query) or

die (mysql_error()); ?> <h2>Thanks!!</h2> <h2><a href=view.php>View My Guest Book!!!</a></h2> <?php } else { include(sign.php); } ?>

Trong lan au tien create_entry.php c goi, form sign.php se c hien th. Ke tiep, d lieu se c cap nhat vao CSDL. Hnh sau minh hoa cac form c hien th:

sign.php

create_entry.php

Hien th d lieu trong Database len man hnh Bay gi d lieu a c ghi vao CSDL guestbook . Ban can thc hien viec xem cac d lieu o. Nen nh la chung ta lai phai s dung dbconnect.php nh toi a noi vi ban trc ay. Ban can phai cho hien th tat ca cac record trong table thong tin cua khach vieng tham a nhap vao. Chung ta thc hien script sau va at ten la view.php:
<?php include(dbconnect.php); ?> <h2>View My Guest Book!!</h2> <?php $result = mysql_query(select * from guestbook) or die (mysql_error()); while ($row = mysql_fetch_array($result)) { echo <b>Name:</b>; echo $row[name]; echo <br>\n; echo <b>Location:</b>; echo $row[location]; echo <br>\n; echo <b>Email:</b>; echo $row[email]; echo <br>\n;

echo <b>URL:</b>; echo $row[url]; echo <br>\n; echo <b>Comments:</b>; echo $row[comments]; echo <br>\n; echo <br>\n; echo <br>\n; } mysql_free_result($result); ?> <h2><a href=sign.php>Sign My Guest Book!!</a></h2>

Nh chung ta thay query trong MySQL truy cap tat ca cac hang trong database. Script thc hien viec nay bang cach s dung vong lap thong qua bien $row. Trong moi vong lap th moi field trong tng record c hien th. Vd: print $row["email"] se ghi ra man hnh oi vi record ang truy cap. Khi chay chng trnh, tat ca cac field cua tng record se c hien th:

view.php

Chng trnh nay upload len internet c cha?


Bay gi th ng dung au tien cua ban a hoan tat. Neu ban muon upload web va tao len tren Server e th nghiem th cung c thoi. Nhng muon e no tr thanh mot site guestbook ung ngha th cha c au! Ban con can phai lam nhieu th e d lieu ban khong b hacker quay pha. (Con tiep)
Lu y: Ban co the tm thay cac CD thiet ke web PHP tai cac ca hang CD (Ton That Tung, tp.HCM chang han). Tren CD co trnh cai at Apache, PHP, MySQL thong dung la FOX. Ngoai ra con co cac Website PHP mau. CAC LENH BAI HOC TREN TOT NHAT BAN NEN GO LAI, KHONG NEN COPY!
tongphuockhai@mail15.com

- Kien thc la kho bau khong phai cua rieng ai. V vay ban ng ngan ngai khi chia se cho moi ngi.

You might also like