mô hình mvc trong lập trình php

Xây dựng nền tảng hỗ trợ lập trình web dựa trên mô hình mvc

Xây dựng nền tảng hỗ trợ lập trình web dựa trên mô hình mvc

Ngày tải lên : 23/11/2012, 13:45
... chung đằng sau kiến trúc của một PHP Framework được kể đến là hình MVC. Một hình không mới nhưng mang lại nhiều cảm hứng cho các chuyên gia lập trình trong nhiều năm qua. Chúng ta sẽ ... TRỢ LẬP TRÌNH WEB DỰA TRÊN MÔ HÌNH MVC KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin HÀ NỘI - 2010 CHƯƠNG 1: KHÁI NIỆM VỀ WEB APPLICATION FRAMEWORK VÀ HÌNH MVC 1.1 ... CÁC HÌNH ẢNH 7 LỜI MỞ ĐẦU 8 CHƯƠNG 1: KHÁI NIỆM VỀ WEB APPLICATION FRAMEWORK VÀ HÌNH MVC 9 1.1 Web Application Framework là gì? 9 1.2. PHP Framework 9 1.3 MVC là gì? 10 1.3.1. Lịch sử MVC...
  • 47
  • 1.1K
  • 5
XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB DỰA TRÊN  MÔ HÌNH MVC

XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB DỰA TRÊN MÔ HÌNH MVC

Ngày tải lên : 24/04/2013, 16:49
... được hình MVC và vai trò của các thành phần trong các Web framework hiện nay 2- Từ hình MVC chúng tôi xây dựng được một framework viết bằng PHP hoàn toàn mới (có nhiều ưu điểm so với các PHP ... các PHP framework đương đại. Hình 2.0.3 hình MVC được áp dụng trong Hiphop framework 16 được thiết đặt trong file system/config/database .php) g. class Controller (system/libraries/Controller .php) Là ... tưởng chung đằng sau kiến trúc của một PHP Framework được kể đến là hình MVC. Một hình không mới nhưng mang lại nhiều cảm hứng cho các chuyên gia lập trình trong nhiều năm qua. Chúng ta sẽ cùng...
  • 47
  • 934
  • 3
Khảo sát qui trình sản xuất giống tôm càng xanh (Macrobrachium rosenbergii) theo mô hình nước trong hở tại trại sản xuất giống Mỹ Thạnh Thành phố Long Xuyên, tỉnh An Giang

Khảo sát qui trình sản xuất giống tôm càng xanh (Macrobrachium rosenbergii) theo mô hình nước trong hở tại trại sản xuất giống Mỹ Thạnh Thành phố Long Xuyên, tỉnh An Giang

Ngày tải lên : 01/11/2012, 14:25
... 2.3 Sơ Lược Tình Hình Sản Xuất Giống Tôm Càng Xanh Ở An Giang 10 2.4 Giới Thiệu Về Trại Giống Mỹ Thạnh 10 2.5 Các Hình Sản Xuất Giống Tôm Càng Xanh 11 2.5.1 Hệ thống nước trong hở 11 2.5.2 ... Software http://www.foxitsoftware.com For evaluation only. KHẢO SÁT QUI TRÌNH SẢN XUẤT GIỐNG TÔM CÀNG XANH (Macrobrachium rosenbergii de Man 1879) THEO HÌNH NƯỚC TRONG HỞ TẠI TRẠI SẢN XUẤT GIỐNG MỸ THẠNH THÀNH ... For evaluation only. - ii - - ii - TÓM TẮT Đề tài “Khảo sát hình sản xuất giống Tôm Càng Xanh theo quy trình nước trong hở” được tiến hành từ ngày 15/4/2005 đến ngày 15/6/2005 tại trại...
  • 61
  • 1.7K
  • 9
21 sai lam chet nguoi trong lap trinh voi PHP

21 sai lam chet nguoi trong lap trinh voi PHP

Ngày tải lên : 23/01/2013, 15:02
... PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 27 27 27 27 Dormitory 204.B5 18:20 PM April 7, 2006 1. 1. 1. 1. M M M M ộ ộ ộ ộ t t t t th th th th í í í í d d d d ụ ụ ụ ụ m m m m ẫ ẫ ẫ ẫ u u u u v v v v ề ề ề ề đườ đườ đườ đườ ng ng ng ng l l l l ố ố ố ố i i i i 5. 5. 5. 5. Kh Kh Kh Kh ô ô ô ô ng ng ng ng xem xem xem xem x x x x é é é é t t t t l l l l ạ ạ ạ ạ i i i i m m m m ã ã ã ã 4. 4. 4. 4. V V V V á á á á l l l l ỗ ỗ ỗ ỗ i i i i khi khi khi khi thi thi thi thi ế ế ế ế t t t t k k k k ế ế ế ế 3. 3. 3. 3. Kh Kh Kh Kh ô ô ô ô ng ng ng ng quan quan quan quan t t t t â â â â m m m m đế đế đế đế n n n n ng ng ng ng ườ ườ ườ ườ i i i i d d d d ù ù ù ù ng ng ng ng khi khi khi khi thi thi thi thi ế ế ế ế t t t t k k k k ế ế ế ế 2. 2. 2. 2. Kh Kh Kh Kh ô ô ô ô ng ng ng ng theo theo theo theo s s s s á á á á t t t t k k k k ế ế ế ế ho ho ho ho ạ ạ ạ ạ ch ch ch ch c c c c ủ ủ ủ ủ a a a a đồ đồ đồ đồ á á á á n n n n 1. 1. 1. 1. Ph Ph Ph Ph í í í í th th th th ờ ờ ờ ờ i i i i gian gian gian gian PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 20 20 20 20 Dormitory 204.B5 18:20 PM April 7, 2006  T ạ o m ộ t API  T ạ o m ộ t tr ì nh t ự t ê n  Nh ó m c á c h à m li ê n quan v à o m ộ t t ậ p tin 1.1. 1.1. 1.1. 1.1. T T T T ạ ạ ạ ạ o o o o m m m m ộ ộ ộ ộ t t t t API API API API Á p d ụ ng 3 l ớ p cho ch ươ ng tr ì nh c ủ a b ạ n:  Th ứ nh ấ t, c á c h à m th ự c s ự th ự c hi ệ n c ô ng vi ệ c c ủ a b ạ n  Th ứ hai, m ộ t h à m API. Đâ y l à h à m gi ú p b ạ n x â y d ự ng c á c ch ươ ng tr ì nh đặ c th ù  Ch ươ ng tr ì nh MortgageRate .php < ?php // The internal functions are layer 1 // Internal function to calculate the correct // interest rate to be used given the amount per month // and the time it is to be paid in function _mort_find_interest_rate ( $total ) { if ( $total < 30000 ) return ( 7.4 ); elseif ( $total > 30000 ) return ( 3.2 ); elseif ( $total > 50000 ) return ( 2.5 ); else return ( 1.7 ); } // The API is layer 2 // double calculate_mortgage_rate (int money, int time, int month ) // Calculate the mortgage rate given the // the total money, time its paid over and // the intervals function calculate_mortgage_rate ( $money , $time , $month ) { $rate = _mort_find_interest_rate ( $money ) / 100 ; $money /= ( $time / $month ); return ( $rate * $money ) + $money ; } ?> CalcMortgage .php < ?php // The actual application is layer 3 // $money, $time and $period are submitted // from a form include_once 'MortgageRate .php& apos; ; $price = calculate_mortgage_rate ( $money , $time , $period ); print "Your $period month cost is $price" ; ?> PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 26 26 26 26 Dormitory 204.B5 18:20 PM April 7, 2006 PH Ầ N 3: 7 L Ỗ I CH Ế T NG ƯỜ I    7. 7. 7. 7. Ch Ch Ch Ch é é é é p p p p v v v v à à à à d d d d á á á á n: n: n: n: kh kh kh kh ô ô ô ô ng ng ng ng ph ph ph ph ả ả ả ả i i i i h h h h ướ ướ ướ ướ ng ng ng ng đ đ đ đ i i i i t t t t ố ố ố ố t t t t T ô i đã g ặ p nhi ề u tay l ậ p tr ì nh m ớ i v à o ngh ề đ i ch é p nh ữ ng đ o ạ n m ã (th í d ụ nh ư l à ki ể m tra đị a ch ỉ e-mail, g ử i e-mail, l ấ y gi á tr ị t ừ form để so ạ n e-mail). H ọ th ườ ng d á n ch ú ng v à o ch ươ ng tr ì nh c ủ a m ì nh v à r ồ i k ế t qu ả l à m ộ t đố ng nh ữ ng c â u l ệ nh g ử i form kh ô ng an to à n. D ù r ằ ng m ộ t đ o ạ n m ã ch ạ y đượ c trong nh ữ ng đ i ề u ki ệ n t ố i ư u, n ó th ườ ng g ặ p l ỗ i trong b ấ t k ì s ự ki ể m tra "m ã t ố t" n à o C ô ng vi ệ c ch ắ p v á s ẽ kh kh kh kh ô ô ô ô ng ng ng ng c ó c á c ư u đ i ể m sau:  M M M M ở ở ở ở r r r r ộ ộ ộ ộ ng ng ng ng đượ đượ đượ đượ c: c: c: c: đ o ạ n m ã tr ô ng nh ư c á c m ả nh ri ê ng r ẽ r á p v á v à o nhau. N ế u nh ờ m ộ t l ậ p tr ì nh vi ê n c ó kinh nghi ệ m s ử a ch ươ ng tr ì nh c ủ a b ạ n, h ọ th ườ ng th í ch vi ế t l ạ i to à n b ộ Đ o ạ n m ã kh ô ng đọ c đượ c s ẽ kh ô ng m ở r ộ ng đượ c.  An An An An to to to to à à à à n: n: n: n: b ạ n c ó th ể đ ang ch é p m ã c ủ a ng ườ i kh á c v à o ch ươ ng tr ì nh c ủ a m ì nh m à l ạ i kh ô ng hi ể u r õ r à ng đ o ạ n m ã đó . H ã y t ưở ng t ưở ng xem. N ế u đ o ạ n m ã đó c ó m ộ t l ỗ i l à m xo á to à n b ộ đĩ a c ủ a b ạ n H ơ n n ữ a, c ù ng m ộ t đ o ạ n m ã th ì t í nh an to à n kh ô ng gi ố ng nhau tr ê n c á c h ệ th ố ng kh á c nhau. Cu ố i c ù ng, ch ươ ng tr ì nh c ủ a b ạ n s ẽ k ế th ừ a l ỗ i c ủ a ng ườ i kh á c.  Nhanh: Nhanh: Nhanh: Nhanh: khi c ắ t d á n c á c đ o ạ n m ã , k ế t qu ả th ườ ng s ẽ ch ạ y kh ô ng nhanh, v ì ch ú ng kh ô ng c ó m ộ t ti ế n tr ì nh chung h ợ p l í ( đâ y l à đ i ề u quan tr ọ ng nh ấ t khi vi ế t c á c ch ươ ng tr ì nh nhanh) 1. 1. 1. 1. L L L L à à à à m m m m đú đú đú đú ng ng ng ng ph ph ph ph ươ ươ ươ ươ ng ng ng ng ph ph ph ph á á á á p: p: p: p: t t t t ì ì ì ì m m m m hi hi hi hi ể ể ể ể u u u u tr tr tr tr ướ ướ ướ ướ c, c, c, c, sao sao sao sao ch ch ch ch é é é é p p p p sau sau sau sau Nghi ê n c ứ u m ã c ủ a ng ườ i kh á c k ĩ l ưỡ ng tr ướ c khi sao ch é p. Ph â n t í ch xem n ó l à m g ì . Ch ỉ khi n à o đ o ạ n m ã ấ y đọ c đượ c , nh ấ t qu á n v ớ i logic ch ươ ng tr ì nh c ủ a b ạ n, v à kh ô ng c ó l ỗ i, th ì m ớ i n ê n sao ch é p n ó . Ti ế n h à nh l ú c n à y s ẽ gi ú p b ạ n ch ỉ nh s ử a n ó ph ù h ợ p v ớ i c á c ph ầ n c ò n l ạ i c ủ a ch ươ ng tr ì nh m ộ t c á ch tho ả i m á i h ơ n. 2. 2. 2. 2. C C C C á á á á c c c c th th th th ư ư ư ư vi vi vi vi ệ ệ ệ ệ n n n n r r r r ấ ấ ấ ấ t t t t t t t t ố ố ố ố t t t t Ch ỉ d ù ng c á c th ư vi ệ n PHP t ừ c á c ngu ồ n tin c ậ y nh ư PEAR ho ặ c kho c á c l ớ p c ủ a PHP (PHP Classes Repository). V ớ i c á c g ó i API c ó s ẵ n, vi ệ c d ù ng c á c h à m c ủ a n ó c ũ ng kh ô ng th à nh v ấ n đề . Th ự c ra, n ế u b ạ n t ì m đượ c m ộ t th ư vi ệ n vi ế t s ẵ n b ở i m ộ t ngu ồ n tin c ậ y, th ì th ườ ng n ó s ẽ l à m ộ t l ự a ch ọ n t ố t để d ù ng cho ch ươ ng tr ì nh (thay v ì t ự vi ế t l ấ y). 6. 6. 6. 6. Kh Kh Kh Kh ô ô ô ô ng ng ng ng c c c c ó ó ó ó đườ đườ đườ đườ ng ng ng ng l l l l ố ố ố ố i i i i ( ( ( ( guidelines ) ) ) ) cho cho cho cho đồ đồ đồ đồ á á á á n n n n M ộ t l ầ n khi t ô i m ớ i b ắ t đầ u l ậ p tr ì nh, t ô i l à m vi ệ c tr ê n m ộ t đồ á n kh á c ơ b ả n (v ớ i Perl) c ù ng 3 l ậ p t ì nh vi ê n kh á c. V ì t ô i c ò n tr ẻ (v à kh ô ng ph ả i tr ưở ng nh ó m), ch ú ng t ô i kh ô ng c ó đườ ng l ố i vi ế t m ã cho đồ á n. M ỗ i ng ườ i đượ c giao m ộ t ph ầ n c ô ng vi ệ c, v à l à m ri ê ng r ẽ . Khi ch ú ng t ô i nh ậ p chung l ạ i để ch ạ y ch ươ ng tr ì nh cu ố i c ù ng, m ỗ i ph ầ n c ủ a đồ á n nh ì n kh á c h ẳ n nhau PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 18 18 18 18 Dormitory 204.B5 18:20 PM April 7, 2006 Lu ô n đả m b ả o r ằ ng, khi b ạ n l à m vi ệ c v ớ i c á c ti ế n tr ì nh ho ặ c t ậ p tin ngo à i PHP, m ọ i th ứ đề u v ậ n h à nh đú ng. M ộ t th í d ụ tuy ệ t v ờ i l à vi ệ c ki ể m tra đầ u ra c ủ a m ộ t l ờ i g ọ i h ệ th ố ng khi d ù ng h à m sql_connect(). X á c nh ậ n đầ u ra để ki ể m tra li ê n k ế t đế n CSDL l à đú ng. L à m sai đ i ề u n à y c ó th ể d ẫ n đế n c á c truy v ấ n h ỏ ng v à m ấ t d ữ li ệ u trong khi th ậ m ch í b ạ n kh ô ng bi ế t. $ketnoi = @ sql_connect ( $host , $user , $pass ); if (! $ketnoi ) { die ( sprintf ( "Error [%d]: %s" , sql_errno (), sql_error ())); } 1.3. 1.3. 1.3. 1.3. Đặ Đặ Đặ Đặ t t t t m m m m ứ ứ ứ ứ c c c c error_reporting error_reporting error_reporting error_reporting l l l l à à à à E_ALL E_ALL E_ALL E_ALL trong trong trong trong t t t t ậ ậ ậ ậ p p p p tin tin tin tin php. ini php. ini php. ini php. ini H ã y đả m b ả o b ạ n c ấ u h ì nh v ớ i m ứ c độ b á o l ỗ i cao nh ấ t c ó th ể . N ế u b ạ n kh ô ng đặ t n ó ở m ứ c cao nh ấ t, í t nh ấ t l à trong qu á tr ì nh t ì m l ỗ i (debugging), b ạ n c ó th ể b ỏ qua nh ữ ng l ỗ i nh ư l à bi ể u th ứ c ch í nh quy (regular expressions) kh ô ng h ợ p l ệ v à c á c gi á tr ị kh ô n g ch í nh x á c. Xem l ạ i l ầ n n ữ a th í d ụ t ô i đã đư a trong ph ầ n Ki ể m tra k ế t qu ả l ờ i g ọ i h à m, ở d ướ i đâ y. Gi ả s ử b ạ n đặ t error reporting ở m ứ c th ấ p,E_ERROR. Ch ú ý r ằ ng k ế t qu ả in ra khi ch ươ ng tr ì nh thi h à nh h à m do_math: kh ô ng c ó th ô ng b á o illegal division by zero đã t ừ ng hi ệ n ra l ầ n tr ướ c, ph ầ n $i=$j=0 đơ n thu ầ n kh ô ng hi ệ n k ế t qu ả . < ?php error_reporting ( E_ERROR ); mt_srand ((double) microtime () * 1000000 ); function do_math ( $a , $b ) { return (( $a - $b ) * 2 ) / mt_rand (); } for ( $i = 5 , $j = - 5 ; $i > - 5 ; $i ... Th í d ụ sau m ở t ậ p tin v à in t ừ ng d ò ng: Th í d ụ tr ê n s ẽ t ạ o l ỗ i: Warning: Warning: Warning: Warning: Supplied Supplied Supplied Supplied argument argument argument argument is is is is not not not not a a a a valid valid valid valid File-Handle File-Handle File-Handle File-Handle resource resource resource resource in in in in C:\Inetpub\wwwroot\tst .php C:\Inetpub\wwwroot\tst .php C:\Inetpub\wwwroot\tst .php C:\Inetpub\wwwroot\tst .php on on on on line line line line 4. 4. 4. 4. <? printf printf printf printf ( "%d occurrences of %s found." , count ( $truyvan ), $search_term ); ?> <? print print print print count ( $truyvan ) . "occurrences of $search_term found." ; ?> <? $fp = @ fopen ( 'vanban.txt' , 'r' ) or die ( 'Khong the mo file vanban.txt' ); while ( $line = @ fgets ( "$fp" , 1024 )) // Loi { print $line ; } @ fclose ( "$fp" ) // Loi or die ( 'Khong the dong vanban.txt' ); ?> PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 15 15 15 15 Dormitory 204.B5 18:20 PM April 7, 2006 Nh ư l à v ấ n đề c ủ a th ự c h à nh, đơ n gi ả n l à s ẽ sai l ầ m khi d ù ng PHP x ử l í m ọ i d ò ng c ủ a CSDL. T ô i đã b ắ t g ặ p ng ườ i ta d ù ng PHP để ch ạ y m ộ t ch ươ ng tr ì nh t ì m ki ế m đơ n gi ả n tr ê n 2MB d ữ li ệ u v à t ự h ỏ i t ạ i sao c á i ng ô n ng ữ n à y ch ạ y l â u th ế . L ấ y 2MB d ữ li ệ u t ừ CSDL c ó th ể l à m b ạ n ch ờ m ã i m ã i. Ng ô n ng ữ truy v ấ n chu ẩ n ( Standard Standard Standard Standard Query Query Query Query Language Language Language Language - - - - SQL SQL SQL SQL ) đượ c thi ế t k ế đặ c bi ệ t để truy v ấ n v à l ấ y d ữ li ệ u t ừ c á c b ả ng c ủ a b ạ n. Ý t ưở ng l à d ù ng n ó để l ọ c d ữ li ệ u kh ô ng c ầ n thi ế t, để l ạ i c á c th ô ng tin li ê n quan cho PHP x ử l í . N ế u b ạ n l ấ y nhi ề u d ữ li ệ u h ơ n c ầ n thi ế t, đó l à d ấ u hi ệ u ch ắ c ch ắ n r ằ ng m ã SQL đ ang d ù ng ch ư a đượ c t ố i ư u ho á . 2.1. 2.1. 2.1. 2.1. M M M M ệ ệ ệ ệ nh nh nh nh đề đề đề đề WHERE WHERE WHERE WHERE M ộ t th í d ụ kinh đ i ể n v ề s ự hi ể u qu ả c ủ a SQL li ê n quan đế n m ệ nh đề where. Đ o ạ n m ã sau s ẽ l ấ y c á c k ế t qu ả v à in ra t ê n v à m ã sinh vi ê n c ủ a sinh vi ê n c ó MASV='511203008' : < ?php include ( “ includes/taptinketnoi.inc ” ) ; $strsql = "SELECT MASV, HOTEN FROM SINHVIEN" ; $truyvan = @ sql_query ( $strsql , $ketnoi ); if (! $truyvan ) { die ( sprintf ( "LOI: [%d]: %s" , sql_errno (), sql_error ())); } if (@ sql_num_rows ( $truyvan ) <= 0 ) { die ( "Khong ket qua tim duoc tu CSDL!" ); } while ( $mautin = @ sql_fetch_array ( $truyvan )){ if ( $mautin [ MASV ] == “ 511203008 ” ) { print "MASV: $mautin[MASV]\n<br>\n" ; print "Ho ten: $mautin[HOTEN]\n<br>\n" ; break; } } ?> Đ o ạ n m ã tr ê n ch ư a đượ c t ố i ư u: ch ú ng ta đ ang d ù ng PHP để t ì m ki ế m trong to à n b ộ CSDL! N ế u nh ư đ i ề u n à y kh ô ng quan tr ọ ng đố i v ớ i c á c CSDL nh ỏ , khi k í ch th ướ c CSDL t ă ng l ê n b ạ n s ẽ c ả m th ấ y m ộ t c ú đấ m n ặ ng n ề v ề hi ệ u n ă ng. L ờ i gi ả i r ấ t đơ n gi ả n: s ử a c â u SQL để ch ứ a m ệ nh đề WHERE: $strsql = "SELECT * FROM SINHVIEN" ; $strsql .= " WHERE MASV='511203008'" ; PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 1 1 1 1 Dormitory 204.B5 18:20 PM April 7, 2006 à i vi ế t n à y d à nh cho nh ữ ng l ậ p tr ì nh vi ê n PHP quan t â m đế n vi ệ c tr á nh nh ữ ng l ỗ i th ườ ng g ặ p khi s ử d ụ ng PHP. Ng ườ i đọ c ph ả i bi ế t c á c c ú ph á p c ủ a PHP, v à n ê n bi ế t c ô ng d ụ ng c ủ a c á c h à m trong PHP. M ộ t trong nh ữ ng đ i ể m m ạ nh nh ấ t c ủ a PHP v ô t ì nh tr ở th à nh m ộ t trong nh ữ ng đ i ể m y ế u nh ấ t c ủ a n ó : t t t t í í í í nh nh nh nh d d d d ễ ễ ễ ễ s s s s ử ử ử ử d d d d ụ ụ ụ ụ ng ng ng ng . Nhi ế u ng ườ i ch ọ n PHP v ì t í nh d ễ s ử d ụ ng, đã kh ô ng nh ậ n ra r ằ ng: s ử d ụ ng đú ng PHP PHP PHP PHP c c c c ò ò ò ò n n n n kh kh kh kh ó ó ó ó h h h h ơ ơ ơ ơ n n n n c c c c á á á á c c c c ng ng ng ng ô ô ô ô n n n n ng ng ng ng ữ ữ ữ ữ kh kh kh kh á á á á c c c c . Trong lo ạ t b à i n à y s ẽ l ầ n l ượ t n ê u ra 21 l ỗ i, t ừ nh ữ ng sai l ầ m gi á o khoa (l à m script tr ở n ê n ch ậ m v à kh ó qu ả n l í ) đế n nh ữ ng sai l ầ m ch ế t ng ườ i - c ó th ể xem l à ngu ồ n g ố c c ủ a nh ữ ng sai l ầ m s ơ đẳ ng. PH Ầ N 1: 7 L Ỗ I GI Á O KHOA    21. 21. 21. 21. S S S S ử ử ử ử d d d d ụ ụ ụ ụ ng ng ng ng printf() printf() printf() printf() kh kh kh kh ô ô ô ô ng ng ng ng th th th th í í í í ch ch ch ch h h h h ợ ợ ợ ợ p p p p H à m printf() d ù ng để in d ữ li ệ u c ó đị nh d ạ ng N ó c ó th ể đượ c d ù ng, th í d ụ , khi b ạ n m ộ t in m ộ t s ố ki ể u double v ớ i 2 s ố l ẻ , ho ặ c trong b ấ t k ì t ì nh hu ố ng n à o b ạ n mu ố n thay đổ i đị nh d ạ ng tr ướ c khi in. Th í d ụ d ướ i đâ y minh ho ạ c á ch d ù ng đú ng c ủ a printf(): đị nh d ạ ng s ố Pi v ớ i độ ch í nh x á c theo ý mu ố n M M M M ã ã ã ã l l l l ệ ệ ệ ệ nh nh nh nh (PHP) <? /* The three faces of Π */ printf ( "Pi is: %.2f\n<br>\n" , M_PI ); printf ( "Pi is also: %.3f\n<br>\n" , M_PI ); printf ( "Pi is also: %.4f\n<br>\n" , M_PI ); ?> Ch Ch Ch Ch ú ú ú ú ý ý ý ý . . . . T ô i đã t ừ ng g ặ p nh ữ ng ng ườ i s ợ d ù ng printf(), thay v à o đó l ạ i d ù ng nh ữ ng h à m đị nh d ạ ng t ự vi ế t, d à i đế n 30- 40 d ò ng, trong đ i m ộ t c â u printf() c ó th ể l à m m ọ i th ứ anh ta mong mu ố n. Nhi ế u l ậ p tr ì nh vi ê n d ù ng sai printf(): in c á c bi ế n, c á c gi á tr ị tr ả v ề c ủ a h à m ho ặ c th ỉ nh tho ả ng, ch ỉ l à d ữ li ệ u th ô ng th ườ ng. Th ườ ng x ả y ra trong hai t ì nh hu ố ng:  C â u l ệ nh print() th í ch h ợ p h ơ n  Hi ể n th ị gi á tr ị tr ả v ề c ủ a m ộ t h à m 1. 1. 1. 1. Khi Khi Khi Khi n n n n à à à à o o o o print() print() print() print() th th th th í í í í ch ch ch ch h h h h ợ ợ ợ ợ p p p p h h h h ơ ơ ơ ơ n? n? n? n? C á c l ậ p tr ì nh vi ê n th ườ ng s ử d ụ ng printf() trong khi ch ỉ print() l à đủ . X é t th í d ụ sau: <? $name = 'Nguyen Anh Khoa' ; $nghenghiep = 'Sinh vien' ; $diachi = 'Phong 204.B5 – KTX – DHSP Dong Thap' ; $email = 'khoa_computer2004@yahoo.com' ; printf ( "Ten cua tui la: %s\n<br>\n Hien dang la: %s, %s\n<br>\n Lien he voi toi qua Email: %s\n<br>\n" , $name , $nghenghiep , $diachi , $email ); ?> H à m print() print() print() print() c ó th ể d ù ng thay cho printf() nh ư sau: B PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 6 6 6 6 Dormitory 204.B5 18:20 PM April 7, 2006 L ạ i c ó m ộ t s ố ng ườ i c ố g ắ ng vi ế t l ạ i c á c h à m PHP th ô ng d ụ ng thay v ì đ i h ọ c v ề h à m đó trong c á c t à i li ệ u PHP cung c ấ p. C ó í t nh ấ t 2 l í do để kh ô ng n ê n l à m đ i ề u n à y. Th ứ nh ấ t, v à tr ê n nh ấ t, n ó l à m cho nh ữ ng ng ườ i đọ c (v à s ử a) ch ươ ng tr ì nh c ủ a b ạ n kh ó hi ể u v à c ả m th ấ y c ó qu á nhi ề u h à m d ư th ừ a. H ọ t ự h ỏ i t ạ i sao b ạ n l ạ i đ i đị nh ngh ĩ a h à m theo ki ể u đó , thay v ì s ử d ụ ng c á c h à m đị nh ngh ĩ a s ẵ n b ở i PHP. Th ứ hai, đị nh ngh ĩ a h à m nh ư v ậ y c ũ ng s ẽ l à m ch ậ m ch ươ ng tr ì nh c ủ a b ạ n (m ộ t c á ch kh ô ng c ầ n thi ế t). Kh ô ng ch ỉ ph ả i x ử l í nhi ề u m ã h ơ n, m à m ỗ i l ầ n g ọ i h à m do b ạ n đị nh ngh ĩ a, b ạ n đã t ố n th ờ i gian cho ch í nh h à m đó , tr ướ c khi h à m nguy ê n thu ỷ đượ c g ọ i. 1. 1. 1. 1. Tr Tr Tr Tr á á á á nh nh nh nh vi vi vi vi ế ế ế ế t t t t l l l l ạ ạ ạ ạ i i i i c c c c á á á á c c c c h h h h à à à à m m m m c c c c ó ó ó ó s s s s ẵ ẵ ẵ ẵ n n n n H ã y đươ ng đầ u v ớ i n ó . Đô i khi th ậ t l à kh ó để tr á nh chuy ệ n n à y. Tr ướ c ti ê n, m ộ t l ậ p tr ì nh vi ê n kh ô ng th ể theo k ị p c á c h à m c ủ a PHP ngay đượ c. V à ai c ó th ờ i gian m à tra c ứ u. T ạ i sao kh ô ng vi ế t l ạ i cho kho ẻ ? C á ch l à m c ủ a t ô i l à lu ô n c ó s ẵ n m ộ t t à i li ệ u ch ỉ d ẫ n PHP ( PHP manual ) m ỗ i khi vi ế t ch ươ ng tr ì nh (t á c gi ả b à i n à y d ù ng m ộ t b ả n PDF c ó t ạ o ch ỉ m ụ c, ri ê ng t ô i, ng ườ i d ị ch, th ì d ù ng m ộ t t à i li ệ u CHM đầ y đủ th ô ng tin v à c ó c ả g ó p ý c ủ a ng ườ i s ử d ụ ng m à b ạ n c ó th ể l ấ y ở http://www .php. net/docs .php) . Sau đó , m ỗ i khi đị nh vi ế t m ộ t h à m m ở r ộ ng cho PHP, t ô i đọ c l ướ t qua t à i li ệ u để xem h à m đó c ó ch ư a. Tuy nhi ê n, c ầ n ch ú ý l à , do b ả n ch ấ t m ã ngu ồ n m ở c ủ a PHP, b ạ n c ó th ể t ì m đượ c c á c h à m do ng ườ i d ù ng đị nh ngh ĩ a tr ướ c khi n ó đượ c th ê m v à o PHP (th í d ụ nh ư h à m t ì m ph ầ n t ử kh á c nhau gi ữ a hai m ả ng). Đ i ề u n à y kh ô ng c ó ngh ĩ a l à b ạ n ph ả i hi ệ u ch ỉ nh l ạ i m ã (This doesn't necessarily mean that you should have to correct the code. - don't understand) 16. 16. 16. 16. Kh Kh Kh Kh ô ô ô ô ng ng ng ng t t t t á á á á ch ch ch ch bi bi bi bi ệ ệ ệ ệ t t t t ph ph ph ph ầ ầ ầ ầ n n n n server server server server v v v v à à à à client client client client V à i l ậ p tr ì nh vi ê n c ố k ế t n ố i c ả ch ươ ng tr ì nh v ớ i nhau, ngh ĩ a l à gh é p chung m ã HTML (client-side - ph ầ n kh á ch) v ớ i m ã PHP (server-side - ph ầ n ch ủ ) v à o trong m ộ t t ậ p tin l ớ n. M ặ c d ù đ i ề u n à y t ố t cho c á c site nh ỏ , nh ư ng n ó c ó th ể tr ở th à nh v ấ n đề l ớ n khi c á c site đó tr ở n ê n l ớ n h ơ n v à đượ c b ổ sung th ê m t í nh n ă ng. L ậ p tr ì nh theo c á ch n à y l à m n ả y sinh v ấ n đề kh ó b ả o tr ì v à c á c t ậ p tin tr ở n ê n c ồ ng k ề nh. 1. 1. 1. 1. H H H H à à à à m m m m API API API API Khi mu ố n t á ch bi ệ t ph ầ n kh á ch - ch ủ , b ạ n c ó v à i l ự a ch ọ n. M ộ t c á ch l à vi ế t nh ữ ng h à m hi ể n th ị n ộ i dung linh độ ng v à đặ t ch ú ng đú ng ch ỗ trong trang web. Th í d ụ d ướ i đâ y minh ho ạ đ i ề u n à y: index .php index .php index .php index .php - ph ầ n kh á ch return strlen ( $str ); } ?> HTML HTML HTML HTML < ?php include_once ("site.lib"); ?> < html > < head > < title > < ?php print_header (); ?> < /title > < /head > < body > < h1 > < ?php print_header (); ? > < /h1 > < table border =" 0 " cellpadding=" 0 " cellspacing=" 0 "> < tr > PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 23 23 23 23 Dormitory 204.B5 18:20 PM April 7, 2006 Kh Kh Kh Kh ô ô ô ô ng ng ng ng d d d d ù ù ù ù ng ng ng ng c c c c á á á á c c c c h h h h à à à à m m m m s s s s ẵ ẵ ẵ ẵ n n n n c c c c ó ó ó ó Nhi ề u l ậ p tr ì nh vi ê n PHP c ó n ề n t ả ng C c ó v ẻ kh ô ng nh ậ n ra r ằ ng PHP cung c ấ p nhi ề u h à m s ẵ n c ó gi ú p thay th ế c á c đ o ạ n m ã d à i. N ế u b ạ n đế n v ớ i PHP t ừ C, t ô i khuy ê n b ạ n n ê n đọ c qua t à i li ệ u tr ướ c khi vi ế t m ộ t kh ố i l ệ nh để xem PHP c ó s ẵ n h à m n à o gi ú p cu ộ c s ố n g c ủ a b ạ n d ễ d à ng h ơ n kh ô ng. Đổ Đổ Đổ Đổ i i i i t t t t ê ê ê ê n n n n c c c c á á á á c c c c h h h h à à à à m m m m PHP PHP PHP PHP đã đã đã đã c c c c ó ó ó ó T ô i đã th ấ y ng ườ i ta đổ i t ê n c á c h à m đã c ó c ủ a PHP ch ỉ để gi ú p h ọ d ễ nh ớ h ơ n. Đ i ề u n à y kh ô ng ch ỉ l à m ch ậ m ch ươ ng tr ì nh, m à l à m cho đ o ạ n m ã kh ó đọ c h ơ n. D D D D ù ù ù ù ng ng ng ng h h h h ướ ướ ướ ướ ng ng ng ng đố đố đố đố i i i i t t t t ượ ượ ượ ượ ng ng ng ng qu qu qu qu á á á á m m m m ứ ứ ứ ứ c c c c PHP kh ô ng ph ả i l à m ộ t ng ô n ng ữ H Đ T, d ù n ó cung c ấ p c á c t í nh n ă ng H Đ T. B ạ n c ầ n lu ô n nh ậ n th ứ c r ằ ng H Đ T trong PHP s ẽ l à m ch ậ m đá ng k ể ch ươ ng tr ì nh. 1. 1. 1. 1. L L L L ấ ấ ấ ấ y y y y th th th th ô ô ô ô ng ng ng ng tin tin tin tin ở ở ở ở đâ đâ đâ đâ u? u? u? u? May m ắ n l à c ó r ấ t nhi ề u th ô ng tin v ề vi ệ c l à m th ế n à o để l ậ p tr ì nh PHP. V à i n ơ i t ố t nh ấ t l à  Zend.com b ả n g ố c c ủ a b à i vi ế t n à y l à ở đó  Professional PHP m ộ t trong nh ữ ng s á ch to à n di ệ n t ố t nh ấ t v ề PHP, t ố t cho c ả l ậ p tr ì nh vi ê n v à kh ô ng-l ậ p tr ì nh vi ê n.  Web Application Development with PHP M ộ t quy ể n s á ch tuy ệ t v ờ i d ạ y b ạ n c ả c á ch ph á t tri ể n web l ẫ n v à i t í nh n ă ng cao c ấ p c ủ a PHP. Bao g ồ m c á c t à i li ệ u ch í nh th ứ c v ề Zend API.  The PHP Developer's Cookbook M ộ t quy ể n s á ch thi ê n v ề l ờ i gi ả i đá p cho c á c v ấ n đề g ặ p ph ả i trong PHP (do tui - Sterling Hughes - vi ế t c ù ng Andrei Zmievski) 8. 8. 8. 8. Kh Kh Kh Kh ô ô ô ô ng ng ng ng nh nh nh nh ậ ậ ậ ậ n n n n th th th th ứ ứ ứ ứ c c c c đầ đầ đầ đầ y y y y đủ đủ đủ đủ v v v v ề ề ề ề b b b b ả ả ả ả o o o o m m m m ậ ậ ậ ậ t t t t Nh ữ ng ng ườ i d ù ng kh ô ng ph ả i l ú c n à o c ũ ng l à m vi ệ c v ớ i h ệ th ố ng c ủ a ch ú ng ta. V ớ i t ư c á ch l à l ậ p tr ì nh vi ê n, tr á ch nhi ệ m c ủ a ch ú ng ta l à thi ế t k ế m ộ t h ệ th ố ng an to à n, d ễ ch ị u c ó th ể l à m vi ệ c đượ c chung v ớ i l ỗ i c ủ a ng ườ i d ù ng. Khi thi ế t k ế h ệ th ố ng, b ạ n ph ả i đặ t m ì nh v à o v ị tr í ng ườ i d ù ng. Xem x é t nh ữ ng ch ỗ h ọ c ó th ể g ặ p l ỗ i v à t ì m ki ế m nh ữ ng l ỗ h ổ ng b ả o m ậ t ti ề m t à ng. R ồ i b ạ n thi ế t k ế ch ươ ng tr ì nh c ó kh ả n ă ng s ử a ch ữ a l ỗ i n à y v à l ấ p c á c l ỗ h ổ ng b ả o m ậ t. M ộ t đ i ề u kh á c c ũ ng quan tr ọ ng l à : d ù x ả y ra h ư h ỏ ng hay h ệ th ố ng b ị t ấ n c ô ng l à do l ỗ i c ủ a ng ườ i d ù ng, ch í nh b ạ n l à ng ườ i ch ị u tr á ch nhi ệ m n ế u b ạ n đã vi ế t ch ươ ng tr ì nh c ó nhi ề u l ỗ i hay thi ế u nh ữ ng b ướ c ki ể m tra c ầ n thi ế t d ẫ n đế n h ỏ ng d ữ li ệ u. Th í d ụ , t ô i đã th ấ y nhi ề u ch ươ ng tr ì nh kh ô ng d ù ng h à m đã c ó c ủ a PHP mail() v ố n an to à n m à l ạ i đ i d ù ng sendmail th ô ng qua popen() . N ó c ó th ể d ẫ n đế n nhi ề u l ỗ h ổ ng b ả o m ậ t (th í d ụ nh ư /etc/passwd đượ c g ử i đế n ng ườ i d ù ng cu ố i). C ó v à i n ơ i th ườ ng x ả y ra c á c s ự c ố v ề b ả o m ậ t, ho ặ c ti ề m n ă ng g â y ra h ỏ ng d ữ li ệ u r ấ t l ớ n:  Th ự c hi ệ n l ờ i g ọ i h ệ th ố ng. T ô i kh ô ng c ó c á ch n à o di ễ n t ả đượ c m ứ c độ nguy hi ể m c ủ a v ấ n đề n à y. Lu ô n đả m b ả o r ằ ng m ọ i d ữ li ệ u ng ườ i d ù ng đư a v à o l à an to à n tr ướ c khi chuy ể n n ó cho m ộ t l ờ i g ọ i h ệ th ố ng. ĐỪ ĐỪ ĐỪ ĐỪ NG NG NG NG BAO BAO BAO BAO GI GI GI GI Ờ Ờ Ờ Ờ TIN TIN TIN TIN NG NG NG NG ƯỜ ƯỜ ƯỜ ƯỜ I I I I D D D D Ù Ù Ù Ù NG NG NG NG M M M M Ộ Ộ Ộ Ộ T T T T C C C C Á Á Á Á CH CH CH CH M M M M Ù Ù Ù Ù QU QU QU QU Á Á Á Á NG NG NG NG KHI KHI KHI KHI ĐƯ ĐƯ ĐƯ ĐƯ A A A A D D D D Ữ Ữ Ữ Ữ LI LI LI LI Ệ Ệ Ệ Ệ U U U U C C C C Ủ Ủ Ủ Ủ A A A A H H H H Ọ Ọ Ọ Ọ V V V V À À À À O O O O L L L L Ờ Ờ Ờ Ờ I I I I G G G G Ọ Ọ Ọ Ọ I I I I H H H H Ệ Ệ Ệ Ệ TH TH TH TH Ố Ố Ố Ố NG NG NG NG M M M M À À À À KH KH KH KH Ô Ô Ô Ô NG NG NG NG KI KI KI KI Ể Ể Ể Ể M M M M TRA TRA TRA TRA TR TR TR TR ƯỚ ƯỚ ƯỚ ƯỚ C C C C .  Khi đă ng k í ng ườ i d ù ng. N ế u b ạ n tr ô ng mong c ó k ế t qu ả ch í nh x á c, lu ô n ki ể m tra v à đả m b ả o b ả n đă ng k í đượ c ki ể m tra nh ữ ng ch ỗ c ầ n thi ế t. Tr ướ c ti ê n, c ó nhi ề u c á ch để ki ể m tra m ộ t đị a ch ỉ e-mail h ợ p l ệ . H ơ n n ữ a, b ạ n n ê n ki ể m tra tu ổ i c ủ a ng ườ i d ù ng c ó n ằ m trong ph ạ m vi th í ch h ợ p kh ô ng. V ớ i m ộ t s ự suy r ộ ng, b ạ n c ó PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 12 12 12 12 Dormitory 204.B5 18:20 PM April 7, 2006 S ự l ấ y m ẫ u kh ô ng ch í nh x á c l à m ộ t th í d ụ hay v ề v ấ n đề n à y. V à i ng ườ i vi ế t l ệ nh kh ô ng d à nh th ờ i gian để ngh ĩ th ấ u đá o. Đú ng l à kh ô ng ch ỉ c ó duy nh ấ t m ộ t c á ch “đú ng ” để l ấ y m ẫ u d ữ li ệ u, nh ư ng n ó c ó r ấ t nhi ề u c á ch kh ô ng đú ng. Ph ầ n n à y bao g ồ m c á c ch ủ đề :  Á p d ụ ng sai c á c h à m v ề CSDL  D ù ng sai SQL: kh ô ng l ấ y nh ữ ng th ứ b ạ n c ầ n  D ù ng PHP để s ắ p x ế p k ế t qu ả 1. 1. 1. 1. D D D D ù ù ù ù ng ng ng ng sai sai sai sai c c c c á á á á c c c c h h h h à à à à m m m m CSDL CSDL CSDL CSDL M ộ t đ o ạ n m ã PHP đã d ù ng c ú ph á p sau để l ấ y k ế t qu ả t ừ CSDL (presented below using a generalized set of SQL functions): if (!( $mautin = sql_fetch_row ( $truyvan ))) { print "Mot loi xay ra: Khong tim thay mau tin nao!" ; exit; } do { print "$mautin[0]: $mautin[1]\n<br>\n" ; } while ( $mautin = sql_fetch_row ( $truyvan )); Ch Ch Ch Ch ú ú ú ú ý ý ý ý : : : : Ở tr ê n, v à c á c th í d ụ sau n ữ a, $truyvan di ễ n t ả handle ho ặ c pointer đế n m ộ t t ậ p k ế t qu ả truy v ấ n ... while, c á c c â u g ọ i nhi ề u l ầ n, v à c á c h à m sql_result() trong v ò ng for. Nh ữ ng ng ườ i n à y c ó ngh ĩ h ọ đ ang l à m g ì kh ô ng? Vi ệ c vi ế t c á c m ã tr ậ t-ho ặ c-tr ú ng (hit-or-miss code) ch ứ ng minh s ự thi ế u t ậ p trung. Nh ữ ng c á nh â n đó x á c đị nh n ỗ l ự c c ủ a h ọ d ù ng để ho à n th à nh c ô ng vi ệ c h ơ n l à để ho à n th à nh đú ng c ô ng vi ệ c, k ế t qu ả l à l à m cho c á c ô ng ch ủ qu ă ng th ờ i gian v à ti ề n b ạ c ra đườ ng. PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 22 22 22 22 Dormitory 204.B5 18:20 PM April 7, 2006 1. 1. 1. 1. C C C C á á á á c c c c h h h h à à à à m m m m c c c c ầ ầ ầ ầ n n n n bi bi bi bi ế ế ế ế t t t t C ó v à i h à m r ấ t thi ế t y ế u để ti ế t ki ệ m th ờ i gian thi h à nh ch ươ ng tr ì nh khi d ù ng thay cho bi ể u th ứ c ch í nh quy. D ướ i đâ y l à danh s á ch c á c h à m thi ế t y ế u đó : strtoupper(); strtolower(); ucfirst(); strtr(); str_replace(); trim(); explode(); implode(); substr(); strcmp() N ế u b ạ n thay th ế c á c bi ể u th ứ c ch í nh quy c ủ a b ạ n b ằ ng c á c h à m tr ê n, b ạ n c ó th ể tr ô ng đợ i m ộ t s ự nh ả y v ọ t v ề hi ệ u n ă ng, đặ c bi ệ t khi b ạ n l à m vi ệ c v ớ i c á c chu ỗ i l ớ n. 9. 9. 9. 9. L L L L ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh PHP PHP PHP PHP nh nh nh nh ư ư ư ư c c c c á á á á c c c c ng ng ng ng ô ô ô ô n n n n ng ng ng ng ữ ữ ữ ữ kh kh kh kh á á á á c c c c Nhi ề u ng ườ i b ắ t đầ u PHP sau khi đã thu ầ n th ụ c m ộ t ng ô n ng ữ kh á c nh ư Perl, C, Java hay ASP . L à m nh ư v ậ y, h ọ c ũ ng mang theo nh ữ ng m ô h ì nh m à c ó th ể kh ô ng lu ô n lu ô n đượ c d ù ng b ở i PHP. Kh ô ng may thay, v à i c á nh â n trong s ố h à y kh ô ng ch ị u b ỏ th ờ i gian để h ọ c c á ch l ậ p tr ì nh PHP theo c á ch ph ù h ợ p v ớ i PHP. Thay v à o đó , h ọ th í ch PHP ho ạ t độ ng v ớ i c á c í t kh á i ni ệ m m ớ i c à ng t ố t Khi b ạ n l ậ p tr ì nh PHP nh ư l à trong c á c ng ô n ng ữ kh á c, n ó th ườ ng d ẫ n đế n vi ệ c l à m ch ươ ng tr ì nh ch ậ m h ơ n v à kh ó b ả o tr ì m ã . B ạ n s ẽ th ườ ng th ấ y h ọ ph ạ m v à o m ộ t trong c á c l ỗ i sau: Perl Perl Perl Perl "1 "1 "1 "1 d d d d ò ò ò ò ng" ng" ng" ng" PHP l à m ộ t ng ô n ng ữ kh ô ng th ự c s ự t ố i ư u cho c á ch ti ế p c ậ n 1 d ò ng khi vi ế t ch ươ ng tr ì nh . Thay v à o đó , n ó m ở r ộ ng c á c t ậ p h à m ph ứ c t ạ p v à c á c bi ể u th ứ c ch í nh quy theo m ộ t đị nh d ạ ng c ó c ấ p b ậ c h ơ n M M M M ã ã ã ã l l l l ệ ệ ệ ệ nh nh nh nh Perl Perl Perl Perl while (<STDIN>) { @_ = split /:/; $quotes{shift} = shift; } print map { "$_: ", reverse split //,$quotes->{$_},"\n";} keys %quotes; M M M M ã ã ã ã l l l l ệ ệ ệ ệ nh nh nh nh PHP) PHP) PHP) PHP) < ?php $fp = @ fopen ( &apos ;php: //stdin' , 'r' ); if (! $fp ) { die ( 'Cannot open STDIN' ); } while ( $line = @ fgets ( $fp , 1024 )) { list( $name , $quote ) = explode ( ':' , $line ); $quotes [ $name ] = $quote ; } foreach ( $quotes as $name => $quote ) { print "$name: " ; print implode ( " " , array_reverse ( preg_split ( '//' , $quote ))); print "\n" ; } @ fclose ( $fp ); ?> PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 5 5 5 5 Dormitory 204.B5 18:20 PM April 7, 2006 T ạ i sao ph ả i d ù ng bi ế n trung gian? N ó kh ô ng c ầ n thi ế t R ủ i thay, c ó v ẻ nh ư r ấ t nhi ề u ng ườ i kh ó b ỏ đượ c th ó i quen x ấ u n à y. Bi ế n t ạ m l à m ch ậ m th ờ i gian thi h à nh ch ươ ng t ì nh c ủ a b ạ n. T ố t h ơ n l à n ê n b ỏ qua đó v à g ộ p c á c l ờ i g ọ i h à m v ớ i nhau. Nh ữ ng ng ườ i d ù ng bi ế n t ạ m th ườ ng l à m ch ươ ng c ủ a h ọ ch ạ y ch ậ m đế n 25%. M ộ t l í do kh á c để tr á nh c ó qu á nhi ề u bi ế n t ạ m l à v ì tr ô ng n ó kh ô ng đượ c đẹ p m ắ t. Trong hai th í d ụ tr ê n, th í d ụ n à o s ú c t í ch h ơ n? Th í d ụ n à o l à m con m ắ t d ễ ch ị u h ơ n? D ù ng qu á nhi ề u bi ế n t ạ m c ó th ể d ẫ n đế n m ã ch ươ ng tr ì nh kh ó đọ c v à kh ô ng s ú c t í ch. 1. 1. 1. 1. L L L L ợ ợ ợ ợ i i i i đ đ đ đ i i i i ể ể ể ể m m m m c c c c ủ ủ ủ ủ a a a a d d d d ù ù ù ù ng ng ng ng bi bi bi bi ế ế ế ế n n n n t t t t ạ ạ ạ ạ m m m m C á c bi ế n t ạ m c ó l ợ i trong vi ệ c thay th ế c á c h à m hay bi ể u th ứ c d à i l ê th ê . N ó c ó vai tr ò nh ư b í danh gi ả . Đ i ề u n à y đặ c bi ệ t đú ng khi b ạ n d ù ng m ộ t h à m hay bi ể u th ứ c nhi ề u l ầ n. Xem x é t th í d ụ đâ y, n ó kh ô ng d ù ng nhi ề u bi ế n h ơ n m ứ c t ố i thi ể u N ộ i dung trong h à m implode() d à i v à do đó kh ó đọ c. D ù ng m ộ t ho ặ c nhi ề u bi ế n t ạ m c ó th ể gi ú p ch ú ng ta: 2. 2. 2. 2. C C C C á á á á c c c c lu lu lu lu ậ ậ ậ ậ t t t t chung chung chung chung c c c c ủ ủ ủ ủ a a a a ng ng ng ng ó ó ó ó n n n n tay tay tay tay c c c c á á á á i i i i Khi quy ế t đị nh c ó d ù ng bi ế n t ạ m ho ặ c kh ô ng, b ạ n n ê n suy ngh ĩ v ề 2 c â u h ỏ i:  B ạ n c ó d ù ng bi ế n đó í t nh ấ t hai l ầ n?  T í nh đọ c đượ c c ủ a m ã c ó t ă ng đá ng k ể kh ô ng? N ế u í t nh ấ t m ộ t c â u tr ả l ờ i l à c ó , th ì n ê n d ù ng bi ế n t ạ m. C ò n kh ô ng, v ứ t n ó đ i v à t ổ h ợ p c á c h à m l ạ i (n ế u c ầ n). 17. 17. 17. 17. Vi Vi Vi Vi ế ế ế ế t t t t l l l l ạ ạ ạ ạ i i i i c c c c á á á á c c c c h h h h à à à à m m m m c c c c ó ó ó ó s s s s ẵ ẵ ẵ ẵ n n n n M ộ t s ố n ơ i ph ổ bi ế n m ã ngu ồ n c á c script PHP ch ủ tr ươ ng đổ i t ê n c á c h à m s ẵ n c ó để t ạ o s ự d ễ d à ng cho c á c l ậ p tr ì nh vi ê n chuy ể n t ừ VB sang. Th í d ụ : <? $tmp = date ( "F d, h:i a" ); /* ie January 3, 2:30 pm */ print $tmp ; ?> <? print date ( "F d, h:i a" ); ?> // string reverse_characters(string str) // Reverse all of the characters in a string. function reverse_characters ( $str ) { return implode ( "" , array_reverse ( preg_split ( "//" , $str ))); } // string reverse_characters(string str) // Reverse all of the characters in a string. function reverse_characters ( $str ) { $characters = preg_split ( "//" , $str ); $characters = array_reverse ( $characters ); return implode ( "" , $characters ); } <? function len ( $str ) { PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 3 3 3 3 Dormitory 204.B5 18:20 PM April 7, 2006 Đó l à do bi ế n $fp đặ t trong d ấ u nh á y k é p n ê n đượ c chuy ể n th à nh chu ỗ i. Th ế m à h à m fopen() nh ậ n m ộ t đị nh danh t à i nguy ê n (resource identifier) trong tham s ố đầ u c ủ a n ó , ch ứ kh ô ng nh ậ n m ộ t chu ỗ i. Để gi ả i quy ế t v ấ n đề , b ạ n ch ỉ đơ n gi ả n b ỏ d ấ u nh á y k é p đ i 1. 1. 1. 1. C C C C ó ó ó ó th th th th ể ể ể ể tr tr tr tr á á á á nh nh nh nh vi vi vi vi ệ ệ ệ ệ c c c c á á á á p p p p d d d d ụ ụ ụ ụ ng ng ng ng sai sai sai sai ng ng ng ng ữ ữ ữ ữ ngh ngh ngh ngh ĩ ĩ ĩ ĩ a? a? a? a? Our example above generated an error statement. But PHP enables you to customize your scripts to fit a unique scenario or output requirement. So, it is at least theoretically possible to "get away" with misapplying a semantic. T ô i kh ô ng hi ể u, nh ư ng d ị ch t h ế n à y đượ c kh ô ng? Th í d ụ tr ê n c ủ a ch ú ng ta t ạ o ra m ộ t th ô ng b á o l ỗ i. Nh ư ng PHP cho ph é p b ạ n tu ỳ bi ế n c á c script để th í ch h ợ p v ớ i m ộ t k ị ch b ả n kh á c th ườ ng ho ặ c v ớ i c á c đò i h ỏ i c ủ a th ô ng tin ra. Do đó , í t nh ấ t tr ê n l í thuy ế t, b ạ n c ó kh ả n ă ng tr á nh vi ệ c á p d ụ ng sai ng ữ ngh ĩ a. V ậ y, b ạ n c ầ n bi ế t nh ữ ng h ậ u qu ả c ó th ể c ó (possible outcomes) n ế u b ạ n quy ế t đị nh h ọ c v ề ng ữ ngh ĩ a. Á p d ụ ng sai d ẫ n đế n nh ữ ng l ỗ i kh á tinh vi n ế u b ạ n kh ô ng ch ú ý . N ế u b ạ n mu ố n tu ỳ bi ế n script, b ạ n c ầ n hi ể u nh ữ ng ch ủ đề ch í nh sau:  Ki Ki Ki Ki ể ể ể ể u: u: u: u: trong PHP, m ỗ i bi ế n c ó m ộ t ki ể u x á c đị nh ở m ộ t th ờ i đ i ể m x á c đị nh, cho d ù b ạ n c ó th ể t ự do chuy ể n đổ i ki ể u m ộ t bi ế n. N ó i m ộ t c á ch kh á c, kh ô ng c ó bi ế n n à o l ạ i kh ô ng k è m theo t í nh ch ấ t c ủ a ki ể u c ủ a n ó . PHP c ó 7 ki ể u c ơ b ả n: boolean, resource, integer, doubl e, string, array v à object.  T T T T ầ ầ ầ ầ m m m m v v v v ự ự ự ự c: c: c: c: trong PHP, m ỗ i bi ế n c ó m ộ t t ầ m v ự c ri ê ng. T ầ m v ự c bi ế n quy đị nh bi ế n c ó th ể đượ c truy c ậ p t ừ đâ u, t ồ n t ạ i trong th ờ i gian n à o. Hi ể u sai kh á i ni ệ m c ơ b ả n v ề "t ầ m v ự c" d ẫ n đế n nh ữ ng l ỗ i sai tinh t ế v à c ả nh ữ ng l ỗ i l ớ n.  php. ini: php. ini: php. ini: php. ini: khi vi ế t m ộ t script ch ạ y ở nhi ề u m ô i tr ườ ng kh á c nhau, c ầ n bi ế t r ằ ng kh ô ng ph ả i m ọ i c ấ u h ì nh PHP đề u nh ư nhau. Do đó , c ầ n thi ế t nh ữ ng l ệ nh ki ể m tra để đả m b ả o script c ủ a b ạ n ch ạ y t ố t trong c ấ u h ì nh PHP c ủ a ng ườ i kh á c. 19. 19. 19. 19. Thi Thi Thi Thi ế ế ế ế u u u u ghi ghi ghi ghi ch ch ch ch ú ú ú ú Theo ý t ô i, m ã ngu ồ n thi ế u ghi ch ú l à c ă n nguy ê n c ủ a s ự l ậ p tr ì nh í ch k ỉ . N ó d ẫ n t ớ i nh ữ ng hi ệ u ch ỉ nh sai l ầ m, hi ể u sai ý ngh ĩ a v à l à m ng ườ i đọ c m ệ t m ỏ i. N ó i chung, l ậ p tr ì nh ghi ch ú (inline documentation) đượ c m ọ i ng ườ i kh ẳ ng nh ậ n l à đ i ề u t ố t, nh ư ng hi ế m khi n ó t ồ n t ạ i. M ộ t v ấ n đề kh á c l à qu á nhi ề u ghi ch ú . D ù hi ế m g ặ p, nh ư ng n ó l à m cho c á c đ o ạ n m ã b ị c ắ t v ụ n, g â y ra s ự kh ó theo d õ i. D ướ i đâ y l à m ộ t th í d ụ : <? // Bat dau ma PHP $age = 18 ; // Gan 18 den $age $age ++; // Tang $age len 1 don vi // IN ra doan text thong bao: print "You are now 19, which means you have been:" ; print "\n<br>\n<br>\n" ; // Vong lap for in ra tat ca tuoi truoc do for ( $idx = 0 ; $idx < $age ; $idx ++) { <? $fp = @ fopen ( 'vanban.txt' , 'r' ) or die ( ‘ Khong the mo file tailieuphp.txt' ); while ( $line = @ fgets ( $fp , 1024 )) { print $line ; } @ fclose ( $fp ) or die ( Khong the dong file vanban.txt ' ); ?> PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 25 25 25 25 Dormitory 204.B5 18:20 PM April 7, 2006 m ộ t nh ó m th ư t í n, hay trong m ộ t kho m ã ngu ồ n n à o đó ). Tuy nhi ê n, m ộ t bi ể u th ứ c ch í nh quy kh ô ng đủ n ế u b ạ n mu ố n c ó k ế t qu ả ch í nh x á c. C ó v à i c á ch an to à n h ơ n m à b ạ n c ó th ể d ù ng: 2.1. 2.1. 2.1. 2.1. Ki Ki Ki Ki ể ể ể ể m m m m tra tra tra tra k k k k ế ế ế ế t t t t n n n n ố ố ố ố i i i i (socket (socket (socket (socket validation) validation) validation) validation) M ộ t c á ch để ki ể m đị nh đị a ch ỉ e-mail m à kh ô ng qu ấ y r ầ y tr ự c ti ế p đế n ng ườ i d ù ng l à t ạ o m ộ t k ế t n ố i đế n server nh ậ n đượ c trong đị a ch ỉ e-mail, sau đó t ì m t ê n đă ng k í c ủ a h ọ . 2.1.1. 2.1.1. 2.1.1. 2.1.1. Ư Ư Ư Ư u u u u đ đ đ đ i i i i ể ể ể ể m m m m  Kh ô ng g â y b ấ t ti ệ n cho ng ườ i d ù ng v ì n ó đượ c ti ế n h à nh trong su ố t.  Ph á t hi ệ n nhi ề u đị a ch ỉ ma m à bi ể u th ứ c ch í nh quy kh ô ng bi ế t (nh ư l à joe@fgsdh.com). 2.1.2. 2.1.2. 2.1.2. 2.1.2. Khuy Khuy Khuy Khuy ế ế ế ế t t t t đ đ đ đ i i i i ể ể ể ể m m m m  Kh ô ng ph á t hi ệ n đượ c đị a ch ỉ b ị đá nh c ắ p. Th í d ụ , n ế u John Doe đư a đị a ch ỉ e- mail c ủ a t ô i (phanthanhkieu @php. net), m ọ i th ứ v ẫ n ti ế n h à nh b ì nh th ườ ng, d ù n ó l à đị a ch ỉ c ủ a t ô i ch ứ kh ô ng ph ả i c ủ a h ắ n ta.  Ki ể m tra ch ậ m h ơ n bi ể u th ứ c ch í nh quy.  Mail server c ủ a ng ườ i d ù ng c ó th ể t ạ m ng ư ng ho ạ t độ ng trong th ờ i gian ng ắ n, l à m cho m ộ t đị a ch ỉ e-mail h ợ p l ệ b ị t ừ ch ố i 2.2. 2.2. 2.2. 2.2. Ki Ki Ki Ki ể ể ể ể m m m m tra tra tra tra t t t t ươ ươ ươ ươ ng ng ng ng t t t t á á á á c c c c M ộ t c á ch kh á c để ki ể m đị nh đị a ch ỉ e-mail l à g ử i m ộ t kho á đặ c bi ệ t đế n h ộ p th ư ng ườ i d ù ng, v à b ắ t h ọ nh ậ p kho á đó để ti ế p t ụ c. Đ i ề u n à y đả m b ả o r ằ ng kh ô ng nh ữ ng đị a ch ỉ e-mail l à h ợ p l ệ , m à ng ườ i d ù ng c ó quy ề n truy xu ấ t v à o đị a ch ỉ đó . 2.2.1. 2.2.1. 2.2.1. 2.2.1. Ư Ư Ư Ư u u u u đ đ đ đ i i i i ể ể ể ể m m m m  L à c á ch t ố t nh ấ t để ki ể m tra ng ườ i d ù ng c ó m ộ t đị a ch ỉ e-mail h ợ p l ệ 2.2.2. 2.2.2. 2.2.2. 2.2.2. Khuy Khuy Khuy Khuy ế ế ế ế t t t t đ đ đ đ i i i i ể ể ể ể m m m m  Đò i h ỏ i ng ườ i d ù ng ph ả i ti ế n h à nh th ê m b ướ c ph ụ . Đ i ề u n à y qu ấ y r ầ y m ấ y ng ườ i c ó ý đị nh l à m phi ề n b ạ n.  Gi ố ng nh ư m ọ i c á ch kh á c, n ó kh ô ng đả m b ả o đượ c ch ố ng- đá nh-l ừ a. Ng ườ i d ù ng c ó th ể t ạ o m ộ t đị a ch ỉ t ạ m ở Hotmail hay Netaddress v à sau PHP programming dynamic web for ewreybody 21 Fatal errors in programming with PHP – Collect from writ t ing of Sterling Hughes NGUYEN ANH KHOA – Class 27K0A – Department Of Information Technology 13 13 13 13 Dormitory 204.B5 18:20 PM April 7, 2006 T ạ i sao v ò ng do...
  • 27
  • 636
  • 2
Tổ chức công tác hạch toán kế toán chi phí nhân công trong Doanh nghiệp xây lắp theo mô hình khoán xây lắp tập trung

Tổ chức công tác hạch toán kế toán chi phí nhân công trong Doanh nghiệp xây lắp theo mô hình khoán xây lắp tập trung

Ngày tải lên : 31/01/2013, 10:25
... khác nhau về loại hình, quy và điều kiệnkế toán sẽ hình thành cho mình một hình thức tổ chức sổ kế toán khác nhau . 1.3.4.1 .Hình thức nhật ký chung Đặc trng cơ bản của hình thức kế toán ... nghiệp về tình hình lao động trong doanh nghiệp em đà triền khai nghiên cứu đề tài: Tổ chức công tác hạch toán kế toán chi phí nhân công trong doanh nghiệp xây lắp theo hình khoán xây ... góp phần hoàn thiện công tác kế toán chi phí nhân công trong doanh nghiệp xây lắp theo hình khoán tập trung trong điều kiện hiện nay . Do trình độ và kinh nghiệm còn hạn chế nên chắc chắn khoá...
  • 23
  • 903
  • 3
225 Tổ chức công tác hạch toán kế toán chi phí nhân công trong Doanh nghiệp xây lắp theo mô hình khoán xây lắp tập trung

225 Tổ chức công tác hạch toán kế toán chi phí nhân công trong Doanh nghiệp xây lắp theo mô hình khoán xây lắp tập trung

Ngày tải lên : 18/03/2013, 15:34
... khác nhau về loại hình, quy và điều kiệnkế toán sẽ hình thành cho mình một hình thức tổ chức sổ kế toán khác nhau . 1.3.4.1 .Hình thức nhật ký chung Đặc trng cơ bản của hình thức kế toán ... sản xuất trong các doanh nghiệp xây lắp ở nớc ta hiện nay phổ biến theo phơng thức khoán tập trung trong các công trình, hạng mục công trình, khối lợng hoặc công việc cho các đơn vị trong nội ... hạch toán kế toán chi phí nhân công trong các doanh nghiệp xây lắp theo hình khoán xây lắp tập trung. 1.1. Đặc điểm hoạt động kinh doanh xây lắp theo hình khoán xây lắp tập trung có ảnh...
  • 23
  • 559
  • 0
Khảo sát quy trình sản xuất tôm giống càng xanh theo mô hình nước trong hở tại trang trại sản xuất giống Mỹ Thạch

Khảo sát quy trình sản xuất tôm giống càng xanh theo mô hình nước trong hở tại trang trại sản xuất giống Mỹ Thạch

Ngày tải lên : 19/03/2013, 15:25
... giúp đỡ và hướng dẫn trong suốt thời gian thực hiện đề tài. Các anh chị, các bạn sinh viên trong và ngoài lớp đã động viên giúp đỡ tôi trong suốt quá trình học tập cũng như trong thời gian thực ... lợi cho chúng tôi trong suốt quá trình học và thực hiện đề tài tốt nghiệp. Xin tỏ lòng biết ơn đến Thầy Trần Văn Phát , người đã tận tình hướng dẫn tôi trong suốt quá trình thực hiện đề ... Software http://www.foxitsoftware.com For evaluation only. KHẢO SÁT QUI TRÌNH SẢN XUẤT GIỐNG TÔM CÀNG XANH (Macrobrachium rosenbergii de Man 1879) THEO HÌNH NƯỚC TRONG HỞ TẠI TRẠI SẢN XUẤT GIỐNG MỸ THẠNH THÀNH...
  • 61
  • 1.8K
  • 5
Các chiêu thức trong lập trình Form có hình dạng theo một hình ảnh bất kỳ

Các chiêu thức trong lập trình Form có hình dạng theo một hình ảnh bất kỳ

Ngày tải lên : 24/10/2013, 14:20
... Form có hình dạng theo một hình ảnh bất kỳ (Tất nhiên có màu tượng trưng cho form trong suốt) home Chú ý : Phần này trong lần xuất bản 1 có lỗi Xuất xứ : www.pscode.com Binh ... sử dụng : - 1 picture mang tên : picMainSkin trong đó có chứa sẵn một hình ảnh bất kỳ mà bạn muốn làm giao diện chương trình màu tượng trưng cho trong suốt là màu ở câu lệnh TransparentColor ... màu của điểm có tọa độ (0,0) trên Picture này đây chính là một trong những điểm thú vị của đọan Code này. - 1 Module Đoạn mã : Trong Module : Option Explicit Public Declare Function GetPixel...
  • 2
  • 534
  • 2

Xem thêm