Thứ Ba, 22 tháng 12, 2009

Tổng hợp giáo trình đa phương tiện (Multimedia Book) của ĐH KHTN

Tin học văn phòng ( 1DVD - 6CD)
1.MBooK Tin Học Văn Phòng A ĐHTN
http://www.mediafire.com/?sharekey=5...e52114cbfb8e8d
2.MbooK Tin Học Văn Phòng B ĐHTN
http://www.mediafire.com/?sharekey=5...e09fe88a9b8f89
3.MBooK Ôn Thi Chứng Chỉ A ĐHTN
http://www.mediafire.com/?sharekey=f...1fecb126083d7a
4.MBooK Ôn Thi Trình Độ B Microsoft Access ĐHTN
http://www.mediafire.com/?sharekey=f...f9b2ff6284d0b1
5.MBooK Ôn Thi Trình Độ B Photoshop ĐHTN
http://www.mediafire.com/?sharekey=f...790cdb2c34b62e
6.MBooK Ôn Thi Trình Độ B Corel - Illustrator ĐHTN
http://www.mediafire.com/?sharekey=f...6af4c083a88099
Ngành Đồ Họa.
1.MBooK Thiết Kế Đồ Họa Ứng Dụng - HPII_ĐHTN
a) Mỹ Thuật cơ bản
http://www.mediafire.com/?zqfeeemlyyk
http://www.mediafire.com/?mzwxzh5mwpd
http://www.mediafire.com/?2jnlvyyanjv
http://www.mediafire.com/?vjpswzy8tbl
http://www.mediafire.com/?yzudamdogbz
http://www.mediafire.com/?hpxbzwpkysg
b) Xử lý ảnh với PS CB
http://dohoa.dyndns.org/mbook/PhotoshopCB.rar
Mirror:
http://www.mediafire.com/?yzi6fdl0f2d
http://www.mediafire.com/?mgb0yqjozfs
http://www.mediafire.com/?l2zxwhzwii0
http://www.mediafire.com/?sktgbkxslbo
http://www.mediafire.com/?mhzighvucso
http://www.mediafire.com/?dmgbbzvmomn
c) Thiết kế mẫu với CorelDraw
http://dohoa.dyndns.org/mbook/Corel.rar
http://www.mediafire.com/?sharekey=5...e358eb79571f46
d) Ý tưởng thiết kế
http://www.mediafire.com/?umcnmlxaj6v
http://www.mediafire.com/?bfyimpnvvaz
http://www.mediafire.com/?nyb6noxobay
http://www.mediafire.com/?20auwwcmomt
http://www.mediafire.com/?aj2emrdulul
http://www.mediafire.com/?phzwl3zwmq8
http://www.mediafire.com/?cdlewlwmeeb
2.MBooK Thiết Kế Đồ Họa Ứng Dụng - HPIII_ĐHTN
a) Xu.ly.anh.voi.PS.NC
http://dohoa.dyndns.org/mbook/PhotoshopNC.rar
Mirror:
http://www.mediafire.com/?liim2yxzn2z
http://www.mediafire.com/?aw6m12zwsyt
http://www.mediafire.com/?lma7ixfnmv2
http://www.mediafire.com/?lztmvjr0czj
http://www.mediafire.com/?ad2jmfecem7
http://www.mediafire.com/?jmdohhfnwmk
http://www.mediafire.com/?sw1sk1tzpws
http://www.mediafire.com/?bet29to4dyg
http://www.mediafire.com/?dpdt8b1so2m
b) Dan.trang.voi.InDesign
http://dohoa.dyndns.org/mbook/InDesign.rar
Mirror:
http://www.mediafire.com/?nolvd4dezmz
http://www.mediafire.com/?vybvi0nbena
http://www.mediafire.com/?b9wk2bxwmbw
http://www.mediafire.com/?nwpl1ymbmgq
http://www.mediafire.com/?kubkudouzbk
http://www.mediafire.com/?iyxmuwplgbu
http://www.mediafire.com/?lmmubnvod2s
http://www.mediafire.com/?1o3lbh00gyb
http://www.mediafire.com/?ttbmvao509y
http://www.mediafire.com/?medogrpmbnw
http://www.mediafire.com/?xv51d5ycjj0
c) Mbook.Illustrator
http://dohoa.dyndns.org/mbook/Illustrator.rar
Mirror:
http://www.mediafire.com/?xyadbspxiad
http://www.mediafire.com/?vexoxxsslam
http://www.mediafire.com/?tmcbbmwjbci
http://www.mediafire.com/?zjz4xo1yboy
http://www.mediafire.com/?g7kne2ztbzf
http://www.mediafire.com/?0nm0sdvmxob
http://www.mediafire.com/?oyl44fngwbv
http://www.mediafire.com/?m1za0duirtb
http://www.mediafire.com/?aymbm2wmey5
http://www.mediafire.com/?lgnxpbzwcqi
http://www.mediafire.com/?3kzfwcezyng
http://www.mediafire.com/?abmmircign3
http://www.mediafire.com/?bblmvzzgvkb
http://www.mediafire.com/?2gtjsnx2kaj d) My.thuat.ung.dung
http://www.mediafire.com/?kjehpbtdzzm
http://www.mediafire.com/?uxybbhbm89t
http://www.mediafire.com/?vwzs0wmg67m
http://www.mediafire.com/?cf2pkz3dwbr
http://www.mediafire.com/?zb2fbe4erwl
http://www.mediafire.com/?omrghvcv7ko
3.MBooK Thiết kế Web - HP4 ĐHTN
a) Adobe Photoshop
http://www.mediafire.com/?sharekey=6...e6ba49b5870170
Size: 1.34GB
b) Dreamweaver
http://www.mediafire.com/?sharekey=6...3d2a850a683956
Size: 1.4GB
c) My thuat Web
http://www.mediafire.com/?sharekey=d...60bd0c23d37af0
Size: 494MB
d) Macromedia Flash
http://www.mediafire.com/?sharekey=6...3d2a850a683956
Size: 1.36GB
4.MBooK 3D Phim HP5_ĐHTN
a) Hoat.hinh.3D
http://www.mediafire.com/?sharekey=5...797a71b22f7a54
b) Hiệu ứng phim với AffterEffect
http://dohoa.dyndns.org/mbook/AffterEffect.rar
http://www.mediafire.com/?sharekey=5...8dc52afdc7838c
c) Ky.thuat.in
http://www.mediafire.com/?sharekey=5...c36a10527c752f
5.MBook Xử lý phim Premiere
http://mega.1280.com/folder/5NYRHS/
Ngành Lập trình ( 1DVD )
1.MBooK Lập Trình Ứng Dụng Quản Lý ĐHTN
http://www.mediafire.com/?zrmmm1ryzvq
http://www.mediafire.com/?fb1ljmzzm2h
http://www.mediafire.com/?ivxcvxeeoyl
http://www.mediafire.com/?2lqhymdztvy
http://www.mediafire.com/?ddbe2hnnv06
2.MBooK Kỹ Thuật Lập Trình VB.net 2CD ĐHTN
http://www.mediafire.com/?tcuyddz1nii
http://www.mediafire.com/?gxrcxjmmvmo
http://www.mediafire.com/?9tbxkhot1ln
http://www.mediafire.com/?jmxisccq994
http://www.mediafire.com/?inyjc1pzixh
http://www.mediafire.com/?x0s4agtptmn
http://www.mediafire.com/?loxzoc0tpmt
3.MBooK Lập Trình Ứng Dụng Web 2CD HP4_ĐHTN
a)LT ASP.net
http://www.mediafire.com/?sharekey=4...549f895af58f48
b)LT javascript
http://www.mediafire.com/?sharekey=5...c0eaa3649262a8
4.MBook Hệ Quản Trị Cơ Sở Dữ Liệu SQL Sever HP5_ĐHTN
http://www.mediafire.com/?sharekey=5...9fc3e6d137a988
5.MBook Đồ Án Thực Tế Phân Tích Hệ Thống HP5_ĐHTN
http://www.mediafire.com/?ldll6dxnjy9
http://www.mediafire.com/?mdgntyoyrhh
Ngành mạng máy tính( 1DVD )
1.MBooK Bài tập Lắp ráp cài đặt Máy Tính - HPII (Video_ĐHTN)
CD1
http://www.mediafire.com/?dywddq9hy1i
http://www.mediafire.com/?d4mwmxynznl
http://www.mediafire.com/?omxvjqx2s49
http://www.mediafire.com/?glomticywcz
CD2
http://www.mediafire.com/?xc9uuby0nly
http://www.mediafire.com/?ncd4mvny1zr
http://www.mediafire.com/?d2mwxnwmxdp
http://www.mediafire.com/?icez9gojl94
http://www.mediafire.com/?nvtwydnzwjh
2.MBooK Bài tập Quản Trị Mạng Windows Server - HPIII (Video_ĐHTN)
http://www.mediafire.com/?1o9cnn9bfbt
http://www.mediafire.com/?davidgmmhel
http://www.mediafire.com/?xdxzjyv3bmj
http://www.mediafire.com/?mnm41ndjdi4
3.MBooK Quản Trị Mạng Linux 2CD - HPIV (Video_ĐHTN)
CD1
http://www.mediafire.com/?3zlzmvwwszz
http://www.mediafire.com/?x1wbx1zjlmh
http://www.mediafire.com/?z2moy9hy09n
http://www.mediafire.com/?folsokbk12l
CD2
http://www.mediafire.com/?3bwwjz2zics
http://www.mediafire.com/?fsmywezuyv9
http://www.mediafire.com/?w0om0tl0z1x
4.MBooK Bài tập Triển Khai Hệ Thống Mạng 2CD - HPV (Video_ĐHTN)
CD1
http://www.mediafire.com/?u2ejmj1jdzl
http://www.mediafire.com/?0ynohttgdcz
http://www.mediafire.com/?2lefj3mtewy
http://www.mediafire.com/?0ahssjes2hz
http://www.mediafire.com/?1exqmwcyzgd
CD2
http://www.mediafire.com/?huemmo7fzo0
Ngành công nghệ web
1.MBooK Thiết Kế Web - HP2 ( 1CD - video minh họa)giống với HP4 bên ngành đồ họa
1 DVD gồm các đĩa 2,3,4,5 :
2.MBooK Quản Trị Dịch Vụ Mạng - HP3 (Video_ĐHTN)
http://www.mediafire.com/?0deulyy2by6
http://www.mediafire.com/?modboou37vs 3.MBooK Nhập Môn Lập Trình Web - HP4 (Video_ĐHTN)
http://www.mediafire.com/?bdxyh7qsmcp
http://www.mediafire.com/?iiox5epyosz
http://www.mediafire.com/?5ynllljwsmx
4.MBook Kỹ Thuật Lập Trình Web - HP4 (Video_ĐHTN)
http://www.mediafire.com/?slda0hx2lgm
http://www.mediafire.com/?04kmhgmohwd
http://www.mediafire.com/?kt0mnnodpdm
5.MBook Lập Trình Ứng Dụng Quản lý Trên Web - HP5 (Video_ĐHTN)
http://www.mediafire.com/?sharekey=6...45e7d8ee8aef8d
PassUnrar: softprovn.net

Thứ Hai, 21 tháng 12, 2009

Tổng hợp giáo trình đa phương tiện (Multimedia Book) của ĐH KHTN

Tin học văn phòng ( 1DVD - 6CD)
1.MBooK Tin Học Văn Phòng A ĐHTN
http://www.mediafire.com/?sharekey=5...e52114cbfb8e8d
2.MbooK Tin Học Văn Phòng B ĐHTN
http://www.mediafire.com/?sharekey=5...e09fe88a9b8f89
3.MBooK Ôn Thi Chứng Chỉ A ĐHTN
http://www.mediafire.com/?sharekey=f...1fecb126083d7a
4.MBooK Ôn Thi Trình Độ B Microsoft Access ĐHTN
http://www.mediafire.com/?sharekey=f...f9b2ff6284d0b1
5.MBooK Ôn Thi Trình Độ B Photoshop ĐHTN
http://www.mediafire.com/?sharekey=f...790cdb2c34b62e
6.MBooK Ôn Thi Trình Độ B Corel - Illustrator ĐHTN
http://www.mediafire.com/?sharekey=f...6af4c083a88099
Ngành Đồ Họa.
1.MBooK Thiết Kế Đồ Họa Ứng Dụng - HPII_ĐHTN
a) Mỹ Thuật cơ bản
http://www.mediafire.com/?zqfeeemlyyk
http://www.mediafire.com/?mzwxzh5mwpd
http://www.mediafire.com/?2jnlvyyanjv
http://www.mediafire.com/?vjpswzy8tbl
http://www.mediafire.com/?yzudamdogbz
http://www.mediafire.com/?hpxbzwpkysg
b) Xử lý ảnh với PS CB
http://dohoa.dyndns.org/mbook/PhotoshopCB.rar
Mirror:
http://www.mediafire.com/?yzi6fdl0f2d
http://www.mediafire.com/?mgb0yqjozfs
http://www.mediafire.com/?l2zxwhzwii0
http://www.mediafire.com/?sktgbkxslbo
http://www.mediafire.com/?mhzighvucso
http://www.mediafire.com/?dmgbbzvmomn
c) Thiết kế mẫu với CorelDraw
http://dohoa.dyndns.org/mbook/Corel.rar
http://www.mediafire.com/?sharekey=5...e358eb79571f46
d) Ý tưởng thiết kế
http://www.mediafire.com/?umcnmlxaj6v
http://www.mediafire.com/?bfyimpnvvaz
http://www.mediafire.com/?nyb6noxobay
http://www.mediafire.com/?20auwwcmomt
http://www.mediafire.com/?aj2emrdulul
http://www.mediafire.com/?phzwl3zwmq8
http://www.mediafire.com/?cdlewlwmeeb
2.MBooK Thiết Kế Đồ Họa Ứng Dụng - HPIII_ĐHTN
a) Xu.ly.anh.voi.PS.NC
http://dohoa.dyndns.org/mbook/PhotoshopNC.rar
Mirror:
http://www.mediafire.com/?liim2yxzn2z
http://www.mediafire.com/?aw6m12zwsyt
http://www.mediafire.com/?lma7ixfnmv2
http://www.mediafire.com/?lztmvjr0czj
http://www.mediafire.com/?ad2jmfecem7
http://www.mediafire.com/?jmdohhfnwmk
http://www.mediafire.com/?sw1sk1tzpws
http://www.mediafire.com/?bet29to4dyg
http://www.mediafire.com/?dpdt8b1so2m
b) Dan.trang.voi.InDesign
http://dohoa.dyndns.org/mbook/InDesign.rar
Mirror:
http://www.mediafire.com/?nolvd4dezmz
http://www.mediafire.com/?vybvi0nbena
http://www.mediafire.com/?b9wk2bxwmbw
http://www.mediafire.com/?nwpl1ymbmgq
http://www.mediafire.com/?kubkudouzbk
http://www.mediafire.com/?iyxmuwplgbu
http://www.mediafire.com/?lmmubnvod2s
http://www.mediafire.com/?1o3lbh00gyb
http://www.mediafire.com/?ttbmvao509y
http://www.mediafire.com/?medogrpmbnw
http://www.mediafire.com/?xv51d5ycjj0
c) Mbook.Illustrator
http://dohoa.dyndns.org/mbook/Illustrator.rar
Mirror:
http://www.mediafire.com/?xyadbspxiad
http://www.mediafire.com/?vexoxxsslam
http://www.mediafire.com/?tmcbbmwjbci
http://www.mediafire.com/?zjz4xo1yboy
http://www.mediafire.com/?g7kne2ztbzf
http://www.mediafire.com/?0nm0sdvmxob
http://www.mediafire.com/?oyl44fngwbv
http://www.mediafire.com/?m1za0duirtb
http://www.mediafire.com/?aymbm2wmey5
http://www.mediafire.com/?lgnxpbzwcqi
http://www.mediafire.com/?3kzfwcezyng
http://www.mediafire.com/?abmmircign3
http://www.mediafire.com/?bblmvzzgvkb
http://www.mediafire.com/?2gtjsnx2kaj d) My.thuat.ung.dung
http://www.mediafire.com/?kjehpbtdzzm
http://www.mediafire.com/?uxybbhbm89t
http://www.mediafire.com/?vwzs0wmg67m
http://www.mediafire.com/?cf2pkz3dwbr
http://www.mediafire.com/?zb2fbe4erwl
http://www.mediafire.com/?omrghvcv7ko
3.MBooK Thiết kế Web - HP4 ĐHTN
a) Adobe Photoshop
http://www.mediafire.com/?sharekey=6...e6ba49b5870170
Size: 1.34GB
b) Dreamweaver
http://www.mediafire.com/?sharekey=6...3d2a850a683956
Size: 1.4GB
c) My thuat Web
http://www.mediafire.com/?sharekey=d...60bd0c23d37af0
Size: 494MB
d) Macromedia Flash
http://www.mediafire.com/?sharekey=6...3d2a850a683956
Size: 1.36GB
4.MBooK 3D Phim HP5_ĐHTN
a) Hoat.hinh.3D
http://www.mediafire.com/?sharekey=5...797a71b22f7a54
b) Hiệu ứng phim với AffterEffect
http://dohoa.dyndns.org/mbook/AffterEffect.rar
http://www.mediafire.com/?sharekey=5...8dc52afdc7838c
c) Ky.thuat.in
http://www.mediafire.com/?sharekey=5...c36a10527c752f
5.MBook Xử lý phim Premiere
http://mega.1280.com/folder/5NYRHS/
Ngành Lập trình ( 1DVD )
1.MBooK Lập Trình Ứng Dụng Quản Lý ĐHTN
http://www.mediafire.com/?zrmmm1ryzvq
http://www.mediafire.com/?fb1ljmzzm2h
http://www.mediafire.com/?ivxcvxeeoyl
http://www.mediafire.com/?2lqhymdztvy
http://www.mediafire.com/?ddbe2hnnv06
2.MBooK Kỹ Thuật Lập Trình VB.net 2CD ĐHTN
http://www.mediafire.com/?tcuyddz1nii
http://www.mediafire.com/?gxrcxjmmvmo
http://www.mediafire.com/?9tbxkhot1ln
http://www.mediafire.com/?jmxisccq994
http://www.mediafire.com/?inyjc1pzixh
http://www.mediafire.com/?x0s4agtptmn
http://www.mediafire.com/?loxzoc0tpmt
3.MBooK Lập Trình Ứng Dụng Web 2CD HP4_ĐHTN
a)LT ASP.net
http://www.mediafire.com/?sharekey=4...549f895af58f48
b)LT javascript
http://www.mediafire.com/?sharekey=5...c0eaa3649262a8
4.MBook Hệ Quản Trị Cơ Sở Dữ Liệu SQL Sever HP5_ĐHTN
http://www.mediafire.com/?sharekey=5...9fc3e6d137a988
5.MBook Đồ Án Thực Tế Phân Tích Hệ Thống HP5_ĐHTN
http://www.mediafire.com/?ldll6dxnjy9
http://www.mediafire.com/?mdgntyoyrhh
Ngành mạng máy tính( 1DVD )
1.MBooK Bài tập Lắp ráp cài đặt Máy Tính - HPII (Video_ĐHTN)
CD1
http://www.mediafire.com/?dywddq9hy1i
http://www.mediafire.com/?d4mwmxynznl
http://www.mediafire.com/?omxvjqx2s49
http://www.mediafire.com/?glomticywcz
CD2
http://www.mediafire.com/?xc9uuby0nly
http://www.mediafire.com/?ncd4mvny1zr
http://www.mediafire.com/?d2mwxnwmxdp
http://www.mediafire.com/?icez9gojl94
http://www.mediafire.com/?nvtwydnzwjh
2.MBooK Bài tập Quản Trị Mạng Windows Server - HPIII (Video_ĐHTN)
http://www.mediafire.com/?1o9cnn9bfbt
http://www.mediafire.com/?davidgmmhel
http://www.mediafire.com/?xdxzjyv3bmj
http://www.mediafire.com/?mnm41ndjdi4
3.MBooK Quản Trị Mạng Linux 2CD - HPIV (Video_ĐHTN)
CD1
http://www.mediafire.com/?3zlzmvwwszz
http://www.mediafire.com/?x1wbx1zjlmh
http://www.mediafire.com/?z2moy9hy09n
http://www.mediafire.com/?folsokbk12l
CD2
http://www.mediafire.com/?3bwwjz2zics
http://www.mediafire.com/?fsmywezuyv9
http://www.mediafire.com/?w0om0tl0z1x
4.MBooK Bài tập Triển Khai Hệ Thống Mạng 2CD - HPV (Video_ĐHTN)
CD1
http://www.mediafire.com/?u2ejmj1jdzl
http://www.mediafire.com/?0ynohttgdcz
http://www.mediafire.com/?2lefj3mtewy
http://www.mediafire.com/?0ahssjes2hz
http://www.mediafire.com/?1exqmwcyzgd
CD2
http://www.mediafire.com/?huemmo7fzo0
Ngành công nghệ web
1.MBooK Thiết Kế Web - HP2 ( 1CD - video minh họa)giống với HP4 bên ngành đồ họa
1 DVD gồm các đĩa 2,3,4,5 :
2.MBooK Quản Trị Dịch Vụ Mạng - HP3 (Video_ĐHTN)
http://www.mediafire.com/?0deulyy2by6
http://www.mediafire.com/?modboou37vs 3.MBooK Nhập Môn Lập Trình Web - HP4 (Video_ĐHTN)
http://www.mediafire.com/?bdxyh7qsmcp
http://www.mediafire.com/?iiox5epyosz
http://www.mediafire.com/?5ynllljwsmx
4.MBook Kỹ Thuật Lập Trình Web - HP4 (Video_ĐHTN)
http://www.mediafire.com/?slda0hx2lgm
http://www.mediafire.com/?04kmhgmohwd
http://www.mediafire.com/?kt0mnnodpdm
5.MBook Lập Trình Ứng Dụng Quản lý Trên Web - HP5 (Video_ĐHTN)
http://www.mediafire.com/?sharekey=6...45e7d8ee8aef8d
PassUnrar: softprovn.net

Cài đặt và cấu hình localhost với PHP 5.0, Mysql 5, Apache 2

Nguồn: KênhSinhViên.Net

Các phần mềm cần thiết:
• Microsoft Windows XP hoặc Windows 2000 (tôi chưa test trên Windows 98).
• Apache 2.0.x (tôi dùng Apache 2.0.50). Bạn có thể tải về phiên bản Apache 2.0.50 mới nhất cho Win32 ở địa chỉ

Code:

http://httpd.apache.org/



• PHP 5.0 (tôi sẽ cài PHP 5 như là một mô đun của Apache, theo cách mà người ta cài PHP cho các máy chủ). Bạn tải phiên bản PHP 5.0 bản chính thức tại



Code:




http://www.php.net/download



hoặc các bản phát triển tại



Code:




http://snaps.php.net



.

• MySQL 4.0 bản mới nhất có thể tải về từ



Code:




http://dev.mysql.com/get/Downloads/M...m/pick#mirrors



.

CÀI ĐẶT APACHE 2.0


Apache 2.0.x có trình cài đặt tự động và bạn sẽ không gặp nhiều khó khăn để cài đặt phần mềm máy chủ web này trên Windows. Ví dụ, để cài Apache 2.0.50, bạn chỉ việc tải về một file có tên apache_2.0.50-win32-x86-no_ssl.msi và chạy nó. Theo mặc định nó được cài đặt vào c:\Program Files\Apache Group\Apache2\. Tuy nhiên, để tiện việc quản lý máy chủ và các mô đun đi kèm, tôi cài nó vào c:\webserver\Apache2\. Bạn có thể tham khảo bài viết hướng dẫn trực quan bằng hình ảnh tại



Code:




http://www.opensourcevn.org/javavietnam



.

Sau khi cài đặt xong, bạn hãy tạm tắt Apache. Tuy nhiên, bạn có thể không cần làm việc này cho đến khi bạn sửa đổi file cấu hình của Apache ở dưới.


CÀI ĐẶT PHP 5.0


Hiện tại PHP 5 chưa có trình tự động cài đặt. Bạn tải về từ PHP.net file php-5.0.0-Win32.zip với dung lượng chừng 7.6 MB. Giải nén file này vào thư mục mà bạn chọn. Để tiện quản lý, tôi giải nén vào c:\webserver\php5.


Sau khi giải nén, bạn sẽ thấy PHP 5 có một cấu trúc thư mục khác hẳn với PHP 4. Lý do là PHP đã được viết lại gần như toàn bộ để có được những cải thiện về tính năng và tốc độ. Tuy nhiên, bạn không cần phải lo lắng, tất cả những gì bạn cần làm sau khi giải nén là tìm đến tệp tin php.ini-recommended và thực hiện các bước sau:


- Chép nó vào thư mục Apache đã nói đến ở trên và đổi tên nó thành php.ini (c:\webserver\Apache2\php.ini).


- Dùng trình soạn thảo văn bản thuần túy như NotePad hay EditPlus để mở file này.


- Tìm đến dòng


extension_dir ='./'


và thay nó bằng


extension_dir ='c:\webserver\php5\ext'


- Tìm đến dòng


; extension=php_mysql.dll


và bỏ dấu ';' ở đầu dòng (áp dụng khi bạn cần dùng các hàm PHP xử lý dữ liệu chứa trong MySQL).


Ngay từ khi phiên bản PHP 5.0 Beta ra mắt lần đầu tiên, các nhà phát triển đã thông báo là nó được thiết lập mặc định không làm việc với MySQL vì trong bộ cài PHP 5.0 đã có chứa SQLite, một hệ quản trị CSDL nhúng, chạy cực nhanh, đủ tính năng để dùng cho doanh nghiệp nhỏ. Ngoài ra, lý do chủ yếu là vấn đề giấy phép GPL. Tuy nhiên, nếu cần đến một hệ quản trị CSDL cao cấp hơn như MySQL thì PHP 5 cho phép bạn cấu hình lại để sẵn sàng làm việc. Nếu không chú ý đến điều này, bạn có thể sẽ gặp phải lỗi như sau:


Fatal error: Call to undefined function mysql_connect() in c:\webserver\webroot\text\textpattern\lib\txplib_d b.


php on line 15


- Cũng trong file php.ini này, bạn tìm đến dòng


;session.save_path


và điều chỉnh nó thành


session.save_path = 'c:\webserver\php5\tmp'


(tùy theo thư mục mà bạn cài đặt PHP5).


- Kế tiếp, tìm đến dòng [mail function], bên dưới mấy dòng bạn sẽ thấy dòng


;sendmail_from


Hãy bỏ dấu ';' ở đầu dòng và thay đổi địa chỉ email theo ý bạn.


Ví dụ: localhost@phpvietnam.net


Cấu hình này sẽ được sử dụng đến khi bạn lập trình với hàm mail() trong PHP để gửi nhận mail với một máy chủ email cài sẵn như QK Server.


- Vào thư mục con ext trong thư mục PHP 5 (ví dụ, c:\webserver\php5\ext) và kiểm tra xem đã có file php_mysql.dll ở đó chưa. Đây là thư viện để PHP 5 xử lý các lệnh gọi hàm xử lý dữ liệu với MySQL. Nếu bạn tải về PHP 5.0 bản chính thức thì file này chắc chắn có ở đó. Nhưng nếu bạn dùng các bản PHP 5.0 đang được phát triển và xuất ra dưới dạng snapshot (



Code:




http://snaps.php.net



) thì file này có thể bị bỏ ra ngoài. Nếu vậy, bạn hãy tìm nó trong thư mục giải nén và chép nó vào thư mục con ext.

- Chép file libmysql.dll trong thư mục PHP 5 vào thư mục c:\Windows\system32 hoặc thư mục bin của Apache 2 (ví dụ, c:\webserver\Apache2\bin\). Nếu không thực hiện bước này, bạn có thể sẽ gặp lỗi 'can't load c:\webserver\php5\ext\php_mysql.dll'.


- Kế tiếp, hãy vào thư mục con conf của Apache và tìm đến file httpd.conf. Nếu cài Apache 2.0.x theo mặc định thì đường dẫn của nó là c:\Program Files\Apache Group\Apache2\conf\httpd.conf. Trong trường hợp của tôi, nó nằm ở c:\webserver\Apache2\conf\httpd.conf. Mở file này với trình soạn thảo văn bản thuần túy và tìm đến dòng


#LoadModule ssl_module modules/mod_ssl.so


Bạn bổ sung thêm hai dòng sau vào dưới dòng này:


LoadModule php5_module 'c:/webserver/php5/php5apache2.dll'


AddType application/x-httpd-php .php


Dòng LoadModule sẽ cho phép Apache nạp mô đun thư viện gọi PHP 5 thực hiện các tác vụ xử lý liên quan đến các file php. Bạn cần chú ý thay đổi đường dẫn file php5apache2.dll tùy theo trường hợp của bạn.


Bây giờ là lúc khởi động lại Apache 2. Nếu không có lỗi nào, ở khay hệ thống xuất hiện như hình 1.


CÀI ĐẶT MYSQL 4.0


Như vậy bạn đã cấu hình xong PHP 5.0 và Apache 2.0 để chúng chạy được cùng nhau. Bạn cũng đã cấu hình để các hàm của PHP 5.0 truy vấn được MySQL 4.0. Tuy nhiên bạn cần cài đặt thêm MySQL 4.0 để có đủ công cụ lập trình PHP 5. Việc cài đặt MySQL 4.0.20 khá đơn giản. Bạn chỉ việc tải về một file .zip. Giải nén và chạy file setup.exe. Phần mềm MySQL sẽ tự động cài đặt vào thư mục mặc định c:\mysql. Sau đó bạn vào thư mục c:\mysql\bin để chạy file winmysqladmin.exe.


Cửa sổ này cho phép bạn cung cấp tên/mật khẩu của người có toàn quyền quản trị MySQL Server. Thường thì cặp tên/mật khẩu này là root/localhost hoặc bạn cũng có thể để trắng mật khẩu theo mặc định. Sau khi nhập xong và ấn nút OK, cửa sổ này biến mất và trên khay hệ thống sẽ xuất hiện biểu tượng dịch vụ của MySQL Server .


Như vậy, bạn đã có MySQL Server chạy trên máy tính của mình và sẵn sàng xử lý các câu truy vấn.


KIỂM TRA KẾT QUẢ CÀI ĐẶT


Để kiểm tra lại công việc cài đặt, bạn thực hiện hai bước sau:


• Vào thư mục gốc phục vụ web của Apache 2 (Apache2\htdocs), và dùng trình soạn thảo văn bản thuần túy như Notepad để tạo ra một file có tên phpinfo.php với nội dung:


<?php


echo phpinfo();


?>


• Mở trình duyệt và gõ vào địa chỉ



Code:




http://localhost/phpinfo.php



. Bạn sẽ thấy hiện ra toàn bộ cấu hình của PHP 5. Hãy bật cửa sổ của chương trình Apache Service Monitor

Hướng dẫn cài đặt IIS 6.0, tích hợp PHP 5, MySql 5.0 trong Win XP (Tiếng Việt)

Nguồn: KênhSinhViên.Net

Tôi đã cài đặt thành công PHP và MySql trên nền IIS 6.0 trong Windows XP, sau đây là bài viết chia sẻ kinh nghiệm. Xin hãy lưu ý rằng nếu bạn đang chạy localhost bản IIS 5.1 kèm theo đĩa CD cài đặt Windows thì điều đầu tiên cần làm ngay là google ngay từ khóa "Download Microsoft IIS 6.0 Manager" và vào website Microsoft để tải về và cài đặt phiên bản 6.0 (~4Mb). Nếu bạn đã cài IIS 5.1 và bây giờ cài tiếp IIS 6.0 thì cả hai phiên bản sẽ cùng tồn tại, bạn có thể vào"Control Panel -> Administrative Tools" để kiểm tra. (Tôi chưa dùng IIS 7 nên xin miễn bình luận về nó)
Ngoài ra hãy download 3 phần sau về :
+ Download PHP 5.2.3 ZIP File (~10 Mb):
Click Here to Download
+ Download MySQL 5.0 (~45 Mb): Click Here to Download
+Download MySQL 5.0 GUI Tools (~17Mb): MySql 5.0 GUI Tools (công cụ giúp bạn quản lý cơ sở dữ liệu)
CÀI ĐẶT IIS 6.0 MANAGER:
Uhm. Cài cái này thì rất dễ không có gì để nói. Tuy nhiên có một lưu ý : để IIS 6.0 Manager hoạt động được trên máy bạn, thì máy của bạn cần phải được cài sẵn IIS phiên bản 4 trở lên.
CÀI ĐẶT PHP:
Bước 1: Cấu hình IIS 6.0 trỏ đến thư mục cục bộ chứa các webfile của bạn (có thể đặt tại C:\Inetpub\wwwroot cũng được). Đừng quên tạo một file "index.htm" (hoặc index.html) làm trang chủ đặt tại thư mục gốc chứa web, trang này có thể chứa một số hình ảnh, sử dụng các font chữ nổi bật (cái này tùy bạn). Vậy là xong phần này, bây giờ bạn có thể bật Internet Explorer ra và gõ vào
http://127.0.0.1, bạn sẽ thấy nội dung file index.htm mà bạn đã tạo.
Bước 2: Tạo một thư mục mới trong ổ đĩa C đặt tên là “PHP” và giải nén toàn bộ file PHP mà bạn đã tải về ở trên (php-5.2.8-Win32.zip) vào thư mục này. Bạn sẽ thấy một loạt các file dll, bat, exe, reg, txt… và một số các thư mục con như "ext", "extras" và "dev" với các file ở trong đó. Vậy là tập tin bạn tải về hoạt động tốt.
Bước 3: Mở IIS6 Manager > nhấp phải vào Default Website -> Properties -> Select Home Directory -> nhấn Configuration. Trong cửa sổ Application Configuration mở ra, bạn kiểm tra xem trong list Application extentions (có các đuôi như *.asa, *.asp…) xem thử có dòng nào có đuôi *.php không. Nếu chưa có, click "Add" > trong cửa sổ tiếp theo, ô “executable” nhấn nút “Browse” duyệt đến thư mục “C:\PHP” và tìm file "php5isapi.dll" > Click "OK" để chọn. Sau đó nhập “.php” vào ô “extension”. Nhấn Ok > Ok > Ok để hoàn tất bước này.
Bước 4 : Tạo một file có phần mở rộng là *.php (ví dụ "phptest.php") tại thư mục gốc của webfolder. Nội dung file này như sau:


PHP Code:
<?PHP phpinfo(); ?>

Bước 5: Bạn copy file "php.ini-recommended" trong thư mục “C:\PHP” và dán vào thư mục C:\WINDOWS. Đổi tên file này thành "php.ini".
Bước 6: Khởi động lại máy tính.
Sau khi khởi động lại máy xong, bạn bật IE và gõ vào ô địa chỉ http://127.0.0.1/phptest.php" và enter, bạn sẽ thấy một trang web hiện ra với nội dung là các thông tin của phiên bản PHP.
Nếu bạn thấy các thông tin đó có nghĩa là bạn đã cài đặt thành công PHP!
CÀI ĐẶT MySQL:
Bước 1: Cài MySQL 5.0 bằng file bạn đã tải về ở trên. Các bước cơ bản như sau:
a. Chạy tập tin cài đặt, một cửa sổ chào mừng hiện lên, chọn Next.


b. Ở cửa sổ kế tiếp, nếu bạn là người chưa có kinh nghiệm, thì việc chọn kiểu cài đặt Typical là sự lựa chọn tốt. Tuy nhiên, theo kinh nghiệm có nhân của tôi (người dịch) thì bạn nên chọn chế độ Custom để có thể chỉ định cài đặt MySQL ở một phân vùng khác của ổ cứng (lý do là khi hệ thống có vấn đề, CSDL sẽ đỡ thất thoát hơn so với cài mặc định là ổ chứa hệ điều hành). Trong ví dụ chọn Typical, nhấn Next.


c. Nếu như đã sẵn sàng cho việc cài đặt, thì nhấn Install để xác nhận, chương trình sẽ cài tự động cho bạn.

d. Khi tiến trình cài xong hoàn tất, bạn chọn ngay Configure the MySQL Server nowFinish. Nếu lý do gì đó, bạn không cần chọn cấu hình ngay, mà có thể để khi khác.

để ta tiếp tục việc cấu hình cho MySQL. Nhấn
e. Nhấn Next tại cửa sổ chào mừng cấu hình MySQL.

f. Chưa có kinh nghiệm, hoặc không có như cầu gì cao, chọn Standard Configuration, nhưng nếu như cần thiết, chế độ Detail sẽ giúp bạn cấu hình với nhiều lựa chọn hơn.


g. Cửa sổ kế, bạn nên chọn như hình bên dưới, ngoài ra theo kinh nghiệm của tôi thì bạn chọn luôn phần Include Bin Directory in Windows PATH.


h. Tại cửa sổ xác nhận thông tin tài khoản quản trị toàn bộ CSDL này, bạn chọn như hình bên dưới. Về phần mật khẩu, bạn nhập vào mật khẩu mà mình muốn nhưng phải nhớ để sau này có thể sử dụng. Mặc định cho tài khoản quản trị MySQL luôn là root.


i. Ở bước cuối cùng, bạn hãy nhấn nút Execute để cho MySQL được truy xuất với những thiết lập của bạn.


j. Nếu sau khi nhấn Execute, bạn nhìn thấy hình như dưới đây, tức là bạn đã cài đặt thành công, nhấn Finish để hoàn tất việc cài đặt MySQL.


Còn nếu như nhận được thông báo lỗi Connection Error, chọn Retry để chương trình chạy lại! Sở dĩ, lỗi này xảy ra có thể là do máy tính quá chậm nên không đáp ứng được tốc độ đủ cho việc bắt đầu chạy MySQL.
Bước 2: Để quản lý CSDL MySQL thì ta có nhiều cách. Từ việc quản lý bằng dòng lệnh, phần mềm, … cho đến việc quản lý theo kiểu truy xuất web. Ở đây tôi khuyên bạn nên dùng MySQL 5.0 GUI Tools. Chương trình này sẽ cho phép bạn xem và quản lý cấu trúc cơ sở dữ liệu. Về cách cài đặt phần này thì không có gì đáng nói, hết sức đơn giản.
Bước 3: Mở MySQL Administrator. Điền vào ô “server host” là localhost, port là 3306, usernamelà root và password là mật khẩu của bạn đã đặt lúc cài đặt ở bước 1 . Click Ok. Trong bảng hiện ra bạn thấy câu “MySQL Server is running” có nghĩa là bạn đã thành công.
CẤU HÌNH ĐỂ PHP HOẠT ĐỘNG VỚI MySQL:
Bước 1: Copy file "libmysql.dll" trong thư mục “C:\PHP” vào thư mục C:\WINDOWS\SYSTEM32. Chắc chắn rằng bạn không ghi đè bất cứ file nào trong thư mục này. Nếu file này đã tồn tại thì bạn có thể bỏ qua bước này.
Bước 2: Sửa file "php.ini" mà bạn đã copy vào thư mục C:\WINDOWS bằng notepad hay một text editor nào đó.

Tìm dòng "extension_dir = *một lệnh gì đó*". (có thể là extension_dir = "./" ).

Và sửa thành : extension_dir="c:\php\ext"

Bước 3: Cũng trong file "php.ini" bạn bỏ ghi chú 2 dòng sau bằng cách loại bỏ dấu chấm phẩy (đầu dòng)

Tìm 2 dòng có :

extension=php_mysql.dll
và extension=php_mysqli.dll
(thường thì 2 dòng này nằm liên tiếp nhau).
Bước 4: Lưu lại file “php.ini” và khởi động lại máy.
Bước 5: Tôi đã cung cấp một tập lệnh PHP đơn giản để kiểm tra kết nối vào cơ sở dữ liệu MySQL. Sao chép nội dung code dưới đây và dán vào một tập tin gọi nó là ví dụ : "testmysql.php" và đặt nó vào thư mục gốc web thư mục (giống như "phptest.php")

PHP Code:
<?PHP
//remember to change the password to whatever you set 
//it to in mysql instance configuration 
//first parameter is server name, 2nd username 'root', 3rd is password
$rst = @mysql_connect("localhost", "root", "root");
if (!$rst) {
    echo ("<p>Unable to connect to database manager.</p>");
    die('Could not connect: ' . mysql_error());
    exit();
}
else {
    echo ("<p>Successfully Connected to MySQL Database Manager!</p>");
}
if (!@mysql_select_db("mysql")) {
    echo ("<p>Unable to connect database...</p>");
    exit();
}
else {
    echo ("<p>Successfully Connected to Database 'MYSQL'!</p>");
}
?>

Bước 6: Nếu bạn truy cập vào link: http://127.0.0.1/testmysql.php
và nó báo là "Successfully Connected to MySQL Database Manager!" và "Successfully Connected to Database 'MYSQL’ . Yeah. Điều này đồng nghĩa với bạn đã thành công, hãy thỏa sức lập trình PHP đi nào.

Thứ Năm, 10 tháng 12, 2009

(HAO)Một số hàm trong PHP

1. Khóa bảng ghi trong MySQL

<?php
// excuse the use of mysqli instead of mysql
$mysqli->query("LOCK TABLE t WRITE");
$results = $mysqli->query("SELECT id FROM t LIMIT 0,10");
$totalNumResults = array_pop($mysqli->query("SELECT FOUND_ROWS()")->fetch_row());
$mysqli->query("UNLOCK TABLES");
?>

2. Hàm Tổng số bảng ghi của table

<?php
function get_rows ($table) {
$temp = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM $table LIMIT 1");
$result = mysql_query("SELECT FOUND_ROWS()");
$total = mysql_fetch_row($result);
        return $total[0];
}
?>

3. Hàm mysql_fetch_row

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);
echo $row[0]; // 42
echo $row[1]; // the email value
?>

Thứ Năm, 3 tháng 12, 2009

Code JavaScript

JS Basic

JS HOME
JS Introduction
JS How To
JS Where To
JS Statements
JS Comments
JS Variables
JS Operators
JS Comparisons
JS If...Else
JS Switch
JS Popup Boxes
JS Functions
JS For Loop
JS While Loop
JS Break Loops
JS For...In
JS Events
JS Try...Catch
JS Throw
JS Special Text
JS Guidelines

JS Objects

JS Objects Intro
JS String
JS Date
JS Array
JS Boolean
JS Math
JS RegExp

JS Advanced

JS Browser
JS Cookies
JS Validation
JS Animation
JS Image Maps
JS Timing
JS Create Object
JS Summary

JS Examples

JS Examples
JS Object Examples
JS DOM Examples
JS Quiz
JS Exam

JS References

JavaScript Objects
HTML DOM Objects

Ajax login form

Bài này hướng dẫn các bạn viết 1 form login bằng Ajax. Mục tiêu không nhằm giới thiệu 1 ajax framework nào mà viết toàn bộ từ bước cơ bản nhất kỹ thuật Ajax để có thể hiểu sâu Ajax là gì.
1. Tạo form login

Code:

<body>
<!-- Include AJAX Framework -->
<script src="ajax/ajax_framework.js" language="javascript"></script>
<!-- Show Message for AJAX response -->
<div id="login_response"></div>
<div id="divForm">
<!-- Form: the action="javascript:login()"call the javascript function "login" into ajax_framework.js -->
<form action="javascript:login()" method="post">
<input name="email" type="text" id="emailLogin" value=""/>
<input name="psw" type="password" id="pswLogin" value=""/>
<input type="submit" name="Submit" value="Login"/>
</form>
</div>
</body>

Để ý thấy khi submit, ta dùng một JS function để khởi tạo lời gọi Ajax: login(). Bạn không tìm thấy đoạn JS cho login() ở đây vì tôi link với 1 file .js bên ngoài tên là ajax-framework.js.
2. Tạo file .js để viết code Ajax

Code:

/* ---------------------------- */
/* XMLHTTPRequest Enable */
/* ---------------------------- */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}else{
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
/* -------------------------- */
/* LOGIN */
/* -------------------------- */
/* Required: var nocache is a random number to add to request. This value solve an Internet Explorer cache issue */
var nocache = 0;
function login() {
// Optional: Show a waiting message in the layer with ID ajax_response
document.getElementById('login_response').innerHTML = "Loading..."
// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
var email = encodeURI(document.getElementById('emailLogin').value);
var psw = encodeURI(document.getElementById('pswLogin').value);
// Set te random number to add to URL request
nocache = Math.random();
// Pass the login variables like URL variable
http.open('get', 'login.php?email='+email+'&psw='+psw+'&nocache = '+nocache);
http.onreadystatechange = loginReply;
http.send(null);
}
function loginReply() {
if(http.readyState == 4){
var response = http.responseText;
alert(response);
if(response == '0'){
// if login fails
document.getElementById('login_response').innerHTML = 'Login failed! Verify user and password';
// else if login is ok show a message: "Welcome + the user name".
} else {
document.getElementById('login_response').innerHTML = 'Welcome '+response;
document.getElementById('divForm').style.display = 'none';
}
}
}

Tập trung vào hàm login(), công việc của chúng ta là lấy được dữ liệu nhậu của user thông qua JS, dùng document.getElementById() để tìm đúng textbox cần lấy giá trị.
Sau đó, ta tạo một chuỗi query string, có thêm một giá trị nocache là giá trị phát sinh random nhằm chống lại việc trình duyệt cache file login.php, không truyền về server.
Đối tượng http là một đối tượng XMLHTTPRequest, giúp ta gửi 1 request tới server, đối tượng này tạo ra bởi hàm CreateObject().
Đoạn lệnh mock up này giúp chúng ta biết khi nào nhận được kết quả từ server thì sẽ gọi tiếp hàm loginReply() để xử lý.
http.onreadystatechange = loginReply;
Sau khi đã đặt thông tin hàm xử lý (gọi là hàm CallBack) thì http.send() sẽ gửi thông tin cần xử lý tới server. Ở đây, chúng ta gửi tới 1 file chuyên xử lý lời gọi Ajax là login.php

3. Tạo file xử lý lời gọi Ajax
File login.php

Code:

<?php
if(isset($_GET['email']) && isset($_GET['psw'])){
$email = $_GET['email'];
$psw = $_GET['psw'];
if ($email=='hung5s@yahoo.com' && $psw == '123')
echo $email;
else
echo '0';
}
?>

Bạn thấy rằng việc xử lý này cốt trả về một giá trị (hãy coi nó như 1 hàm trả về giá trị) nên ta chỉ trả về giá trị qua lệnh echo và giá trị đó phải dễ xử lý như là 0 hay $email.
Tiếp theo, function loginReply() xử lý giá trị trả về để hiển thị kết quả.
Bài viết chỉ tới đây để đơn giản cho các bạn thử nghiệm. Reply tiếp theo sẽ phân tích sâu hơn bản chất của Ajax và về đối tượng XMLHttpRequest.

---

Viết tiếp ví dụ Ajax login form để chúng ta có khái niệm rõ hơn về một buzz word nổi đình nổi đám 2 năm nay clip_image001[14]
AJAX, viết tắt của Asynchronous JavaScript and XML có nghĩa là kỹ thuật lập trình xử dụng JavaScript làm ngôn ngữ, XML làm công cụ gửi nhận dữ liệu và cơ chế hoạt động gửi nhận dữ liệu là Không đồng bộ (Asynchronous).
Rứa thì chúng ta thấy rằng trong đống Ajax này chả có gì là PHP clip_image001[15]... hợp lý.
Trên thực tế, kỹ thuật lập trình này được sử dụng nhiều trước khi có 1 tên chuẩn AJAX. Bản chất nó đơn giản là để giải quếyt bài toán sau:
Tôi có 1 web page và một chức năng xử lý (vd là login) cần thực hiện ở server vì lý dó liên quan tới những resource ở server (như là database về user). Tuy nhiên, tôi lại không muốn user phải submit nguyên 1 trang web chỉ để xử lý 1 chức năng nho nhỏ trên trang đó. Vậy, tôi phải làm sao để:
1. Lấy được thông tin cần gửi về server, nhào nặn nó thế nào đó trước khi gửi (vd kiểm tra coi nó có nhập đầy đủ, đúng format,...)
2. Gửi đống thông tin cần xử lý về server mà không submit webpage
3. Nhận lại kết quả của server một cách âm thầm vì không biết lúc nào server mới trả kết quả về
4. Hiển thị kết quả đó trên webpage cho user.
Bạn thấy rằng có 1 đống việc phải làm trên webpage trong khi nó đang nằm ở browser của người dùng. Vậy thì chỉ có 1 cách để làm: Code bằng JavaScript (trước khi IE hay FireFox kịp nghĩ ra cái gì gì script khác nữa cho browser trong tương lai clip_image001[16]).
Có công cụ để viết lệnh, vấn đề tiếp theo là định dạng dữ liệu cần truyền là gì. Đương nhiên tới nay XML là "ngon" nhất cho những dữ liệu phức tạp. Còn dữ liệu đơn giản (như ví dụ login này) thì chỉ cần text là được.
Vấn đề cuối cùng: 1 đối tựơng JavaScript mà trình duyệt cung cấp để gửi yêu cầu về server mà không phải submit page. Công cụ này cũng phải biết được quá trình xử lý ở server là gì, lúc nào xong để còn cho biết mà tiếp tục xử lý result nhận được. Công cụ ta dùng ở đây là XmlHttpRequest.
Hãy xem lại đoạn code CreateObject() trong file .js ở trên. Vấn đề hơi rối rắm với anh nông dân chảnh choẹ Microsoft là anh này nhà quê mà hơi khác người, không dùng XmlHttpRequest của JS mà chơi 1 ActiveX có tên là Microsoft.XMLHTTP. Do vậy mà ai muốn dùng Ajax trên cả FireFox, IE thì đều phải có đoạn code CreateObject() ở trên.
Như vậy ta có đối tượng chuyên chở (The Transporter) như sau: http = CreateObject();
Tiếp theo là vấn đề gửi data lên server. Chuyện làm sao lấy data ra khỏi mấy cái textbox, ta không bàn ở đây vì nó rối cả bài Ajax lên.
Xem 3 lệnh sau:

Code:

http.open('get', 'login.php?email='+email+'&psw='+psw+'&nocache = '+nocache);
http.onreadystatechange = loginReply;
http.send(null);

1. Ta chuẩn bị gửi dữ liệu lên server qua lệnh open. Chú ý là đây chỉ là chuẩn bị, chưa gửi đi.
2. Ta phải chỉ ra hàm callback sẽ xử lý kết quả trả về
3. Thực sự bắt đầu việc gửi data và chờ nhận kết quả
Một khi đã gửi, bạn nên biết là hàm callback 'loginReply' sẽ bị gọi liên tục vô số lần cho tới khi nào kết quả đc server trả về cho webpage. Trong vô số lần bị gọi này, chỉ có 1 lần cần xử lý là khi dữ liệu đã về tới webpage. Ta tìm ra lần này dựa vào giá trị State của anh chàng transpoter:
http.readyState == 4  <<< xem hàm loginReply()
Cuối cùng, khi đã có dữ liệu, ta lấy nó ra qua thuộc tính responseText hoặc responseXML.
response = http.responseText;
Chú ý là kết quả trả về là toàn bộ nội dung 1 webpage, ở đây là nội dung của trang login.php. Vì thế bạn phải kiểm tra trang này để nội dung trả về như mong muốn. Cẩn thận với những đoạn code nằm ngoài <?php ?> vì nó sẽ bị trả về cho hàm CallBack luôn.
Cuối cùng, đã có dữ liệu trả về, ta xử lý và hiển thị kết quả. Đoạn code xử lý trong ví dụ dùng một kỹ thuật DHTML (hay JS + CSS) để dấu đi cái form login và hiện ra chữ welcome ...

Send data dùng POST

Trong ví dụ trên, nếu bạn để ý thì http.open dùng phương thức GET để gửi data về server. Đương nhiên webpage hoạt động "thầm lặng" nên bạn không bị lộ password trên thanh address bar. Nhưng nếu dùng 1 tool để tracing các HTTP request (FireFox có cung cấp) thì chắc chắn sẽ thấy.
Nhu cầu khác cần gửi data bằng Post là giả sử cái form của ta chứa một textarea cho phép user nhập vào 1 văn bản dài vô thiên ủng. GET không kham nổi data qúa dài nên ta phải dùng post.
Đây là đoạn code modify lại để dùng POST khi send data:

Code:

http.open('post', 'login.php?nocache = '+nocache);
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;charset=UTF-8;');
http.onreadystatechange = loginReply;
http.send('email='+email+'&psw='+psw);

Tôi vẫn để nocache trên query string vì browser căn cứ vào URL chứ không phải data để cache và xử lý request của user.
Chú ý là nếu muốn test, bạn phải vào sửa trang login.php thay _GET bằng _POST.

xin bổ sung cái readyState ở trên. Tại lúc đầu t đọc k hiểu cái readyState tại sao lại = 4 nên search google, cho kết quả như sau
State       Description
0   The request is not initialized
1   The request has been set up
2   The request has been sent
3   The request is in process
4   The request is complete

Tăng tốc độ xử lý CSDL MySQL

Quy tắc 1: Giảm thiểu sự kết nối tới MySQL Server.
Khi kết nối tới CSDL MySQL, chúng ta có 2 hàm kết nối là mysql_connect() và mysql_pconnect(). Về cơ bản thì hai hàm này có các tham số y hệt nhau, nhưng nội hàm của chúng có những khác biệt đáng kể.
Theo lý thuyết, mỗi lần gọi hàm mysql_connect(), hệ thống sẽ khởi tạo một kết nối mới tới CSDL, còn khi sử dụng hàm mysql_pconnect(), hệ thống sẽ tận dụng kết nối đã được thiết lập trước đó.
Nếu trang Web của chúng ta được triệu gọi nhiều lần trong một khoảng thời gian ngắn, hàm mysql_connect() sẽ tiêu tốn một lượng đáng kể tài nguyên của hệ thống để thiết lập kết nối. Vì vậy, hãy cố gắng sử dụng hàm kết nối mysql_pconnect().

Quy tắc 2: Thiết lập các trường index và cố gắng truy vấn dữ liệu thông qua các điều kiện xác lập trên chỉ số.
Nếu các bạn học qua cấu trúc dữ liệu và giải thuật, hẳn chúng ta cũng phải nhớ đến các giải thuật tìm kiếm nhanh. Chúng ta đã đúc kết được rằng giải thuật tìm kiếm là nhanh nhất với cách tìm dựa trên bảng băm hoặc trên mảng đã sắp xếp (với thuật toán tìm kiếm nhị phân nổi tiếng). Các trường được thiết lập ở dạng index sẽ được sắp xếp trên một file riêng, khi chúng ta truy vấn dữ liệu thông qua các trường index, các giải thuật tìm kiếm sẽ phát huy tính hiệu quả tối đa của nó, đặc biệt là các trường index dạng số.
Vì vậy, hãy cố gắng thiết kế các truy vấn cũng như CSDL sao cho tối ưu nhất dựa trên nguyên tắc chỉ số này.

Quy tắc 3: Chấp nhận dư thừa dữ liệu
Một thiết kế dữ liệu theo dạng chuẩn 4 có thể rất đẹp mắt, nhưng khi truy vấn dữ liệu, chúng ta sẽ phải "xới tung" nhiều bảng quan hệ có khi chỉ để lấy ra một record. Ngày xưa, khi giá thành ổ cứng cao ngất ngểu, dung lượng ổ cứng bé tẹo nên các cụ phải thiết kế dữ liệu ở dạng "tiêu chuẩn cao" nhằm giảm dung lượng lưu trữ, nhưng ngày nay, dung lượng lưu trữ không còn là vấn đề đáng lo lắng, vì vậy trong một số trường hợp, hãy chịu khó hi sinh tính đẹp đẽ của chuẩn 4 để tăng tốc độ truy vấn. Nên nhớ rằng truy vấn trên một bảng sẽ nhanh hơn rất nhiều lần khi truy vấn trên nhiều bảng quan hệ.

 

Quy tắc 4: Chỉ lấy đúng và đủ dữ liệu cần thiết
Nhiều người thường thích truy vấn dạng "Select *...". Dấu * ở đây sẽ bắt hệ thống làm việc mệt nhọc hơn vì phải xử lý nhiều dữ liệu hơn. Dữ liệu trả về cũng tiêu tốn nhiều bộ nhớ hơn. Vì vậy, thay vì select *, hãy chỉ select những trường cần thiết.
Một vấn đề nữa là khi sử dụng hàm mysql_fetch_array, nhiều người thường bỏ qua các tham số tuỳ chọn. Nếu có thể, hãy sử dụng tham số MYSQL_ASSOC, khi đó hệ thống sẽ trả về một mảng với chỉ số là tên trường, như vậy các bạn sẽ dễ hình dung và đỡ tốn bộ nhớ vì phải phát sinh thêm một mảng với chỉ số dạng số.

 

Quy tắc 5: Giải phóng bộ nhớ ngay sau khi sử dụng xong
Theo mặc định thì PHP sẽ giải phóng bộ nhớ sau khi chạy xong toàn bộ chương trình, nhưng với một cỗ máy chủ già nua cũ kỹ với hàng trăm lượt truy cập một lúc thì 1 KB bộ nhớ cũng là một tài nguyên cực kỳ quý giá. Vậy tại sao chúng ta không giải phóng bộ nhớ cho những thứ không dùng đến?
Sau khi thực hiện các truy vấn và thực hiện xong các phép tính toán với các bản ghi lấy được, hãy chịu khó nhét cái function mysql_free_result() vào ngay nhé.

Thứ Tư, 11 tháng 11, 2009

Căn bản về JavaScript

 

JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ này được dùng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng. Nó vốn được phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript. Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java. .js là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript.
Phiên bản mới nhất của JavaScript là phiên bản 1.5, tương ứng với ECMA-262 bản 3. ECMAScript là phiên bản chuẩn hóa của JavaScript. Trình duyệt Mozilla phiên bản 1.8 beta 1 có hỗ trợ không đầy đủ cho E4X - phần mở rộng cho JavaScript hỗ trợ làm việc với XML, được chuẩn hóa trong ECMA-357.

Java, JavaScript và JScript
Cùng thời điểm Netscape bắt đầu sử dụng công nghệ Java trên trình duyệt Netscape, LiveScript đã được đổi tên thành JavaScript để được chú ý hơn bởi ngôn ngữ lập trình Java lúc đó đang được coi là một hiện tượng. JavaScript được bổ sung vào trình duyệt Netscape bắt đầu từ phiên bản 2.0b3 của trình duyệt này vào tháng 12 năm 1995. Trên thực tế, hai ngôn ngữ lập trình Java và JavaScript không có liên quan gì đến nhau, ngoại trừ việc cú pháp của cả hai ngôn ngữ cùng được phát triển dựa trên cú pháp của C. Java Script gồm 2 mảng là client-server thực hiện lệnh trên máy của end-user và web-server.
Sau thành công của JavaScript, Microsoft bắt đầu phát triển JScript, một ngôn ngữ có cùng ứng dụng và tương thích với JavaScript. JScript được bổ sung vào trình duyệt Internet Explorer bắt đầu từ Internet Explorer phiên bản 3.0 được phát hành tháng 8 năm 1996.
DOM (Document Object Model), một khái niệm thường được nhắc đến với JavaScript trên thực tế không phải là một phần của chuẩn ECMAScript, DOM là một chuẩn riêng biệt có liên quan chặt chẽ với XML.
Ứng dụng
JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu với cú pháp phát triển từ C. Giống như C, JavaScript có khái niệm từ khóa, do đó, JavaScript gần như không thể được mở rộng.
Cũng giống như C, JavaScript không có bộ xử lý xuất/nhập (input/output) riêng. Trong khi C sử dụng thư viện xuất/nhập chuẩn, JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện xuất/nhập.
Trên trình duyệt, rất nhiều trang web sử dụng JavaScript để thiết kế trang web động và một số hiệu ứng hình ảnh thông qua DOM. JavaScript được dùng để thực hiện một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập vào, tự động thay đổi hình ảnh,... Ở Việt Nam, JavaScript còn được ứng dụng để làm bộ gõ tiếng Việt giống như bộ gõ hiện đang sử dụng trên trang Wikipedia tiếng Việt. Tuy nhiên, mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo chuẩn W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt. Một số công nghệ nổi bật dòng JavaScript để tương tác với DOM bao gồm DHTML, Ajax và SPA.
Bên ngoài trình duyệt, JavaScript có thể được sử dụng trong tập tin PDF của Adobe Acrobat và Adobe Reader. Điều khiển Dashboard trên hệ điều hành Mac OS X phiên bản 10.4 cũng có sử dụng JavaScript. Công nghệ kịch bản linh động (active scripting) của Microsoft có hỗ trợ ngôn ngữ JScript làm một ngôn ngữ kịch bản dùng cho hệ điều hành. JScript .NET là một ngôn ngữ tương thích với CLI gần giống JScript nhưng có thêm nhiều tính năng lập trình hướng đối tượng.
Mỗi ứng dụng này đều cung cấp mô hình đối tượng riêng cho phép tương tác với môi trường chủ, với phần lõi là ngôn ngữ lập trình JavaScript gần như giống nhau.

Khoảng trắng
Dấu cách, tab và ký tự dòng mới sử dụng bên ngoài một chuỗi ký tự được gọi là khoảng trắng. Khác với C, khoảng trắng trong JavaScript có thể ảnh hưởng trực tiếp tới ý nghĩa của câu lệnh. Sử dụng phương pháp "tự động thêm dấu chấm phẩy", bất cứ một dòng JavaScript nào thích hợp sẽ được coi là một câu lệnh hợp lệ (giống như có dấu chấm phẩy trước ký tự dòng mới).
Tuy trong phần lớn trường hợp, dấu chấm phẩy trước khi kết thúc một dòng JavaScript là không cần thiết để đoạn mã nguồn hoạt động chính xác, lập trình viên nên sử dụng dấu chấm phẩy sau mỗi câu lệnh để đoạn mã nguồn dễ nhìn hơn. Ngoài ra, do đặc thù của JavaScript - chuyên dùng trên trang web, kích cỡ của đoạn mã nguồn là quan trọng, có một số phần mềm có thể làm giảm kích cỡ của đoạn mã nguồn JavaScript bằng cách bỏ đi những khoảng trắng không cần thiết, để những phần mềm này hoạt động chính xác, lập trình viên cần thêm dấu chấm phẩy vào cuối mỗi câu lệnh.
Chú giải
Cú pháp chú giải của JavaScript giống với C++. Lập trình viên có thể chú giải trên nhiều dòng bằng cách bao bọc chú giải với /* và */ hoặc sử dụng // để chú giải từ vị trí // đến hết dòng.
Biến
Trước khi sử dụng biến trong JavaScript, lập trình viên không nhất thiết phải khai báo biến. Có hai cách để định nghĩa biến trong JavaScript. Một là sử dụng cú pháp var để khai báo biến:

  1. <script language="JavaScript">

  2. var tên_biến;

  3. </script>

%3Cscript%20language%3D%22JavaScript%22%3E%0A%20%20%20%20var%20t%C3%AAn_bi%E1%BA%BFn%3B%0A%3C%2Fscript%3E

Ngoài ra, lập trình viên có thể chỉ việc gán cho biến một gía trị để sử dụng biến đó. Biến được định nghĩa ngoài tất cả các hàm hoặc được sử dụng mà không khai báo với cú pháp var sẽ được coi là biến toàn cục, những biến này có thể sử dụng trên toàn trang web. Biến được khai báo với var bên trong một hàm là biến cục bộ của hàm đó và chỉ có thể sử dụng được bên trong hàm đó.
Đối tượng
Kiểu của JavaScript được chia ra làm hai loại: kiểu cơ bản và đối tượng. Đối tượng trong JavaScript là một thực thể có tên xác định và có thuộc tính trỏ đến giá trị, hàm hoặc cũng có thể là một đối tượng khác. Có nghĩa là, đối tượng trong JavaScript là một mảng kết hợp (associative array) tương tự như mảng trong PHP hay từ điển trong Python, PostScript hoặc Smalltalk.
JavaScript có một số đối tượng định nghĩa sẵn, bao gồm mảng (Array), đối tượng đại số Bool (Boolean), đối tượng ngày tháng (Date), đối tượng hàm (Function), đối tượng toán học (Math), đối tượng số (Number), đối tượng đối tượng (Object), đối tượng biểu thức tìm kiếm (RegExp) và đối tượng chuỗi ký tự (String). Các đối tượng khác là đối tượng thuộc phần mềm chủ (phần mềm áp dụng JavaScript - thường là trình duyệt).
Bằng cách định nghĩa hàm khởi tạo, lập trình viên có thể tạo đối tượng. JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu do đó thừa kế diễn ra giữa các đối tượng, không phải giữa các lớp (JavaScript không hề có lớp). Đối tượng thừa kế thuộc tính từ các nguyên mẫu của chúng.
Lập trình viên có thể thêm hoặc xóa thuộc tính hoặc hàm trong đối tượng sau khi đối tượng đã được tạo. Để làm việc này cho tất cả các đối tượng được tạo từ cùng một hàm khởi tạo, lập trình viên có thể sử dụng thuộc tính prototype của hàm khởi tạo để truy cập đối tượng nguyên mẫu. Lập trình viên không nhất thiết phải tự xóa các đối tượng đã tạo, JavaScript tự động gom rác tất cả những biến không còn được dùng nữa.
Ví dụ:

</span><script language="JavaScript">

function samplePrototype() {

this.attribute1 = "someValue"; // thêm một thuộc tính cho đối tượng

this.attribute2 = 234; // thêm thuộc tính nữa cho đối tượng

this.function1 = testFunction; // thêm một hàm vào đối tượng

}

function testFunction() {

alert(this.attribute2); //hiển thị 234

}

var sampleObject = new samplePrototype; // khởi tạo một đối tượng

    sampleObject.function1(); // gọi hàm function1 của đối tượng sampleObject

    sampleObject.attribute3 = 123; // thêm một thuộc tính nữa cho đối tượng sampleObject

delete sampleObject.attribute1; // xóa bỏ 1 thuộc tính

delete sampleObject; // xóa bỏ đối tượng

</script><span class="javascript">

Cấu trúc dữ liệu
Một cấu trúc dữ liệu tiêu điểm là mảng (Array), mảng trong JavaScript là một bảng liên kết chỉ mục đến giá trị. Trong JavaScript, tất cả các đối tượng đều có thể liên kết chỉ mục đến giá trị, nhưng mảng là một đối tượng đặc biệt có thêm nhiều tính năng xử lý chỉ mục và dữ liệu đặc biệt (ví dụ: push, join, v.v.)
Mảng trong JavaScript có thuộc tính length. Thuộc tính length của JavaScript luôn luôn lớn hơn số chỉ mục lớn nhất trong mảng một đơn vị. Trong phần lớn ngôn ngữ lập trình, những thuộc tính có tính năng như length thường là thuộc tính chỉ đọc, tuy nhiên, với JavaScript, lập trình viên có thể thay đổi thuộc tính length. Bằng cách thay đổi thuộc tính length, lập trình viên có thể làm mảng lớn hơn hoặc nhỏ hơn (và xóa đi những chỉ mục lớn hơn hoặc bằng thuộc tính length mới).
Mảng trong JavaScript là mảng rải rác, có nghĩa là cho dù lập trình viên có một mảng như sau:

Quote:

<script language="JavaScript">
    var test = new Array();
    test[2] = 0;
    test[100] = 5;
</script>

Trong trường hợp này, dù mảng có đến chỉ mục mang số 100 thì mảng cũng chỉ chiếm bộ nhớ của hai số 0 và 5. Tuy nhiên, thuộc tính length sẽ có giá trị 101 do chỉ mục lớn nhất của mảng trong ví dụ trên là 100.
Một số ví dụ về mảng:

Quote:

<script language="JavaScript">
    var test = new Array(10); // Tạo một mảng 10 chỉ mục
    var test2 = new Array(0,1,2,,3); // Tạo một mảng với bốn giá trị và 5 chỉ mục
    var test3 = new Array();
    test3["1"] = 123; // Hoàn toàn đúng cú pháp
</script>

Lập trình viên cũng có thể định nghĩa cấu trúc bằng đối tượng như sau:

Quote:

<script language="JavaScript">
    var myStructure = {
        name: {
            first: "Mel",
            last: "Smith"
        },
        age: 33,
        hobbies: [ "chess", "jogging" ]
    };
</script>

Cú pháp định nghĩa cấu trúc bằng đối tượng trên có một chuẩn trên danh nghĩa là JSON.

Cấu trúc điều khiển

Rẽ nhánh theo điều kiện với if ... else
Cú pháp if ... else dùng trong trường hợp muốn rẽ nhánh theo điều kiện. Cú pháp này tương đương với nếu x thì làm y, còn nếu không thì làm z. Các câu lệnh if ... else có thể lồng trong nhau.
Cú pháp:
<script language="JavaScript">
    if (biểu_thức_1)
    {
        khối lệnh được thực hiện nếu biểu thức 1 đúng;
    }
    else if (biểu_thức_2)
    {
        khối lệnh được thực hiện nếu biểu thức 2 đúng;
    }
    else
    {
        khối lệnh được thực hiện nếu cả hai biểu thức trên đều không đúng;
    }
</script>
Ví dụ:

Quote:

<script language="JavaScript">
    var x = prompt("Nhập vào giá trị của x:");
    x = parseFloat(x);
    if (!isNaN(x)) {
        if (x > 0)
        {
            alert("x > 0");
        }
        else if (x == 0)
        {
            alert("x = 0");
        }
        else
        {
            alert("x < 0");
        }
    }
    else
    {
        alert("giá trị bạn nhập không phải là một số");
    }
</script>

Đoạn mã nguồn trên mở một hộp thoại yêu cầu nhập vào một giá trị số, sau đó hiển thị thông báo số đó lớn hơn 0, bằng 0 hay nhỏ hơn 0.
Toán tử điều kiện
Toán từ điều kiện còn được biết đến với tên gọi toán tử tam phân. Cú pháp của toán tử này như sau:

Quote:

<script language="JavaScript">
    điều_kiện ? biểu_thức_đúng : biểu_thức_sai;
</script>

Toán tử này sẽ trả lại giá trị là kết quả của biểu_thức_đúng nếu
điều_kiện có giá trị bool bằng true, ngược lại nó sẽ trả lại giá trị
bằng biểu_thức_sai.
Vòng lặp while
Vòng lặp
while có mục đích lặp đi lặp lại một khối lệnh nhất định cho đến khi
biểu thức điều kiện trả về false. Khi dùng vòng lặp while phải chú ý
tạo lối thoát cho vòng lặp (làm cho biểu thức điều kiện có giá trị
false), nếu không đoạn mã nguồn sẽ rơi vào vòng lặp vô hạn, là một lỗi
lập trình. Vòng lặp while thường được dùng khi lập trình viên không
biết chính xác cần lặp bao nhiêu lần. Cú pháp của vòng lặp while như
sau:

Quote:

<script language="JavaScript">
    while (biểu_thức_điều_kiện) {
        khối lệnh cần thực hiện nếu biểu_thức_điều_kiện trả về true;
    }
</script>

Vòng lặp do ... while
Về cơ bản, vòng lặp do ... while gần như giống hệt như vòng lặp while. Tuy nhiên, trong trường hợp biểu thức điều kiện trả về false ngay từ đầu, khối lệnh trong vòng lặp while sẽ không bao giờ được thực hiện, trong khi đó, vòng lặp do ... while luôn đảm bảo khối lệnh trong vòng lặp được thực hiện ít nhất một lần. Ví dụ:

Quote:

<script language="JavaScript">
    while (0 > 1)
    {
        alert("while"); // Câu lệnh này sẽ không bao giờ được thực hiện
    }
    do
    {
        alert("do ... while"); // Bạn sẽ nhận được thông báo do ... while một lần duy nhất
    } while (0 > 1);
</script>

Cú pháp của vòng lặp do ... while như sau:

Quote:

<script language="JavaScript">
    do
    {
        khối lệnh;
    } while (biểu_thức_điều_kiện);
</script>

Vòng lặp for
Vòng lặp for thường được sử dụng khi cần lặp một khối lệnh mà lập trình viên biết trước sẽ cần lặp bao nhiêu lần. Cú pháp của vòng lặp for như sau:

Quote:

<script language="JavaScript">
    for (biểu_thức_khởi_tạo; biểu_thức_điều_kiện; biểu_thức_thay_đổi_giá_trị)
    {
        Khối lệnh cần lặp;
    }
</script>

Khi bắt đầu vòng lặp for, lập trình viên cần khởi tạo một biến nhất định bằng biểu_thức_khởi_tạo để dùng trong biểu_thức_điều_kiện, nếu biểu_thức_điều_kiện trả về true, khối lệnh cần lặp sẽ được thực hiện, sau khi thực hiện xong khối lệnh cần lặp, biểu_thức_thay_đổi_giá_trị sẽ được thực hiện, tiếp theo, biểu_thức_điều_kiện sẽ lại được kiểm tra, cứ như vậy cho đến khi biểu_thức_điều_kiện trả về false, khi đó vòng lặp sẽ kết thúc.
Vòng lặp for ... in
Vòng lặp for ... in dùng để lặp qua tất cả các thuộc tính của một đối tượng (hay lặp qua tất cả các phần tử của một mảng). Cú pháp của vòng lặp này như sau:

Quote:

<script language="JavaScript">
    for (biến in đối_tượng)
    {
        khối lệnh cần thực hiện, có thể sử dụng đối_tượng[biến] để truy cập từng thuộc tính (phần tử) của đối tượng;
    }
</script>

Cú pháp switch
Cú pháp switch cũng là cú pháp điều kiện như if ... else hay toán tử tam phân. Tuy nhiên, cú pháp switch thường được dùng khi chỉ cần so sánh bằng với số lượng kết quả cần kiểm tra lớn. Cách sử dụng cú pháp switch:

Quote:

<script language="JavaScript">
    switch (biểu_thức_điều_kiện)
    {
        case kết_quả_1 :
            khối lệnh cần thực hiện néu biểu_thức_điều_kiện bằng kết_quả_1;
            break;
        case kết_quả_2 :
            khối lệnh cần thực hiện néu biểu_thức_điều_kiện bằng kết_quả_2;
            break;
        default :
            khối lệnh cần thực hiện nếu biểu_thức_điều_kiện cho ra một kết quả khác;
    }
</script>

Sau mỗi khối lệnh trong một mục kiểm tra kết quả (trừ mục default), lập trình viên cần phải thêm vào break.

Hàm trong JavaScript

Hàm là một khối các câu lệnh với một danh sách một hoặc nhiều đối số (có thể không có đối số) và thường có tên (mặc dù trong JavaScript hàm không nhất thiết phải có tên). Hàm có thể trả lại một giá trị. Cú pháp của hàm như sau:

Quote:

<script language="JavaScript">
    function tên_hàm(đối_số_1, đối_số_2)
    {
        các câu lệnh cần thực hiện mỗi khi hàm được gọi;
        return giá_trị_cần_trả_về;
    }
    tên_hàm(1, 2); // Gọi hàm tên_hàm với hai đối số 1 và 2 ứng với đối_số_1 và đối_số_2
    tên_hàm(1); // Gọi hàm tên_hàm với đối_số_1 có giá trị 1, đối_số_2 có giá trị undefined
</script>

Trong JavaScript, khi gọi hàm không nhất thiết phải gọi hàm với cùng số đối số như khi định nghĩa hàm, nếu số đối số ít hơn khi định nghĩa hàm, những đối số không được chuyển cho hàm sẽ mang giá trị undefined.
Các kiểu cơ bản sẽ được chuyển vào hàm theo giá trị, đối tượng sẽ được chuyển vào hàm theo tham chiếu.
Hàm là đối tượng hạng nhất trong JavaScript. Tất cả các hàm là đối tượng của nguyên mẫu Function. Hàm có thể được tạo và dùng trong phép toán gán như bất kỳ một đối tượng nào khác, và cũng có thể được dùng làm đối số cho các hàm khác. Do đó, JavaScript hỗ trợ hàm cấp độ cao. Ví dụ:

Quote:

<script language="JavaScript">
    Array.prototype.fold =
    function (value, functor) {
        var result = value;
        for (var i = 0; i < this.length; i++) {
            result = functor(result, this[i]);
        }
        return result;
    }
    var sum = [1,2,3,4,5,6,7,8,9,10].fold(0, function (a, b) { return a + b })
</script>

Đoạn mã nguồn trên sẽ trả lại kết quả là 55.
Vì hàm trong JavaScript là đối tượng, lập trình viên có thể khởi tạo hàm không tên:

Quote:

<script language="JavaScript">
    function() { thân hàm; }
</script>

Một ví dụ sử dụng hàm không tên trong JavaScript:

Quote:

<script language="JavaScript">
    document.onkeypress = function(e) {
        alert("Bạn vừa nhấn một phím trên bàn phím");
    }
</script>

Hàm trên sẽ hiển thị thông báo khi một số phím trên bàn phím có thể gây sự kiện onkeypress được nhấn.
Mặc định, tất cả các thành phần của đối tượng thuộc phạm vi công cộng (public). Trong JavaScript, không có khái niệm thành phần riêng hay thành phần được bảo vệ (private và protected), tuy nhiên những tính năng này có thể được giả lập.

Quản lý lỗi

Tùy theo môi trường phát triển, sửa lỗi JavaScript có thể sẽ rất khó khăn. Với JavaScript dùng trên trang web, hiện tại, các trình duyệt dựa trên Gecko (như Mozilla, Mozilla Firefox) có công cụ tìm diệt lỗi rất tốt (Venkman), ngoài ra còn kèm theo một công cụ kiểm tra DOM.
Các phiên bản mới hơn của JavaScript (như bản dùng trên Internet Explorer 5 và Netscape 6) hỗ trợ mệnh đề quản lý lỗi try ... catch ... finally, mệnh đề này bắt nguồn từ Java giúp lập trình viên quản lý lỗi thời gian chạy hoặc quản lý ngoại lệ xuất phát từ cú pháp throw. Cú pháp của mệnh đề này như sau:
<script language="JavaScript">
    try
    {
        Khối lệnh cần thực hiện có thể gây lỗi;
    }
    catch (error)
    {
        Khối lệnh cần thực hiện trong trường hợp có lỗi;
    }
    finally
    {
        Khối lệnh luôn được thực hiện;
    }
</script>
Trong cú pháp trên error là một đối tượng Error có hai thuộc tính theo chuẩn ECMAScript phiên bản 3:
    * error["message"]: Thông điệp diễn giải lỗi
    * error["name"]: Tên lỗi
Tuy nhiên mỗi trình duyệt sử dụng một bản JavaScript khác nhau, trong các trình duyệt lớn và phổ dụng không có trình duyệt nào hoàn toàn tuân thủ theo chuẩn ECMAScript phien bản 3. Ví dụ như Internet Explorer 6 SP 1 có thêm hai thuộc tính:
    * error["number"]: Bí số của lỗi
    * error["description"]: Thông điệp diễn giải lỗi
Còn Mozilla Firefox 1.07 có thêm ba thuộc tính:
    * error["fileName"]: Tên tập tin xảy ra lỗi
    * error["lineNumber"]: Dòng xảy ra lỗi
    * error["stack"]: Cả hai thuộc tính trên gộp lại trong một chuỗi ký tự
Phần finally là không bắt buộc. Lập trình viên hoàn toàn có thể sử dụng try ... catch mà không có finally.
Phạm vi ảnh hưởng của lỗi
Các ngôn ngữ lập trình kịch bản rất dễ bị ảnh hưởng bởi lỗi, hơn nữa, mỗi một trình duyệt, mỗi một công ty ứng dụng JavaScript một cách hoàn toàn khác nhau nên lập trình viên JavaScript thường phải dành rất nhiều thời gian sửa lỗi để đảm bảo đoạn mã nguồn của mình sẽ hoạt động tốt. Trong những trang HTML mà thẻ script và các đoạn mã HTML khác xen kẽ lẫn nhau, lỗi cú pháp có thể được phát hiện dễ dàng hơn bằng cách để mỗi hàm trong một thẻ script riêng biệt hoặc có thể sử dụng nhiều tệp .js khác nhau. Trong nhiều trường hợp, cách này còn giúp tránh làm hỏng cả trang web trong trường hợp có lỗi trong một đoạn mã nguồn.