Giáo trình Php & mysql

Tài liệu Giáo trình Php & mysql: Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 1/68 www.qhonline.info Trung Tâm ào To Công Ngh Mng Vit Chuyên Tài Liu Lu Hành Ni B www.qhonline.info GIÁO TRÌNH PHP & MYSQL Biên Son: GV. Bùi Quc Huy Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 2/68 www.qhonline.info Li Nói  u Quy n giáo trình này  c t ng h p t nhng tài liu và kinh nghim thc tin qua nhiu nm ging dy ca ging viên, và  c son tho cho phù h p vi ni dung môn hc. Khác vi giáo trình mang tính thng mi, các t ng, cách din gii mang xu th thut ng, giáo trình  c xây dng trên hình thc d c, d hi u và g n gi vi thc t, tuy nhiên iu ó không có ngha hc viên có th ch tham kho giáo trình mà không i hc. Nu các bn mun hi u cn k kin thc và ý ngha ca giáo trình, bn nên tham gia các khóa hc PHP y  ti trung tâm ào to mng Vit Chuyên. Mc dù ã ki m tra  xác thc, cng nh tính úng n ca giáo trình, nhng...

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

Các file đính kèm theo tài liệu này:

  • pdftailieu.pdf
Tài liệu liên quan