winnc ge fanuc 21

CHIẾN LƯỢC ĐẨY NHANH TIẾN ĐỘ XK GẠO CỦA VIỆT NAM TRONG NHỮNG NĂM ĐẦU THẾ KỶ 21.DOC

CHIẾN LƯỢC ĐẨY NHANH TIẾN ĐỘ XK GẠO CỦA VIỆT NAM TRONG NHỮNG NĂM ĐẦU THẾ KỶ 21.DOC

... giá tháng hai còn thấp hơn : theo các doanh nghiệp cho biết gạo 5% tấm còn 216 -218 đôla/tấn , loại 10% tấm còn 208 -210 đôla/tấn và loại 25% tấm còn 186-188 đôla/tấn thấp hơn giá của năm 1999 ... 2001. nguyễn xuân dũng lớp 41b qtkdth 21 Đề án môn học Đề tài: Chiến lợc đẩy nhanh tiến độ XK gạo của Việt Nam trong những năm đầu thế kỷ 21 ______________________________________________________________________________________ Lời ... qtkdth 13 Đề án môn học Đề tài: Chiến lợc đẩy nhanh tiến độ XK gạo của Việt Nam trong những năm đầu thế kỷ 21 ______________________________________________________________________________________ Năm 2000...

Ngày tải lên: 08/09/2012, 13:31

40 777 2
Đánh giá hiệu quả sử dụng các công cụ chính sách tiền tệ của Ngân hàng nhà nước Việt Nam thập kỷ 90 và những năm đầu thế kỉ 21.DOC

Đánh giá hiệu quả sử dụng các công cụ chính sách tiền tệ của Ngân hàng nhà nước Việt Nam thập kỷ 90 và những năm đầu thế kỉ 21.DOC

... hành chính sách tiền tệ. Sau hơn một năm hoạt động, tính đến cuối năm 2001, thị trờng mở đà có 21 thành viên trong đó có 4 Ngân hàng Thơng mại Quốc doanh, 10 Ngân hàng Thơng mại cổ phần, 4 chi ... chủ yếu là mua có kì hạn do tính đến yếu tố lợng vốn khả dụng có thể tăng lên sau tết. Từ ngày 21/ 2 đến ngày 14/3/2001, lợng vốn khả dụng có biểu hiện d thừa, để rút bớt phơng tiện thanh toán ... dụng, Ngân hàng Nhà nớc thực hiện bán hẳn lợng giấy tờ có giá với giá trị là 470 tỉ đồng. Từ 21/ 3 đến 30/5/2001, do nhu cầu vốn khả dụng tăng, Ngân hàng Nhà nớc thực hiện mua có kì hạn giấy...

Ngày tải lên: 15/09/2012, 16:33

30 2.4K 16
21_sai_lam_chet_nguoi_trong_lap_trinh_voi_PHP.pdf

21_sai_lam_chet_nguoi_trong_lap_trinh_voi_PHP.pdf

... 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 19 19 19 19 Dormitory 204.B5 18:20 PM April 7, 2006 Trong th í d ụ d ướ i, set_error_handler() đượ c d ù ng để ch ỉ đị nh h à m error_handler() l à b ộ qu ả n l í l ỗ i m ặ c đị nh. Khi m ộ t l ỗ i x ả y ra, error_handler() đượ c g ọ i v à h à m PHP error_log() đượ c d ù ng để ghi l ỗ i v à o t ậ p tin error_file. N ế u m à l ỗ i thu ộ c lo ạ i E_ERROR, ch ú ng ta s ẽ tho á t ch ươ ng tr ì nh v à in th ô ng b á o l ỗ i. <?php // void error_handler(string type, string message, string file, int line) // Custom error handler, set by the set_error_handler() // function. function error_handler ( $type , $message , $file = __FILE__ , $line = __LINE__ ) { error_log ( "$message, $file, $line" , 3 , 'error_file' ); if ( $type & E_ERROR ) { print 'An error occurred, it has been logged and it will be addressed.' ; exit; } } set_error_handler ( 'error_handler' ); ?> 11. 11. 11. 11. L L L L ạ ạ ạ ạ m m m m 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 (H (H (H (H Đ Đ Đ Đ T) T) T) T) M ô h ì nh h ướ ng đố i t ượ ng l à m ộ t kh á i ni ệ m tuy ệ t v ờ i. N ó c ó r ấ t nhi ề u l ợ i đ i ể m, m à đá ng ch ú ý nh ấ t l à kh ả n ă ng d ù ng l ạ i m ã d ễ d à ng. Tuy nhi ê , theo nh ư ch ú ng ta đượ c hi ể u: PHP kh ô ng ph ả i l à m ộ t ng ô n ng ữ H Đ T. M ặ c d ù PHP c ó m ộ t s ự h ỗ tr ợ đầ y đủ v ề H Đ T, n ó kh ô ng hi ệ u qu ả l ẫ n kh ô ng kh ô n ngoan n ế u d ù ng t í nh n ă ng H Đ T c ủ a n ó khi b ạ n c ó c á c h à m kh á c để đạ t đượ c c ù ng k ế t qu ả . L í do l à s ự h ỗ tr ợ H Đ T c ủ a PHP kh ô ng đượ c ph á t tri ể n m ạ nh. Trong khi c ó h ầ u h ế t c á c ph ầ n t ử ch í nh y ế u, PHP v ẫ n c ò n thi ế u v à i t í nh n ă ng cao c ấ p (nh ư c á c kh á i ni ệ m protected, private) m à m ộ t ng ô n ng ữ H Đ T th ự c s ự (th í d ụ nh ư C++ , Java) ph ả i c ó . C á c m ã h ỗ tr ợ H Đ T c ủ a PHP kh ô ng đượ c tinh ch ỉ nh v à c ũ ng kh ô ng hi ệ u qu ả . Ngh ĩ a l à n ế u b ạ n d ù ng m ô h ì nh H Đ T trong PHP, b ạ n c ó th ể l à m ch ậ m ch ươ ng tr ì nh đá ng k ể . N ó i chung, m ộ t ứ ng d ụ ng d ù ng H Đ T s ẽ ch ậ m đ i, c ũ ng nh ư l à b ạ n d ù ng eval() th ì s ẽ ch ậ m h ơ n l à d ù ng m ã b ì nh th ườ ng. Để minh ho ạ đầ y đủ h ơ n vi ệ c H Đ T c ó g ì đó kh ô ng t ố t, t ô i đã t ừ ng ph ả i d ù ng nh ữ ng t í nh n ă ng v à kh á i ni ệ m cao c ấ p c ủ a PHP, m ộ t v à i trong s ố đó th ậ m ch í ch ư a c ó t à i li ệ u ch ỉ d ẫ n. 1. 1. 1. 1. Ch Ch Ch Ch ú ú ú ú ng ng ng ng ta ta ta ta c c c c ó ó ó ó th th th th ể ể ể ể l l l l à à à à m m m m g g g g ì ì ì ì m m m m à à à à kh kh kh kh ô ô ô ô ng ng ng ng c c c c ầ ầ ầ ầ n n n n H H H H Đ Đ Đ Đ T? T? T? T? N ế u b ạ n chuy ể n sang PHP t ừ c á c ng ô n ng ữ nh ư Java hay C++ (n ơ i b ạ n b ạ n th ự c s ự kh ô ng th ể t ạ o c á c ch ươ ng tr ì nh ph ứ c t ạ p m à kh ô ng d ù ng c á c t í nh n ă ng H Đ T), vi ệ c b ỏ qua kh ả n ă ng H Đ T c ủ a PHP c ó th ể s ẽ kh ó kh ă n. D ù sao, t ô i v ẫ n c ó th ể tr ấ n an b ạ n l à c á c ch ươ ng t r ì nh r ấ t m ạ nh c ó th ể đượ c vi ế t m à kh ô ng d ù ng m ấ t c ứ kh á i ni ệ m v à m ô h ì nh H Đ T n à o (PHP đượ c vi ế t b ằ ng C, ng ô n ng ữ kh ô ng h ỗ tr ợ H Đ T). Để d à nh cho nh ữ ng ai kh ô ng quen v ớ i k ĩ n ă ng phi-H Đ T, d ướ i đâ y l à v à i k ĩ thu ậ t để t ạ o ch ươ ng tr ì nh c ó t í nh k ế t d í nh v à d ễ m ở r ộ ng m à kh ô ng d ù ng m ô h ì nh H Đ T: 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 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 21 21 21 21 Dormitory 204.B5 18:20 PM April 7, 2006 1.2. 1.2. 1.2. 1.2. T T T T ạ ạ ạ ạ o o o o m m m m ộ ộ ộ ộ t t t t tr tr tr tr ì ì ì ì nh nh nh nh t t t t ự ự ự ự t t t t ê ê ê ê n n n n v v v v à à à à lu lu lu lu ô ô ô ô n n n n tu tu tu tu â â â â n n n n th th th th ủ ủ ủ ủ M ộ t trong nh ữ ng v ấ n đề ch í nh trong b ấ t c ứ m ộ t d ự á n l ớ n n à o l à s ự xung độ t v ề t ê n. C á c l ớ p c ó th ể ph â n đ o ạ n t ê n. Do đó , c á c l ớ p kh á c nhau c ó th ể :  Đượ c g á n m ộ t thu ộ c t í nh v ớ i t ê n gi ố ng nhau  Ch ứ a c á c ph ươ ng th ứ c v ớ i t ê n gi ố ng nhau Th í d ụ , l ớ p Phillips v à l ớ p Normal c ó th ể c ù ng c ó ph ươ ng th ứ c t ê n screwdriver. N ó i chung, tr ướ c khi b ắ t đầ u m ộ t d ự á n l ớ n n à o, b ạ n n ê n c ó m ộ t tr ì nh t ự t ê n cho m ọ i th ứ , c ụ th ể l à c á ch b ạ n t á ch c á c bi ế n to à n c ụ c ra c á c bi ế n th ô ng th ườ ng, c á ch đị nh ngh ĩ a h à m trong th ư vi ệ n v.v. 1.3. 1.3. 1.3. 1.3. Nh Nh Nh Nh ó ó ó ó m m m m c c c c á á á á c c c c ý ý ý ý ni ni ni ni ệ ệ ệ ệ m m m m chung chung chung chung v v v v à à à à o o o o m m m m ộ ộ ộ ộ t t t t t t t t ậ ậ ậ ậ p p p p tin tin tin tin Nh ó m c á c h à m API t ươ ng t ự v à o chung m ộ t t ậ p tin c ũ ng gi ố ng nh ư nh ó m c á c ph ươ ng th ứ c t ươ ng t ự v à o m ộ t l ớ p. C ố g ắ ng t ưở ng t ượ ng m ỗ i t ậ p tin b ạ n t ạ o l à m ộ t l ớ p, m ỗ i h à m trong đó l à m ộ t ph ươ ng th ứ c. B ằ ng c á ch n à y, c á c h à m c ủ a b ạ n s ẽ c ó đị nh ngh ĩ a v à c ấ u tr ú c s á ng s ủ a . Th í d ụ , b ạ n c ó th ể mu ố n nh ó m m ọ i h à m li ê n quan đế n truy c ậ p CSDL v à o m ộ t t ậ p tin DB.php. 2. 2. 2. 2. H H H H Đ Đ Đ Đ T, T, T, T, gi gi gi gi ố ố ố ố ng ng ng ng m m m m ọ ọ ọ ọ i i i i th th th th ứ ứ ứ ứ , , , , t t t t ố ố ố ố t t t t khi khi khi khi c c c c ó ó ó ó đ đ đ đ i i i i ề ề ề ề u u u u độ độ độ độ Để t ô i l à m s á ng t ỏ m ộ t vi ệ c. T ô i kh ô ng ph ả i đ ang c ố bi ệ n h ộ để b ạ n t ừ b ỏ h ẳ n H Đ T trong PHP. Đú ng ra, t ô i ch ỉ đ ang c ố c ả nh b á o b ạ n đừ ng n ê n d ù ng PHP nh ư Java hay C++, n ơ i m à H Đ T c ó th ể d ù ng tho ả i m á i. H ã y c ẩ n th ậ n đá nh gi á l ợ i v à h ạ i tr ướ c khi b ạ n d ù ng m ộ t ti ế p c ậ n H Đ T v ớ i PHP. 10. 10. 10. 10. D D D D ù ù ù ù ng ng ng ng nh nh nh nh ầ ầ ầ ầ m m m m Bi Bi Bi Bi ể ể ể ể u u u u th th th th ứ ứ ứ ứ c c c c Ch Ch Ch Ch í í í í nh nh nh nh quy quy quy quy Bi ể u th ứ c ch í nh quy (Regular expressions) l à c ô ng c ụ m ạ nh để t ì m v à t ổ ch ứ c d ữ li ệ u, nh ư l à ki ể m đị nh đị a ch ỉ e-mail ho ặ c ki ể m tra m ộ t URL. Tuy nhi ê n, n ó ch ậ m h ơ n c á c c ô ng c ụ c ủ a PHP trong m ộ t s ố t á c v ụ đơ n gi ả n. Th í d ụ , n ế u b ạ n mu ố n vi ế t hoa to à n b ộ m ô t chu ỗ i, m ộ t l í nh m ớ i c ủ a PHP c ó th ể l à m nh ư sau: <?php $URL = "http://www.php.net" ; $fp = @ fopen ( $URL , "r" ); if (! $fp ) { die ( "Cannot open website $URL!" ); } while ( $line = @ fgets ( $fp , 1024 )) { $data .= $line ; } @ fclose ( $fp ) or warn ( "Cannot close website handle, $URL" ); $data = ereg_replace ( "[a-z]" , "[A-Z]" , $data ); print $data ; ?> Tuy nhi ê n, s ẽ ph í th ờ i gian khi b ạ n d ù ng h à m ereg_replace() (ch ậ m h ơ n) để l à m c ô ng vi ệ c m à strtoupper() (nhanh h ơ n) c ó th ể th ự c hi ệ n t ố t h ơ n. $data = strtoupper ( $data ); N ó i chung, b ạ n lu ô n c ố g ắ ng d ù ng c á c thay th ế đơ n gi ả n c ủ a bi ể u th ứ c ch í nh quy v ì n ó s ẽ l à m t ă ng kh á nhi ề u t ố c độ ch ươ ng tr ì nh. 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 8 8 8 8 Dormitory 204.B5 18:20 PM April 7, 2006  Kh ô ng s á ng s ủ a v à d ễ d à ng b ằ ng h ệ th ố ng m ẫ u (template system)  C ầ n m ộ t í t ki ế n th ứ c PHP để s ử a m ẫ u 2. 2. 2. 2. H H H H ệ ệ ệ ệ th th th th ố ố ố ố ng ng ng ng khu khu khu khu ô ô ô ô n n n n m m m m ẫ ẫ ẫ ẫ u u u u M ộ t c á ch kh á c để t á ch bi ệ t kh á ch ch ủ l à d ù ng h ệ th ố ng khu ô n m ẫ u. Ngh ĩ a l à , c ó m ộ t s ố đá nh d ấ u n ộ i dung sau đó d ù ng ch ươ ng tr ì nh ph â n t í ch, thay th ế c á c đá nh d ấ u đó b ằ ng th ô ng tin c ầ n thi ế t. Th í d ụ , b ạ n c ó th ể t ạ o m ộ t t ậ p tin nh ư th ế n à y: Sau đó c ó th ể vi ế t ch ươ ng tr ì nh ph â n t á ch t ậ p tin, thay th ế c á c th ô ng tin trong d ấ u c á ch %% b ằ ng c á c th ô ng tin th í ch h ợ p. Ghi ch ú : m ộ t l ớ p h ỗ tr ợ h ệ th ố ng khu ô n m ẫ u kh á t ố t l à l ớ p FastTemplate, c ó ở www.thewebmasters.net 2.1. 2.1. 2.1. 2.1. Ư Ư Ư Ư u u u u đ đ đ đ i i i i ể ể ể ể m m m m c c c c ủ ủ ủ ủ a a a a h h h h ệ ệ ệ ệ th th th th ố ố ố ố ng ng ng ng khu khu khu khu ô ô ô ô n n n n m m m m ẫ ẫ ẫ ẫ u u u u  R ấ t trong s á ng  Kh ô ng c ầ n ki ế n th ứ c PHP để s ử a khu ô n m ẫ u 2.2. 2.2. 2.2. 2.2. Nh Nh Nh Nh ượ ượ ượ ượ c c c c đ đ đ đ i i i i ể ể ể ể m m m m  Ch ậ m h ơ n, b ạ n c ầ n ph â n t á ch t ậ p tin khu ô n m ẫ u, sau đó xu ấ t ra  Vi ệ c hi ệ n th ự c ph ứ c t ạ p h ơ n 15. 15. 15. 15. 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 C ó nhi ề u ng ườ i c ứ d ù ng m ã i c á c m ã v à th ư vi ệ n l ỗ i th ờ i. Th í d ụ nh ư h ọ đã vi ế t m ộ t h à m d ù ng ở PHP 2, v à v ẫ n c ò n d ù ng n ó ở PHP 4, m ặ c d ù m ộ t h à m c ó c ù ng m ụ c đí ch nh ư th ế đã đượ c th ê m v à o ở PHP 3 D ù ng c á c c ấ u tr ú c l ỗ i th ờ i c ó th ể l à m ch ậ m ch ươ ng tr ì nh c ủ a b ạ n, c ũ ng nh ư l à m cho n ó tr ở n ê n kh ó hi ể u. Ng ườ i đọ c c á c ch ươ ng tr ì nh c ủ a b ạ n c ó th ể kh ô ng quen v ớ i c á c h à m l ỗ i th ờ i c ủ a PHP. Tuy nhi ê n, khi ph á t hi ệ n m ộ t đ o ạ n m ã l ạ c h ậ u, b ạ n đừ ng ngh ĩ r ằ ng c ầ n ph ả i thay th ế n ó . Ch ỉ c ầ n ch ắ c ch ắ n r ằ ng b ạ n s ẽ kh ô ng d ù ng n ó cho c á c ch ươ ng tr ì nh vi ế t trong t ươ ng lai. M ộ t th í d ụ v ề c ấ u tr ú c l ỗ i th ờ i, m à nhi ề u ng ườ i c ó v ẻ c ố n ắ m l ấ y, l à c ú ph á p beginControlStructure beginControlStructure beginControlStructure beginControlStructure ... while. * * * * if((sql_num_rows($truyvan)<= if((sql_num_rows($truyvan)<= if((sql_num_rows($truyvan)<= if((sql_num_rows($truyvan)<= 0) 0) 0) 0) { { { { Print Print Print Print Error Error Error Error }: }: }: }: o đế m s ố d ò ng trong t ậ p k ế t qu ả . o N ế u nh ỏ h ơ n hay b ằ ng 0, in th ô ng b á o l ỗ i. o N ế u kh ô ng, ti ế p t ụ c. Bi ể u th ứ c n à o d ể hi ể u h ơ n? R õ r à ng l à c á ch đế m s ẽ tr ự c ti ế p v à g ọ n g à ng h ơ n. S ự kh á c bi ệ t th ự c t ế l à g ì ? V ớ i m ộ t l ệ nh if đơ n gi ả n, ch ú ng ta kh ô ng thu đượ c l ợ i nh ề u. Tuy nhi ê n, v ớ i h ơ n 10 000 d ò ng l ệ nh, h ã y d à nh th ờ i gian ngh ĩ đế n c á ch r õ r à ng nh ấ t, n ó s ẽ ti ế t ki ệ m cho ng ườ i ph â n t í ch ch ươ ng tr ì nh nhi ề u gi ờ suy ngh ĩ a. L ợ i í ch kh á c c ó th ể k ể đế n l à ch ươ ng tr ì nh c ủ a b ạ n s ẽ nhanh h ơ n v à d ễ ph á t tri ể n h ơ n. 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 10 10 10 10 Dormitory 204.B5 18:20 PM April 7, 2006 PH Ầ N 2 – L Ỗ I NGHI Ê M TR Ọ NG             14. 14. 14. 14. Kh Kh Kh Kh ô ô ô ô ng ng ng ng tu tu tu tu â â â â n n n n th th th th ủ ủ ủ ủ c c c c á á á á c c c c quy quy quy quy ướ ướ ướ ướ c c c c đặ đặ đặ đặ t t t t t t t t ê ê ê ê n n n n M ộ t trong nh ữ ng l ỗ i nghi ê m tr ọ ng m à ng ườ i l ậ p tr ì nh c ó th ể ph ạ m ph ả i l à đị nh ngh ĩ a m ộ t quy ướ c đặ t t ê n t ồ i. T ô i đã ti ế p qu ả n nhi ề u d ự á n m à trong đó t ô i ph ả i b ỏ ra r ấ t nhi ề u th ờ i gi ờ ch ỉ để hi ể u ch ươ ng tr ì nh, do l ậ p tr ì nh vi ê n đặ t t ê n c á c bi ế n l à $fred v à $barney thay cho $email v à $name. T ô i đ ang đề c ậ p đế n m ộ t d ự á n m à ng ườ i l ậ p tr ì nh c ũ đã quy ế t đị nh đư a v à o to à n b ộ ch ươ ng tr ì nh m ộ t ki ể u đặ t t ê n k ì l ạ (a Flinstones naming theme), kh ô ng ph ả i t ô i đù a đâ u. C á ch b ạ n đặ t t ê n bi ế n v à h à m l à trung t â m c ủ a vi ệ c x â y d ự ng m ộ t ch ươ ng tr ì nh d ễ đọ c. C ó nhi ề u l ậ p tr ì nh vi ê n ph ạ m l ỗ i khi đặ t t ê n bi ế n v à h à m m à n ó :  qu á d à i ho ặ c qu á ng ắ n  kh ô ng li ê n quan đế n ng ữ c ả nh  kh ô ng để ý đế n c á ch-vi ế t-ph â n-bi ệ t (case sensitivity)  ng ă n c ả n kh ả n ă ng d ễ đọ c ( đặ c bi ệ t l à c á c h à m) 1. 1. 1. 1. Đặ Đặ Đặ Đặ t t t t t t t t ê ê ê ê n n n n bi bi bi bi ế ế ế ế n n n n 1.1. 1.1. 1.1. 1.1. C C C C á á á á ch ch ch ch vi vi vi vi ế ế ế ế t t t t ph ph ph ph â â â â n n n n bi bi bi bi ệ ệ ệ ệ t t t t Trong PHP, t ê n bi ế n c ó c á ch vi ế t ph â n bi ệ t, ngh ĩ a l à $user v à $User l à ho à n to à n kh á c nhau. V à i ng ườ i d ù ng l ợ i d ụ ng đ i ể m n à y để đặ t c á c bi ê n c ù ng t ê n nh ư ng kh á c c á ch vi ế t. Đâ y l à m ộ t th ó i quen t ồ i t ệ . C á ch vi ế t kh ô ng bao gi ờ n ê n d ù ng để ph â n bi ệ t c á c bi ế n kh á c nhau. M ỗ i t ê n bi ế n, trong c ù ng t ầ m v ự c (scope), n ê n c ó l à tuy ệ t đố i duy nh ấ t. 1.2. 1.2. 1.2. 1.2. T T T T ê ê ê ê n n n n qu qu qu qu á á á á ng ng ng ng ắ ắ ắ ắ n n n n Nhi ề u ng ườ i s ử d ụ ng nh ữ ng ch ữ vi ế t t ắ t đầ u (cryptic acronym) b í ẩ n cho c á c bi ế n c ủ a h ọ , để r ồ i sau n à y h ố i ti ế c v ì qu ê n m ấ t h ọ đã mu ố n á m ch ỉ đ i ề u g ì khi đó . T ê n bi ế n n ê n m ô t ả n ộ i dung n ó (s ẽ ) ch ứ a, d ù ng nguy ê n t ừ ho ặ c nh ữ ng ch ữ vi ế t t ắ t c ó th ể hi ể u đượ c . 1.3. 1.3. 1.3. 1.3. T T T T ê ê ê ê n n n n qu qu qu qu á á á á d d d d à à à à i i i i Ở kh í a c ạ nh kh á c, v à i ng ườ i l ạ i s ử d ụ ng t ê n bi ế n qu á d à i. N ó i chung, t ê n bi ế n kh ô ng n ê n d à i qu á hai t ừ . Hai t ừ c ó th ể đượ c t á ch bi ệ t b ằ ng d ấ u ph â n c á ch "_" ho ặ c l à vi ế t hoa ch ữ đầ u c ủ a t ừ th ứ hai. 1.4. 1.4. 1.4. 1.4. Th Th Th Th ó ó ó ó i i i i quen quen quen quen t t t t ố ố ố ố t t t t D ướ i đâ y l à nh ữ ng th í d ụ t ố t v ề t ê n bi ế n $username = 'phanthanhkieu' ; $password = 'bimat' ; $teachers = array ( 'Sadlon' , 'Lane' , 'Patterson' , 'Perry' , 'Sandler' , 'Mendick' , 'Zung' ); foreach ( $teachers as $teacher ); 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 ... while c ầ n thi ế t trong tr ườ ng h ợ p n à y v ì khi đó , b ộ đế m c ủ a CSDL đã t ă ng l ê n v à chuy ể n sang d ò ng k ế ti ế p . Do đó , b ạ n ph ả i x ử l í (l ệ nh do )d ò ng đầ u ti ê n v ì n ó đã đượ c l ấ y. C á c l ệ nh ti ế p theo l ấ y c á c d ò ng k ế , v à c ứ th ế . 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 14 14 14 14 Dormitory 204.B5 18:20 PM April 7, 2006 1.4. 1.4. 1.4. 1.4. Khi Khi Khi Khi m m m m à à à à DBMS DBMS DBMS DBMS c c c c ủ ủ ủ ủ a a a a b b b b ạ ạ ạ ạ n n n n kh kh kh kh ô ô ô ô ng ng ng ng h h h h ỗ ỗ ỗ ỗ tr tr tr tr ợ ợ ợ ợ sql_num_row() sql_num_row() sql_num_row() sql_num_row() V à i DBMS c ó th ể kh ô ng h ỗ tr ợ h à m sql_num_row(). T ô i xin chia s ẻ v ớ i b ạ n n ế u DBMS c ủ a b ạ n l à m ộ t trong s ố đó . B ạ n s ẽ ph ả i t ì m trong k ế t qu ả r ỗ ng b ằ ng c á ch l ấ y d ò ng. Tuy nhi ê n, trong tr ườ ng h ợ p n à y, n ó n ê n d ù ng m ộ t bi ế n boolean nh ư sau: <?php $timthay = false ; while ( $mautin = sql_fetch_array ( $truyvan )){ $timthay = true ; } if (! $timthay ){ print "Loi!" ; } ?> 1.5. 1.5. 1.5. 1.5. L L L L ấ ấ ấ ấ y y y y k k k k ế ế ế ế t t t t qu qu qu qu ả ả ả ả : : : : h h h h ã ã ã ã y y y y ch ch ch ch ọ ọ ọ ọ n n n n c c c c á á á á ch ch ch ch c c c c ó ó ó ó í í í í ch ch ch ch V ấ n đề th ứ hai trong đ o ạ n m ã n à y l à n ó d ù ng sql_fetch_row() để l ấ y t ậ p k ế t qu ả . H à m sql_fetch_row() ch ỉ tr ả v ề m ả ng đá nh ch ỉ s ố , trong khi đó sql_fetch_array() tr ả v ề m ả ng đá nh ch ỉ s ố v à m ả ng d ù ng chu ỗ i. $mautin = sql_fetch_array ( $truyvan ); print $mautin [ 1 ]; // Cot thu 2 print $mautin [ name ]; // Ten cot Ch Ch Ch Ch ú ú ú ú ý ý ý ý : : : : C ó nhi ề u quy ướ c kh á c nhau v ề vi ệ c d ù ng d ấ u nh á y khi th ê m m ộ t đố i s ố ki ể u chu ỗ i. Trong th í d ụ v ề t ê n c ộ t ở tr ê n, v à su ố t b à i vi ế t n à y, n ó s ẽ đượ c b ỏ . T ừ quan đ i ể m c ủ a nh à ph á t tri ể n, h à m n à o c ó l ợ i h ơ n? M ả ng d ù ng chu ỗ i gi ú p cho ng ườ i đọ c hi ể u đượ c b ạ n đ ang l ấ y c á i g ì ch ỉ th ô ng qua vi ệ c đọ c m ã , nh ư th í d ụ đú ng d ướ i đâ y: <?php if ( sql_num_rows ( $truyvan )<= 0 ) { print "Mot loi da xay ra: Khong co mau tin nao!" ; exit; } while ( $mautin = sql_fetch_array ( $truyvan )) { print "$mautin[name]: $mautin[phone_number]\n<br>\n" ; } ?> 1.6. 1.6. 1.6. 1.6. Khi Khi Khi Khi n n n n à à à à o o o o sql_fetch_row($truyvan) sql_fetch_row($truyvan) sql_fetch_row($truyvan) sql_fetch_row($truyvan) n n n n ê ê ê ê n n n n đượ đượ đượ đượ c c c c d d d d ù ù ù ù ng ng ng ng T ô i kh ô ng th ự c s ự l à fan c ủ a the sql_fetch_row(). Tuy nhi ê n, c ó m ộ t t ì nh hu ố ng m à d ù ng n ó kh ô ng gi ả m kh ả n ă ng d ễ đọ c: khi ng ườ i d ù ng đị nh ngh ĩ a c â u truy v ấ n. C á c th í d ụ cho đế n l ú c n à y đề u đề c ậ p đế n nh ữ ng c â u truy v ấ n đượ c bi ế t tr ướ c. Đô i khi b ạ n để cho ng ườ i d ù ng t ự đị nh ngh ĩ a c â u truy v ấ n. Tr ườ ng h ợ p n à y b ạ n s ẽ kh ô ng bi ế t c á c c ộ t trong k ế t qu ả . Do đó , d ù ng h à m sql_fetch_row() k è m v ớ i count() s ẽ x ử l í hi ệ u qu ả c á c c ộ t trong m ộ t h à ng: <?php for ( $i = 0 ; $i < count ( $mautin ); $i ++){ print "Column" . ( $i + 1 ). $mautin [ $i ]. "\n<BR>\n" ; } ?> 2. 2. 2. 2. D D D D ù ù ù ù ng ng ng ng sai sai sai sai SQL: SQL: SQL: SQL: kh kh kh kh ô ô ô ô ng ng ng ng l l l l ấ ấ ấ ấ y y y y nh nh nh nh ữ ữ ữ ữ ng ng ng ng g g g g ì ì ì ì b b b b ạ ạ ạ ạ n n n n c c c c ầ ầ ầ ầ n n n n 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 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 ...

Ngày tải lên: 17/09/2012, 10:48

27 1.5K 1
Đề 21 trắc nghiệm Vật Lý

Đề 21 trắc nghiệm Vật Lý

... BGD&ĐT Trang 3/5 - Mã đề thi 21 VẬT LÝ 12 THI THỬ ĐẠI HỌC (ĐỀ SỐ 21) biên soạn giảng dạy thầy : TRỊNH VĂN THÀNH ; DD 0974236501 mail :hondacodon_bkhn@yahoo.com DAP AN DE 21 1A 2C 3C 4A 5A 6A 7C ... dựa trên cấu trúc đề thi đại học năm 2009 của BGD&ĐT Trang 1/5 - Mã đề thi 21 VẬT LÝ 12 THI THỬ ĐẠI HỌC (ĐỀ SỐ 21) biên soạn giảng dạy thầy : TRỊNH VĂN THÀNH ; DD 0974236501 mail :hondacodon_bkhn@yahoo.com ... dựa trên cấu trúc đề thi đại học năm 2009 của BGD&ĐT Trang 5/5 - Mã đề thi 21 VẬT LÝ 12 THI THỬ ĐẠI HỌC (ĐỀ SỐ 21) biên soạn giảng dạy thầy : TRỊNH VĂN THÀNH ; DD 0974236501 mail :hondacodon_bkhn@yahoo.com...

Ngày tải lên: 19/09/2012, 10:57

5 725 4
Cambridge.University.Press.Neuroethics.Challenges.for.the.21st.Century.Aug.2007.pdf

Cambridge.University.Press.Neuroethics.Challenges.for.the.21st.Century.Aug.2007.pdf

... challenges, they also present us with opportunities: since the challenges they pose are often new versions of old challenges, they present us with the opportunity to revisit these challenges, and ... are blind to change are relatively rare (we have mechanisms specially attuned to detecting external changes; we are change blind only when these mechanisms are fooled). Nevertheless, change blindness ... imposed unity of the agent. The drug-addicted agent might genuinely desire to give up his drug, but because he cannot extend his will across time and across all the relevant subagents which con- stitute...

Ngày tải lên: 21/09/2012, 10:58

361 1.1K 2
Glycoprotein methods protocols - biotechnology 048-9-211-216.pdf

Glycoprotein methods protocols - biotechnology 048-9-211-216.pdf

... Amerongen, A. V. (1997) Sulfated glycans on oral mucin as receptors for Helicobacter pylori. Glycobiology 7, 737–743. 216 Harrison and Packer 5. Hooper, L. V., Manzella, S. M., and Baenziger, ... to determine, the molar amount of the mucin is usually unknown. However, if we generalize and estimate an average molecular weight of 1 MDalton, then 10–100 µg of mucin should be hydrolyzed in ... saline!), as well as sul- fate-phosphate-containing detergents (e.g., sodium dodecyl sulfate), chaotropes (e.g., thiourea), and reducing agents (e.g., mercaptoethanol). Ideally, desalting into...

Ngày tải lên: 23/09/2012, 19:26

6 372 0
Glycoprotein methods protocols - biotechnology 048-9-219-226.pdf

Glycoprotein methods protocols - biotechnology 048-9-219-226.pdf

... consist of only one cell type, which can be an advantage. Study of the colon has the advantage that the sequence of changes during carcino- genesis in the colonic epithelial cells has been documented ... passaged (trypsinised) and split 1:4 and the medium is changed every 2 to 3 d. LS174T cells are split 1:2 and the medium changed daily. 10. The three cell lines LS174T, Caco-2 and A431, together ... detailed in chapters 20 and 21. In addition, the PC/AA cell lines produce only MUC 1 and MUC2 at early passage, but at later passage and in later premalignant and malignant stages, they show de novo...

Ngày tải lên: 23/09/2012, 19:26

8 364 0
Một số giải pháp nhằm hoàn thiện công tác quản lý tiền lương và lao động tại Công ty hoá chất 21.docx

Một số giải pháp nhằm hoàn thiện công tác quản lý tiền lương và lao động tại Công ty hoá chất 21.docx

... Công ty hoá chất 21 III. THỰC TRẠNG QUẢN LÝ LAO ĐỘNG VÀ TIỀN LƯƠNG TẠI CÔNG TY 1. Tình hình quản lý lao động tại Công ty 1.1. Cơ cấu lao động Trong những năm qua Công ty hoá chất 21 luôn chú trọng ... lao động và tiền lương tại Công ty hoá chất 21 Chương 3: Giải pháp nhằm hoàn thiện công tác quản lý lao động và tiền lương tại Công ty hoá chất 21 2 Hệ số cấp bậc công việc bình quân là: 2,39 Tpv: ... AD-1 Kg 0,26054 0,2248 4 0,0145 0, 0212 2 Kip nổ vỏ nhôm Cái 0,01835 0,016 0,0010 3 0,0015 3 Kíp đốt vỏ đồng ,, 0,02086 0,016 0,00116 0,0017 4 Kíp điện ,, 0,11 821 0,102 0,0065 8 0,0096 3 5 Kíp vi...

Ngày tải lên: 28/09/2012, 16:36

84 812 7
Mẫu bìa báo cáo 21

Mẫu bìa báo cáo 21

Ngày tải lên: 01/10/2012, 16:12

2 2.5K 22
Kiểm soát chất lượng quy trình sản xuất của công ty hoá chất 21.docx

Kiểm soát chất lượng quy trình sản xuất của công ty hoá chất 21.docx

... động người 1882 216 2 218 4 2213 2379 2394 Nam người 1194 1270 1274 1265 1374 1354 Nữ người 688 892 910 948 1023 1040 Tuổi bình quân tuổi 37 37 37 36 36 36 Lao động gián tiếp người 215 224 228 231 ... Tên : Nguyễn Trí Dũng Chức Vụ : Phó Giám Đốc Tel : 0210 865055 Fax : 0210 8650 2. Lịch sử hình thành và phát triển của công ty Công ty hoá chất 21 là một Doanh Nghiệp Nhà Nước trực thuộc Tổng cục ... TY 1.Thông tin chung về Công ty - Tên Công Ty : Công ty hoá chất 21 - Tên Tiếng Anh : Chemical company N21 - Tên Giao Dịch : Chemical company N21 - Hình thức pháp lý : Doanh Nghiệp Nhà Nước - Ngành nghề...

Ngày tải lên: 02/10/2012, 15:51

27 2.1K 6
Phân tích chiến lược cấp công ty của vinamilk - Xây dựng ma trận BCG và GE.doc

Phân tích chiến lược cấp công ty của vinamilk - Xây dựng ma trận BCG và GE.doc

... phẩm, tích cực marketing để đưa SBU trở thành ngôi sao và tương lai là con bò sữa. 3. Ma trận GE: Minh họa ma trận sự hấp dẫn ngành của SBU I. Sữa lỏng Các yếu tố Tầm quan trọng Điểm số Giá ... trưởng và thị phần: - Thị phần các sản phẩm chính Vinamilk % Dutch lady % TPTĐ TĐTT % Sữa Đặc 79 21 3.76 38 Sữa Lỏng 35 37 0.95 16 Sữa Chua 97 1 10 Sữa Bột 16 20 0.8 14 6 N h ó m 7 Group 7 3. ... biệt Lợi thế về chi phí 0.1 3 0.3 Danh tiếng, uy tín 0.5 5 2.5 Năng lực phân phối 0.1 4 0.4 Tổng 1 21 4.55 Các yếu tố Tầm quan trọng Điểm số Giá trị Qui mô thị trường 0.2 4 0.8 Tăng trưởng thị trường...

Ngày tải lên: 04/10/2012, 12:01

15 14.2K 109
Xem thêm

Bạn có muốn tìm thêm với từ khóa:

w