php programming dynamic web

PHP programming dynamic web for everybody

PHP programming dynamic web for everybody

Ngày tải lên : 17/10/2013, 10:15
... 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 11 11 11 11 Dormitory 204.B5 18:20 PM April 7, 2006 1.5. 1.5. 1.5. 1.5. Th Th Th Th ó ó ó ó i i i i quen quen quen quen x x x x ấ ấ ấ ấ u u u u D ướ i đâ y l à nh ữ ng th í d ụ (ph ó ng đạ i) v ề nh ữ ng t ê n bi ế n t ồ i $username_cua_csdl = 'SINHVIEN' ; $guMbi = 'bimat' ; // for the $password $tentruocdo_cua_giaovien = array ( 'Sadlon' , 'Lane' , 'Patterson' , 'Perry' , 'Sandler' , 'Mendick' , 'Zung' ); foreach ( $tentruocdo_cua_giaovien as $TeaChER ); 2. 2. 2. 2. Đặ Đặ Đặ Đặ t t t t t t t t ê ê ê ê n n n n h h h h à à à à m m m m M ọ i kh á i ni ệ m á p d ụ ng cho t ê n bi ế n c ũ ng á p d ụ ng cho đặ t t ê n h à m. Tuy nhi ê n, ng ữ ph á p đó ng vai tr ò đặ c bi ệ t trong c á c h à m. C á c h à m PHP, đị nh ngh ĩ a s ẵ n ho ặ c do ng ườ i d ù ng đị nh ngh ĩ a, l à kh ô ng-ph â n-bi ệ t-c á ch- vi ế t (not case sensitive) 2.1. 2.1. 2.1. 2.1. D D D D ù ù ù ù ng ng ng ng độ độ độ độ ng ng ng ng t t t t ừ ừ ừ ừ H à m c ủ a PHP t ươ ng đươ ng v ớ i m ộ t độ ng t ừ khi n ó i. T ê n h à m, do đó , n ê n đượ c h ướ ng h à nh độ ng (action oriented). N ó c ũ ng n ê n đượ c d ù ng ở th ì hi ệ n t ạ i. Th í d ụ , b ạ n c ó m ộ t h à m t ạ o m ộ t s ố ng ẫ u nhi ê n v ớ i ph â n b ố Gausse (a gaussian random number), b ạ n n ê n đặ t t ê n n ó l à generate_gaussian_rand(). Ch ú ý c á c s ử d ụ ng độ ng t ừ h à nh độ ng trong t ê n h à m. N ó s ẽ đặ t h à m v à o ng ữ c ả nh th í ch h ợ p < ?php list ( $num1 , $num2 ) = generate_gaussian_rand (); list ( $num3 , $num4 ) = generate_gaussian_rand (); ?> Để so s á nh, h ã y xem th í d ụ : < ?php list ( $num1 , $num2 ) = gaussian_rand_generator (); list ( $num1 , $num2 ) = gaussian_rand_generator (); ?> B ạ n c ó th ấ y s ự kh á c bi ệ t? Th í d ụ th ứ hai s ử d ụ ng danh t ừ , m ặ c d ù v ẫ n chuy ể n t ả i đượ c m ụ c ti ê u c ủ a h à m, nh ư ng n ó ng ă n ng ườ i ta đọ c m ộ t c á ch tr ô i ch ả y. H ã y s ử d ụ ng độ ng t ừ ! 13. 13. 13. 13. Kh Kh Kh Kh ô ô ô ô ng ng ng ng suy suy suy suy ngh ngh ngh ngh ĩ ĩ ĩ ĩ th th th th ấ ấ ấ ấ u u u u đá đá đá đá o: o: o: o: CSDL CSDL CSDL CSDL & & & & SQL SQL SQL SQL S ố c á ch ng ườ i ta truy c ậ p c ơ s ở d ữ li ệ u (CSDL - database) v à l ấ y k ế t qu ả nhi ề u đế n m ứ c th ự c s ự ng ạ c nhi ê n. Nh ữ ng th í d ụ t ô i đã g ặ p bao g ồ m nh ữ ng t ổ h ợ p l ệ nh if v à v ò ng l ặ p do ... 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 11 11 11 11 Dormitory 204.B5 18:20 PM April 7, 2006 1.5. 1.5. 1.5. 1.5. Th Th Th Th ó ó ó ó i i i i quen quen quen quen x x x x ấ ấ ấ ấ u u u u D ướ i đâ y l à nh ữ ng th í d ụ (ph ó ng đạ i) v ề nh ữ ng t ê n bi ế n t ồ i $username_cua_csdl = 'SINHVIEN' ; $guMbi = 'bimat' ; // for the $password $tentruocdo_cua_giaovien = array ( 'Sadlon' , 'Lane' , 'Patterson' , 'Perry' , 'Sandler' , 'Mendick' , 'Zung' ); foreach ( $tentruocdo_cua_giaovien as $TeaChER ); 2. 2. 2. 2. Đặ Đặ Đặ Đặ t t t t t t t t ê ê ê ê n n n n h h h h à à à à m m m m M ọ i kh á i ni ệ m á p d ụ ng cho t ê n bi ế n c ũ ng á p d ụ ng cho đặ t t ê n h à m. Tuy nhi ê n, ng ữ ph á p đó ng vai tr ò đặ c bi ệ t trong c á c h à m. C á c h à m PHP, đị nh ngh ĩ a s ẵ n ho ặ c do ng ườ i d ù ng đị nh ngh ĩ a, l à kh ô ng-ph â n-bi ệ t-c á ch- vi ế t (not case sensitive) 2.1. 2.1. 2.1. 2.1. D D D D ù ù ù ù ng ng ng ng độ độ độ độ ng ng ng ng t t t t ừ ừ ừ ừ H à m c ủ a PHP t ươ ng đươ ng v ớ i m ộ t độ ng t ừ khi n ó i. T ê n h à m, do đó , n ê n đượ c h ướ ng h à nh độ ng (action oriented). N ó c ũ ng n ê n đượ c d ù ng ở th ì hi ệ n t ạ i. Th í d ụ , b ạ n c ó m ộ t h à m t ạ o m ộ t s ố ng ẫ u nhi ê n v ớ i ph â n b ố Gausse (a gaussian random number), b ạ n n ê n đặ t t ê n n ó l à generate_gaussian_rand(). Ch ú ý c á c s ử d ụ ng độ ng t ừ h à nh độ ng trong t ê n h à m. N ó s ẽ đặ t h à m v à o ng ữ c ả nh th í ch h ợ p < ?php list ( $num1 , $num2 ) = generate_gaussian_rand (); list ( $num3 , $num4 ) = generate_gaussian_rand (); ?> Để so s á nh, h ã y xem th í d ụ : < ?php list ( $num1 , $num2 ) = gaussian_rand_generator (); list ( $num1 , $num2 ) = gaussian_rand_generator (); ?> B ạ n c ó th ấ y s ự kh á c bi ệ t? Th í d ụ th ứ hai s ử d ụ ng danh t ừ , m ặ c d ù v ẫ n chuy ể n t ả i đượ c m ụ c ti ê u c ủ a h à m, nh ư ng n ó ng ă n ng ườ i ta đọ c m ộ t c á ch tr ô i ch ả y. H ã y s ử d ụ ng độ ng t ừ ! 13. 13. 13. 13. Kh Kh Kh Kh ô ô ô ô ng ng ng ng suy suy suy suy ngh ngh ngh ngh ĩ ĩ ĩ ĩ th th th th ấ ấ ấ ấ u u u u đá đá đá đá o: o: o: o: CSDL CSDL CSDL CSDL & & & & SQL SQL SQL SQL S ố c á ch ng ườ i ta truy c ậ p c ơ s ở d ữ li ệ u (CSDL - database) v à l ấ y k ế t qu ả nhi ề u đế n m ứ c th ự c s ự ng ạ c nhi ê n. Nh ữ ng th í d ụ t ô i đã g ặ p bao g ồ m nh ữ ng t ổ h ợ p l ệ nh if v à v ò ng l ặ p do ... 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 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 2 2 2 2 Dormitory 204.B5 18:20 PM April 7, 2006 print print print print "Ten cua tui la: $name \n \n \n \n <br> \n \n \n \n Hien dang la: $nghenghiep, $diachi \n \n \n \n <br> \n \n \n \n Lien he voi toi qua Email: $email \n \n \n \n <br> \n \n \n \n " ; ; ; ; Khi kh ô ng c ầ n đị nh d ạ ng s ử li ệ u, d ù ng print() thay cho printf() c ó nh ữ ng l ợ i í ch sau:  Thi Thi Thi Thi h h h h à à à à nh nh nh nh nhanh nhanh nhanh nhanh h h h h ơ ơ ơ ơ n: n: n: n: h à m printf() đị nh d ạ ng d ữ li ệ u c ủ a b ạ n tr ướ c khi hi ể n th ị , n ó s ẽ ch ậ m h ơ n print() ho ặ c echo()  M M M M ã ã ã ã s s s s á á á á ng ng ng ng s s s s ủ ủ ủ ủ a: a: a: a: h ã y xem, d ù ng h à m printf() s ẽ l à m cho ng ườ i đọ c h ơ i b ị l ẫ n l ộ n (t ấ t nhi ê n tr ừ khi h ọ c ó n ề n t ả ng C). N ó đò i h ỏ i ki ế n th ứ c v ề c ú ph á p printf() (th í d ụ , %s thay cho chu ỗ i c ò n %d l à s ố ) v à v ề ki ể u bi ế n 2. 2. 2. 2. D D D D ù ù ù ù ng ng ng ng printf() printf() printf() printf() để để để để xu xu xu xu ấ ấ ấ ấ t t t t d d d d ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u tr tr tr tr ả ả ả ả v v v v ề ề ề ề t t t t ừ ừ ừ ừ g g g g ọ ọ ọ ọ i i i i h h h h à à à à m m m m M ộ t l ỗ i th ườ ng g ặ p kh á c l à d ù n printf() để xu ấ t d ữ li ệ u tr ả v ề t ừ g ọ i h à m, th í d ụ nh ư h à m đế m d ướ i đâ y: Khi xu ấ t gi á tr ị do h à m tr ả v ề , to á n t ử . n ê n d ù ng để n ố i trong print(), nh ư d ướ i đâ y: D ù ng to á n t ử . nhanh h ơ n vi ệ c d ù ng printf() 20. 20. 20. 20. Á Á Á Á 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 (semantics) (semantics) (semantics) (semantics) Nhi ề u l ậ p tr ì nh vi ê n s ử d ụ ng PHP m à kh ô ng bi ế t đế n nh ữ ng đ i ể m tinh t ế c ủ a ng ô n ng ữ n à y. M ộ t trong nh ữ ng đ i ể m đó l à s ự kh á c nhau gi ữ a c ú ph á p (syntax) v à ng ữ ngh ĩ a (semantics).  C C C C ú ú ú ú ph ph ph ph á á á á p: p: p: p: nh ữ ng quy t ắ c đị nh ngh ĩ a m ộ t ph ầ n t ử . Th í d ụ : d ấ u $ để tr ướ c d ù ng đị nh ngh ĩ a bi ế n, d ù ng d ấ u () v à c á c tham s ố đị nh ngh ĩ a m ộ t h à m...
  • 27
  • 302
  • 0
Tài liệu PHP programming dynamic web for ewreybody pptx

Tài liệu PHP programming dynamic web for ewreybody pptx

Ngày tải lên : 13/12/2013, 02:16
... 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 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 9 9 9 9 Dormitory 204.B5 18:20 PM April 7, 2006 Đâ y l à m ộ t th ó i quen x ấ u v ì  N ó kh ô ng đượ c d ù ng r ộ ng r ã i, cho n ê n nhi ề u ng ườ i h ọ c s ẽ b ị l ẫ n l ộ n gi ữ a hai c ú ph á p  N ó kh ô ng t ươ ng th í ch v ớ i ng ô n ng ữ kh á c, ngh ĩ a l à n ó tr ở n ê n kh ó đọ c đố i v ớ i nh ữ ng ng ườ i trong giai đ o ạ n qu á độ (m ớ i chuy ể n t ừ m ộ t ng ô n ng ữ n à o đó sang PHP)  Quan tr ọ ng nh ấ t, l à m ộ t ng à y n à o đó t í nh n ă ng n à y s ẽ b ị xo á x ổ , b ắ t bu ộ c b ạ n ph ả i vi ế t l ạ i to à n b ộ m ã c ó d ù ng n ó . D ấ u ngo ặ c nh ọ n lu ô n lu ô n l à m ộ t ph ầ n c ủ a ng ô n ng ữ PHP. Ở tr ê n ch ỉ l à m ộ t th í d ụ v ề c ấ u tr ú c l ỗ i th ờ i. N ó c ò n nhi ề u n ữ a. Nh ư m ộ t quy t ắ c, b ạ n n ê n theo nh ữ ng c á c vi ế t trong t à i li ệ u PHP. H ầ u h ế t n ó đượ c c ậ p nh ậ t m ớ i. N ó c ũ ng d ù ng c á c h à m m ớ i nh ấ t c ủ a PHP trong th í d ụ c ủ a m ì nh. N ê n th ườ ng xuy ê n ki ể m tra t à i li ệ u khi b ạ n c ó ý mu ố n m ở r ộ ng t í nh n ă ng n à o đó c ủ a PHP. Theo c á ch n à y, b ạ n s ẽ kh ô ng ph ả i vi ế t l ạ i c á c h à m c ó s ẵ n. T T T T ổ ổ ổ ổ ng ng ng ng k k k k ế ế ế ế t t t t Trong b à i n à y b ạ n đã đ i qua 7 tr ê n t ổ ng s ố 21 l ỗ i m à l ậ p tr ì nh vi ê n PHP m ắ c ph ả i. Nh ữ ng l ỗ i gi á o khoa n à y bao g ồ m:     S S S S ử ử ử ử d d d d ụ ụ ụ ụ ng ng ng ng sai sai sai sai h h h h à à à à m m m m printf() printf() printf() printf()     Á Á Á Á 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     Thi Thi Thi Thi ế ế ế ế u u u u t t t t à à à à i i i i li li li li ệ ệ ệ ệ u u u u trong trong trong trong m m m m ã ã ã ã ngu ngu ngu ngu ồ ồ ồ ồ n n n n     D D D D ù ù ù ù ng ng ng ng qu qu qu qu á á á á nhi nhi nhi nhi ề ề ề ề u u u u bi bi bi bi ế ế ế ế n n n n t t t t ạ ạ ạ ạ m m m m     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     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 kh kh kh kh á á á á ch/ch ch/ch ch/ch ch/ch ủ ủ ủ ủ     D D D D ù ù ù ù ng ng ng ng c c c c á á á á c c c c c c c c ấ ấ ấ ấ u u u u tr tr tr tr ú ú ú ú c c c c l l l l ỗ ỗ ỗ ỗ i i i i th th th th ờ ờ ờ ờ i i i i // Bad/Outdated Practice while ( 1 ): print "5" ; if ( $idx ++ == 5 ): break; endif; endwhile; // Better Practice // (the code could be optimized though) while ( 1 ) { print "5" ; if ( $idx ++ == 5 ) { break; } } ?> 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 17 17 17 17 Dormitory 204.B5 18:20 PM April 7, 2006  Ki ể m tra k ế t qu ả l ờ i g ọ i h à m  Ki ể m tra k ế t qu ả l ờ i g ọ i h ệ th ố ng  Đặ t m ứ c error_reporting l à E_ALL trong t ậ p tin php. ini 1.1. 1.1. 1.1. 1.1. Ki Ki Ki Ki ể ể ể ể m m m m tra tra tra tra k k k k ế ế ế ế t t t t qu qu qu qu ả ả ả ả l l l l ờ ờ ờ ờ i i i i g g g g ọ ọ ọ ọ i i i i h h h h à à à à m m m m M ỗ i khi b ạ n g ọ i m ộ t h à m l à m thay đổ i nhi ề u d ữ li ệ u, lu ô n ki ể m tra để đả m b ả o r ằ ng k ế t qu ả tr ả v ề trong ph ạ m vi gi á tr ị đượ c ch ấ p nh ậ n (a range of allowable values). Trong th í d ụ d ướ i đâ y, m ộ t l ỗ i illegal division by zero sinh ra trong l ầ n l ặ p th ứ 6 c ủ a v ò ng for ($i đượ c t ă ng l ê n 1 trong khi $j b ị gi ả m đ i 1). V à o l ầ n th ứ 6, khi đó $i = $j = 0. < ?php mt_srand ((double) microtime () * 10000000 ); function do_math ( $a , $b ) { return (( $a - $b ) * 2 ) / mt_rand (); } for ( $i = 5 , $j = - 5 ; $i > - 5 ; $i ... 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 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 9 9 9 9 Dormitory 204.B5 18:20 PM April 7, 2006 Đâ y l à m ộ t th ó i quen x ấ u v ì  N ó kh ô ng đượ c d ù ng r ộ ng r ã i, cho n ê n nhi ề u ng ườ i h ọ c s ẽ b ị l ẫ n l ộ n gi ữ a hai c ú ph á p  N ó kh ô ng t ươ ng th í ch v ớ i ng ô n ng ữ kh á c, ngh ĩ a l à n ó tr ở n ê n kh ó đọ c đố i v ớ i nh ữ ng ng ườ i trong giai đ o ạ n qu á độ (m ớ i chuy ể n t ừ m ộ t ng ô n ng ữ n à o đó sang PHP)  Quan tr ọ ng nh ấ t, l à m ộ t ng à y n à o đó t í nh n ă ng n à y s ẽ b ị xo á x ổ , b ắ t bu ộ c b ạ n ph ả i vi ế t l ạ i to à n b ộ m ã c ó d ù ng n ó . D ấ u ngo ặ c nh ọ n lu ô n lu ô n l à m ộ t ph ầ n c ủ a ng ô n ng ữ PHP. Ở tr ê n ch ỉ l à m ộ t th í d ụ v ề c ấ u tr ú c l ỗ i th ờ i. N ó c ò n nhi ề u n ữ a. Nh ư m ộ t quy t ắ c, b ạ n n ê n theo nh ữ ng c á c vi ế t trong t à i li ệ u PHP. H ầ u h ế t n ó đượ c c ậ p nh ậ t m ớ i. N ó c ũ ng d ù ng c á c h à m m ớ i nh ấ t c ủ a PHP trong th í d ụ c ủ a m ì nh. N ê n th ườ ng xuy ê n ki ể m tra t à i li ệ u khi b ạ n c ó ý mu ố n m ở r ộ ng t í nh n ă ng n à o đó c ủ a PHP. Theo c á ch n à y, b ạ n s ẽ kh ô ng ph ả i vi ế t l ạ i c á c h à m c ó s ẵ n. T T T T ổ ổ ổ ổ ng ng ng ng k k k k ế ế ế ế t t t t Trong b à i n à y b ạ n đã đ i qua 7 tr ê n t ổ ng s ố 21 l ỗ i m à l ậ p tr ì nh vi ê n PHP m ắ c ph ả i. Nh ữ ng l ỗ i gi á o khoa n à y bao g ồ m:     S S S S ử ử ử ử d d d d ụ ụ ụ ụ ng ng ng ng sai sai sai sai h h h h à à à à m m m m printf() printf() printf() printf()     Á Á Á Á 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     Thi Thi Thi Thi ế ế ế ế u u u u t t t t à à à à i i i i li li li li ệ ệ ệ ệ u u u u trong trong trong trong m m m m ã ã ã ã ngu ngu ngu ngu ồ ồ ồ ồ n n n n     D D D D ù ù ù ù ng ng ng ng qu qu qu qu á á á á nhi nhi nhi nhi ề ề ề ề u u u u bi bi bi bi ế ế ế ế n n n n t t t t ạ ạ ạ ạ m m m m     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     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 kh kh kh kh á á á á ch/ch ch/ch ch/ch ch/ch ủ ủ ủ ủ     D D D D ù ù ù ù ng ng ng ng c c c c á á á á c c c c c c c c ấ ấ ấ ấ u u u u tr tr tr tr ú ú ú ú c c c c l l l l ỗ ỗ ỗ ỗ i i i i th th th th ờ ờ ờ ờ i i i i // Bad/Outdated Practice while ( 1 ): print "5" ; if ( $idx ++ == 5 ): break; endif; endwhile; // Better Practice // (the code could be optimized though) while ( 1 ) { print "5" ; if ( $idx ++ == 5 ) { break; } } ?> 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 17 17 17 17 Dormitory 204.B5 18:20 PM April 7, 2006  Ki ể m tra k ế t qu ả l ờ i g ọ i h à m  Ki ể m tra k ế t qu ả l ờ i g ọ i h ệ th ố ng  Đặ t m ứ c error_reporting l à E_ALL trong t ậ p tin php. ini 1.1. 1.1. 1.1. 1.1. Ki Ki Ki Ki ể ể ể ể m m m m tra tra tra tra k k k k ế ế ế ế t t t t qu qu qu qu ả ả ả ả l l l l ờ ờ ờ ờ i i i i g g g g ọ ọ ọ ọ i i i i h h h h à à à à m m m m M ỗ i khi b ạ n g ọ i m ộ t h à m l à m thay đổ i nhi ề u d ữ li ệ u, lu ô n ki ể m tra để đả m b ả o r ằ ng k ế t qu ả tr ả v ề trong ph ạ m vi gi á tr ị đượ c ch ấ p nh ậ n (a range of allowable values). Trong th í d ụ d ướ i đâ y, m ộ t l ỗ i illegal division by zero sinh ra trong l ầ n l ặ p th ứ 6 c ủ a v ò ng for ($i đượ c t ă ng l ê n 1 trong khi $j b ị gi ả m đ i 1). V à o l ầ n th ứ 6, khi đó $i = $j = 0. < ?php mt_srand ((double) microtime () * 10000000 ); function do_math ( $a , $b ) { return (( $a - $b ) * 2 ) / mt_rand (); } for ( $i = 5 , $j = - 5 ; $i > - 5 ; $i ... 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 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 9 9 9 9 Dormitory 204.B5 18:20 PM April 7, 2006 Đâ y l à m ộ t th ó i quen x ấ u v ì  N ó kh ô ng đượ c d ù ng r ộ ng r ã i, cho n ê n nhi ề u ng ườ i h ọ c s ẽ b ị l ẫ n l ộ n gi ữ a hai c ú ph á p  N ó kh ô ng t ươ ng th í ch v ớ i ng ô n ng ữ kh á c, ngh ĩ a l à n ó tr ở n ê n kh ó đọ c đố i v ớ i nh ữ ng ng ườ i trong giai đ o ạ n qu á độ (m ớ i chuy ể n t ừ m ộ t ng ô n ng ữ n à o đó sang PHP)  Quan tr ọ ng nh ấ t, l à m ộ t ng à y n à o đó t í nh n ă ng n à y s ẽ b ị xo á x ổ , b ắ t bu ộ c b ạ n ph ả i vi ế t l ạ i to à n b ộ m ã c ó d ù ng n ó . D ấ u ngo ặ c nh ọ n lu ô n lu ô n l à m ộ t ph ầ n c ủ a ng ô n ng ữ PHP. Ở tr ê n ch ỉ l à m ộ t th í d ụ v ề c ấ u tr ú c l ỗ i th ờ i. N ó c ò n nhi ề u n ữ a. Nh ư m ộ t quy t ắ c, b ạ n n ê n theo nh ữ ng c á c vi ế t trong t à i li ệ u PHP. H ầ u h ế t n ó đượ c c ậ p nh ậ t m ớ i. N ó c ũ ng d ù ng c á c h à m m ớ i nh ấ t c ủ a PHP trong th í d ụ c ủ a m ì nh. N ê n th ườ ng xuy ê n ki ể m tra t à i li ệ u khi b ạ n c ó ý mu ố n m ở r ộ ng t í nh n ă ng n à o đó c ủ a PHP. Theo c á ch n à y, b ạ n s ẽ kh ô ng ph ả i vi ế t l ạ i c á c h à m c ó s ẵ n. T T T T ổ ổ ổ ổ ng ng ng ng k k k k ế ế ế ế t t t t Trong b à i n à y b ạ n đã đ i qua 7 tr ê n t ổ ng s ố 21 l ỗ i m à l ậ p tr ì nh vi ê n PHP m ắ c ph ả i. Nh ữ ng l ỗ i gi á o khoa n à y bao g ồ m:     S S S S ử ử ử ử d d d d ụ ụ ụ ụ ng ng ng ng sai sai sai sai h h h h à à à à m m m m printf() printf() printf() printf()     Á Á Á Á 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     Thi Thi Thi Thi ế ế ế ế u u u u t t t t à à à à i i i i li li li li ệ ệ ệ ệ u u u u trong trong trong trong m m m m ã ã ã ã ngu ngu ngu ngu ồ ồ ồ ồ n n n n     D D D D ù ù ù ù ng ng ng ng qu qu qu qu á á á á nhi nhi nhi nhi ề ề ề ề u u u u bi bi bi bi ế ế ế ế n n n n t t t t ạ ạ ạ ạ m m m m     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     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 kh kh kh kh á á á á ch/ch ch/ch ch/ch ch/ch ủ ủ ủ ủ     D D D D ù ù ù ù ng ng ng ng c c c c á á á á c c c c c c c c ấ ấ ấ ấ u u u u tr tr tr tr ú ú ú ú c c c c l l l l ỗ ỗ ỗ ỗ i i i i th th th th ờ ờ ờ ờ i i i i // Bad/Outdated Practice while ( 1 ): print "5" ; if ( $idx ++ == 5 ): break; endif; endwhile; // Better Practice // (the code could be optimized though) while ( 1 ) { print "5" ; if ( $idx ++ == 5 ) { break; } } ?> 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 17 17 17 17 Dormitory 204.B5 18:20 PM April 7, 2006  Ki ể m tra k ế t qu ả l ờ i g ọ i h à m  Ki ể m tra k ế t qu ả l ờ i g ọ i h ệ th ố ng  Đặ t m ứ c error_reporting l à E_ALL trong t ậ p tin php. ini 1.1. 1.1. 1.1. 1.1. Ki Ki Ki Ki ể ể ể ể m m m m tra tra tra tra k k k k ế ế ế ế t t t t qu qu qu qu ả ả ả ả l l l l ờ ờ ờ ờ i i i i g g g g ọ ọ ọ ọ i i i i h h h h à à à à m m m m M ỗ i khi b ạ n g ọ i m ộ t h à m l à m thay đổ i nhi ề u d ữ li ệ u, lu ô n ki ể m tra để đả m b ả o r ằ ng k ế t qu ả tr ả v ề trong ph ạ m vi gi á tr ị đượ c ch ấ p nh ậ n (a range of allowable values). Trong th í d ụ d ướ i đâ y, m ộ t l ỗ i illegal division by zero sinh ra trong l ầ n l ặ p th ứ 6 c ủ a v ò ng for ($i đượ c t ă ng l ê n 1 trong khi $j b ị gi ả m đ i 1). V à o l ầ n th ứ 6, khi đó $i = $j = 0. < ?php mt_srand ((double) microtime () * 10000000 ); function do_math ( $a , $b ) { return (( $a - $b ) * 2 ) / mt_rand (); } for ( $i = 5 , $j = - 5 ; $i > - 5 ; $i ...
  • 27
  • 592
  • 0
FriendsofED.PHP.Solutions.Dynamic.Web.Design.Made.Easy

FriendsofED.PHP.Solutions.Dynamic.Web.Design.Made.Easy

Ngày tải lên : 09/01/2013, 09:45
... other thing you need is a web server capable of understanding PHP. Checking whether your website supports PHP The easiest way to find out whether your website supports PHP is to ask your hosting company. ... water and stir. Dynamic web design is—well— dynamic. Every website is different, so it’s impossible to grab a script, paste it into a web page, and expect it to work. Building dynamic sites involves ... page: < ?php echo phpversion(); ?> 2. Save the file as phptest .php. It’s important to make sure that your operating sys- tem doesn’t add a .txt filename extension after the .php. Mac users...
  • 487
  • 593
  • 0
Core PHP programming   using PHP to build dynamic web sites

Core PHP programming using PHP to build dynamic web sites

Ngày tải lên : 24/01/2014, 14:20
... tags. PHP scripts could parse data submitted by HTML forms, communicate with databases, and make Core PHP Programming IT-SC book 1 Core PHP Programming Using PHP to Build Dynamic Web Sites ... Expressions Core PHP Programming IT-SC book 11 Foreword Preface Acknowledgments I: PROGRAMMING WITH PHP 1. AN INTRODUCTION TO PHP The Origins of PHP What Makes PHP Better than ... more. You’ll even find detailed, real-world insights into PHP 4 program design and debugging! Core PHP Programming delivers: Core PHP Programming IT-SC book 26 are described in detail in Section...
  • 671
  • 385
  • 0
Manning.Publications.ASP.Net.2.0.Web.Parts.in.Action.Building.Dynamic.Web.Portals.Oct.2006

Manning.Publications.ASP.Net.2.0.Web.Parts.in.Action.Building.Dynamic.Web.Portals.Oct.2006

Ngày tải lên : 15/11/2012, 14:24
... class 38 Using custom controls 38 ✦ Creating web parts with user controls 42 2.4 Understanding web part internals 45 IWebPart 46 ✦ IWebActionable 48 ✦ IWebEditable 52 I NTRODUCING A DVENTURE W ORKS ... 21 1.5 Summary 31 2 Web parts: the building blocks of portals 32 2.1 Introduction 32 2.2 Exploring web parts 33 Discovering the GenericWebPart control 34 2.3 Understanding the WebPart class 38 Using ... other web part. Connections allow us to maintain these types of interdependencies between web parts without the need to write lots of tricky application code. • WebPartManager—I mentioned the WebPartManager ...
  • 345
  • 444
  • 0
Ứng dụng PHP xây dựng website bán hàng điện tử

Ứng dụng PHP xây dựng website bán hàng điện tử

Ngày tải lên : 23/07/2013, 15:41
... php xây dựng website bán hàng điện tử ÷ PHP phiên bản 5.0 trở lên. CHƯƠNG III : GIỚI THIỆU CÔNG CỤ THỰC HIỆN 1. Giới thiệu ngôn ngữ PHP PHP được phát triển từ một sản phẩm có tên là PHP/ FI. PHP/ FI ... luồng dữ liệu mức ngữ cảnh Quản lý chủng loại Website Bán hàng điện tử Website Bán hàng điện tử KHÁCH HÀNG QUẢN TRỊ WEBSITE Ứng dụng php xây dựng website bán hàng điện tử Hình 26 : Qui trình ... của PHP 3.0. GVHD: THS. Nguyễn Quỳnh Mai SVTH: Nguyễn Văn Ngân Ứng dụng php xây dựng website bán hàng điện tử Khách hàng cần đăng ký thông tin cá nhân nếu có nhu cầu mua hàng qua hệ thống website...
  • 68
  • 621
  • 7
Advanced PHP Programming- P12

Advanced PHP Programming- P12

Ngày tải lên : 17/10/2013, 20:15
... API. Implementing Classes By far the largest change from PHP 4 to PHP 5 is the new object model. Mirroring this, the biggest change from PHP 4 extensions to PHP 5 extensions is handling classes and objects.The ... opens a URL: php_ stream_open_wrapper( “ http://www.advanced -php. com ” , ” rb ” ,REPORT_ERRORS,NULL); You can also execute similar code from PHP: $fp = fopen( “ http://www.advanced -php. com ” ); The ... mmap_open() : php_ stream *mmap_open (php_ stream_wrapper *wrapper, char *filename, char *mode, int options, char **opened_path, php_ stream_context *context STREAMS_DC TSRMLS_DC) { php_ stream *stream; struct...
  • 50
  • 338
  • 0
Advanced PHP Programming- P13

Advanced PHP Programming- P13

Ngày tải lên : 20/10/2013, 11:15
... output: /Users/george/Advanced _PHP/ examples/chapter-23/call_coverage/test .php: 2 /Users/george/Advanced _PHP/ examples/chapter-23/call_coverage/test .php: 3 /Users/george/Advanced _PHP/ examples/chapter-23/call_coverage/test .php: 4 /Users/george/Advanced _PHP/ examples/chapter-23/call_coverage/test .php: 10 Homework While ... 208 hook structures, session handlers, 564 MetaWeblog implementing, 396-400 Web site, 415 MovableType Web site, 415 phpDocumentor project, 31-35 PHP extension, 493, 497-498 streams, 579 C streams-compatible ... raw_filter_module_entry = { STANDARD_MODULE_HEADER, “ raw_filter ” , NULL, PHP_ MINIT(raw_filter), PHP_ MSHUTDOWN(raw_filter), NULL, PHP_ RSHUTDOWN(raw_filter), PHP_ MINFO(raw_filter), “ 0.1 ” , STANDARD_MODULE_PROPERTIES }; #ifdef...
  • 50
  • 326
  • 0
Advanced PHP Programming- P14

Advanced PHP Programming- P14

Ngày tải lên : 20/10/2013, 11:15
... 526-527 php, Smarty, 115 phpinfo(), 536-537, 583 php_ info_print_table_row(), 537 PHP_ MINFO_FUNCTION(), 536 php_ module_shutdown(), 584 php_ module_startup(), 583 PHP_ RINIT_FUNCTION(), 535 PHP_ RSHUTDOWN_FUNCTION(), ... finding, 526-527 PHP Extension and Application Repository. See PEAR php function, Smarty, 115 php| architect, 151 PHP- GTK, 151 phpDocumentor project, 31-35 phpinfo() method, 536-537, 583 php_ example.h ... file, 507 php_ info_print_table_row() method, 537 PHP_ MINFO_FUNCTION() method, 536 PHP_ MINIT_FUNCTION() handler, 525 php_ module_shutdown() method, 584 php_ module_startup() method, 583 PHP_ RINIT_FUNCTION()...
  • 23
  • 329
  • 0
Advanced PHP Programming- P15

Advanced PHP Programming- P15

Ngày tải lên : 24/10/2013, 10:15
... 526-527 php, Smarty, 115 phpinfo(), 536-537, 583 php_ info_print_table_row(), 537 PHP_ MINFO_FUNCTION(), 536 php_ module_shutdown(), 584 php_ module_startup(), 583 PHP_ RINIT_FUNCTION(), 535 PHP_ RSHUTDOWN_FUNCTION(), ... finding, 526-527 PHP Extension and Application Repository. See PEAR php function, Smarty, 115 php| architect, 151 PHP- GTK, 151 phpDocumentor project, 31-35 phpinfo() method, 536-537, 583 php_ example.h ... file, 507 php_ info_print_table_row() method, 537 PHP_ MINFO_FUNCTION() method, 536 PHP_ MINIT_FUNCTION() handler, 525 php_ module_shutdown() method, 584 php_ module_startup() method, 583 PHP_ RINIT_FUNCTION()...
  • 22
  • 530
  • 0
Getting Started With ASP.NET ASP.NET is a new and powerful technology for writing dynamic web pages.

Getting Started With ASP.NET ASP.NET is a new and powerful technology for writing dynamic web pages.

Ngày tải lên : 06/11/2013, 00:15
... let's take a look at its role in helping to create dynamic web pages. How are Dynamic Web Pages Served? To fully understand the nature of dynamic web pages, we first need to look at the limitations ... http:// web page address which indicates which web server to connect to, and the page we want to view. What URL do we use in order to browse to our web server? If your web server and web browser ... web server machine. Browsing to a Page on your Web Server Now you know the name of your web server, and that web services are running; you can view some classic ASP pages hosted on your web...
  • 792
  • 596
  • 0
Tài liệu Advanced PHP Programming- P1 docx

Tài liệu Advanced PHP Programming- P1 docx

Ngày tải lên : 21/01/2014, 09:20
... implementations. PHP in the Enterprise When I started programming PHP professionally in 1999, PHP was just starting its emergence as more than a niche scripting language for hobbyists.That was the time of PHP ... Development Methodologies 1 Coding Styles 2 Object-Oriented Programming Through Design Patterns 3 Error Handling 4 Implementing with PHP: Templates and the Web 5 Implementing with PHP: Standalone Scripts 6 Unit Testing 7 ... Development Methodologies 1 Coding Styles 2 Object-Oriented Programming Through Design Patterns 3 Error Handling 4 Implementing with PHP: Templates and the Web 5 Implementing with PHP: Standalone Scripts 6 Unit Testing 7...
  • 50
  • 341
  • 0
Tài liệu Advanced PHP Programming- P2 doc

Tài liệu Advanced PHP Programming- P2 doc

Ngày tải lên : 21/01/2014, 09:20
... one: > php 19 .php This page has been accessed 1 times. > php 19 .php This page has been accessed 2 times. Overloading can also be used to provide access controls on properties. As you know, PHP ... lot of work. Let’s see what it has bought us.You can run phpDocumentor at this point, as follows: phpdoc -f Primes .php -o HTML:frames:phpedit -t /Users/george/docs Figure 1.3 shows the result ... this watermark. 33 Documentation Figure 1.3 phpdoc output for primes .php. For a slightly more complicated example, look at this basic Employee class: < ?php /** * A simple class describing employees * *...
  • 50
  • 349
  • 0
Wrox press professional PHP programming

Wrox press professional PHP programming

Ngày tải lên : 24/01/2014, 13:16
... http://px.sklar.com/ or Berber's WeberDev http://www.weberdev.com/), many sites with tutorials (PHPBuilder, http://www.phpbuilder.com/; PHPWizard, http://www.phpwizard.net/, WebMonkey, etc.) and thriving ... application/x-httpd -php3 .php3 However for PHP 4 the entry should be: AddType application/x-httpd -php .php The AddType directive causes Apache to recognize files with the extension .php3 to be PHP scripts ... comes with PHP; another configuration mechanism is to modify the php3 .ini file which is PHP3 ’s configuration file (php. ini in the case of PHP4 ). The third way is to use Apache’s PHP configuration...
  • 858
  • 363
  • 0
Core PHP programming

Core PHP programming

Ngày tải lên : 24/01/2014, 14:22
... and associate the .php extension with PHP script. The final step is restarting Apache. Listing 1.5 Activating PHP for Apache on Windows LoadModule php5 _module c: /php/ sapi /php5 apache.dll AddType ... commercial Web sites. In 1996, Clear Ink created the SuperCuts site (www.supercuts.com) and used PHP to create a custom experience for the Web surfer. The PHP Web site tracks the popularity of PHP by ... forthcoming." —Murray "A Web 4 U Designs" www.aweb4u.co.nz Prentice Hall PTR : Core PHP Programming, Third Edition 10 / 806 [ Team LiB ] Chapter 1. An Introduction to PHP Topics in This Chapter The...
  • 811
  • 3.3K
  • 0

Xem thêm