advertisement

Tong quan ve Internet va lap trinh web new

27 %
73 %
advertisement
Information about Tong quan ve Internet va lap trinh web new
Entertainment

Published on February 21, 2008

Author: Teresa1

Source: authorstream.com

advertisement

Slide1:  Tổng quan về Internet và thiết kế Web Hoàng Quang Huy BM Mạng và HTTT Slide2:  Nội dung 1. Internet và dịch vụ web 2. Apache MySql PHP Một số biện pháp bảo mật cho Web server Slide3:  1. Internet - Tháng 6/1968: Cục các dự án nghiên cứu tiên tiến (Advance Research Projects Agency - ARPA) thuộc Bộ quốc phòng Mĩ đã xây dựng dự án kết nối các trung tâm nghiên cứu lớn trong toàn liên bang. - 1969 : Mạng ARPANET ra đời - 1980 : Tách thành 2 mạng con là Milnet (mạng quân sự) và ARPANET (mạng dân sự) Slide4:  1990 : Mạng NSFNET có tốc độ 1.5Mb/s 1997 : Mạng NSFNET chuyển thành Internet (mạng toàn cầu) và Milnet trở thành một bộ phận của Internet Slide5:  C¸c dÞch vô trªn Internet Internet cung cÊp rÊt nhiÒu dÞch vô cho ng­êi sö dông, sau ®©y mét sè dÞch vô th«ng dông : + WWW (World Wide Web) : dÞch vô tra cøu th«ng tin th«ng qua c¸c trang web. + E - Mail : dÞch vô th­ ®iÖn tö. + FTP (File Transfer Protocol) : dÞch vô truyÒn file. + Telnet : øng dông cho phÐp truy nhËp m¸y tÝnh tõ xa. + DNS (Domain Names System) : DÞch vô tªn miÒn. Slide6:  Dịch vụ WWW WWW (World Wide Web –Web) là dịch vụ ra đời muộn nhất nhưng phát triển mạnh nhất trên Internet. Web có khả năng tích hợp các dịch vụ khác, tức là có thể sử dụng FTP, Gopher, Mail .. thông qua Web. Tháng 11-1992: chỉ có 26 máy chủ web online. 5/2004 : 50 triệu website. 9/2006: 92.615.362 website. 11/2006 : 101.435.253 website 7/2006 : 439.286.364 host 1/2007 :106,875,138 website Slide7:  Ở Việt Nam ( VNNIC) Slide8:  Các khái niệm về WWW Web được xây dựng trên mô hình Server/Client sử dụng giao thức HTTP để thiết lập kết nối giữa máy chủ (Web Server) và máy khách (Web Client). Slide9:  Trang Web ( Web page) : là tập hợp các thành phần như văn bản thông thường(text), siêu liên kết và các dữ liệu khác. Một trang web có thể tạo bởi rất nhiều ngôn ngữ khác nhau nhưng về cơ bản vẫn là ngôn ngữ đánh dấu siêu văn bản HTML. Website : thông thường các trang Web được nhóm lại với nhau trên một Web Server và cơ sở dữ liệu, được xác định thông qua một tên miền. Slide10:  Trình duyệt Web (Web Brower) : là phần mềm được dùng phía client. Nhiệm vụ của trình duyệt là gửi yêu cầu của client đến máy chủ Web, nhận dữ liệu trả lời và hiển thị chúng ra màn hình dưới dạng văn bản, âm thanh, hình ảnh… Hiện nay các trình duyệt đều miễn phí. Một số trình duyệt Web phổ biến như : Internet Explorer của Microsoft, Opera của Opera, Firefox của Mozilla, Navigator của Nescape, Fast Brower … Web Server : là phần mềm cho phép cung cấp dịch vụ Web. Web Server nhận yêu cầu từ máy khách và trả lại kết quả theo yêu cầu. Ví dụ : IIS, Apache… Web Server & Web Browser:  Web Server & Web Browser Slide12:  URL (Uniform Resource Location) laø moät chuoãi vaên baûn tuaàn töï goàm coù : - giao thöùc (Protocol), teân mieàn (Domain Name) [ñöôøng daãn (Path) tôùi thoâng tin yeâu caàu]. Protocol laø chuaån truyeàn thoâng duøng ñeå truyeàn taûi thoâng tin nhö laø : HTTP, FTP vaø Gopher. Slide13:  Ví duï : http://localhost http://localhost:8080 Slide14:  Để thiết kết một trang web, ứng dụng web Web Server : Apache, IIS Personal Web Server, Netscape and iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd… - Ngôn ngữ lập trình web CSDL : MySQL, MS SQL… Các phần mềm trợ giúp Slide15:  Các ngôn ngữ lập trình Web Ngôn ngữ đánh dấu văn bản HTML Ngôn ngữ kịch bản phía client: Vbscript, Java script Ngôn ngữ kịch bản phía server: ASP, ASP.Net PHP, Perl Java Slide16:  Ngôn ngữ HTML Néi dung (source) cña mçi tÖp .html ®Òu cã d¹ng chung nh­ sau: <HTML> <HEAD> <TITLE> Tiªu ®Ò trang </TITLE> ... </HEAD> <BODY> ... </BODY> </HTML> Slide17:  <HTML> <HEAD> <TITLE> This is my first page </TITLE> </HEAD> <BODY> This is an ASCII text <H1> This is a test H1 tag </H1> <H2> This is a test H2 tag </H2> <H3> This is a test H3 tag </H3> <H4> This is a test H4 tag </H4> <H5> This is a test H5 tag </H5> <H6> This is a test H6 tag </H6> <B> This is a test B tag </B><I> This is a test I tag </I><U> This is a test U tag </U> </BODY> </HTML> Slide18:  Các phần mềm LAMP = Linux + Apache + MySql + PHP WAMP = Windows + Apache + MySql + PHP Sử dụng WAMP XAMPP 1.6.3 WAMP v1.6.6, AppServ Apache2 triad EasyPHP 1.8 Uniform Server,WOS Portable, Spike Source, NetServer, DevSide .Net Slide19:  Top developer http://news.netcraft.com/archives/web_server_survey.html Slide20:  Mô hình xử lý 2. Apache:  2. Apache Là một WEB Server miễn phí được phát triển theo chuẩn mã nguồn mở. Apache chạy được trong cả hai môi trường Linux và Windows. Có thể download phiên bản mới nhất của Apache tại địa chỉ: http://www.apache.org Các phiên bản 1.x và 2.x (mới nhất) khác nhau về kiến trúc. Chi tiết xin xem trong feature log. 2.1. Cài đặt Apache 2.x:  2.1. Cài đặt Apache 2.x RPM (.rpm) Linux Source code (.tar.bz2) Apache Program install (.msi) Windows Source code (.zip) Download phiên bản mới nhất 2.2. Cài đặt Apache 2.x (Windows):  2.2. Cài đặt Apache 2.x (Windows) Để cài đặt Apache trong Windows bằng chương trình cài đặt tự động, cần download chương trình này về từ website của Apache. Thông thường những chương trình dạng này sẽ không hỗ trợ giao thức https. Quá trình cài đặt sẽ tự động sao chép tất cả các file cần thiết vào thư mục chỉ định. Có thể sử dụng chương trình quản lý ở mức dịch vụ để start, stop, restart, reload Apache hoặc khởi động bằng tay. 2.3. Cấu hình Apache:  2.3. Cấu hình Apache Toàn bộ cấu hình của Apache đều được lưu dưới dạng text. File cấu hình chính là httpd.conf nằm trong thư mục {apache_dir}\conf. Trong file này có thể chứa các khai báo include đến những file cấu hình khác. Mỗi dòng trong file cấu hình đều mang 1 ý nghĩa Là khoảng trắng Là chú thích (bắt đầu bằng ký tự #) Là khai báo (gồm từ khóa và giá trị) 2.3. Cấu hình Apache (tt):  2.3. Cấu hình Apache (tt) Toàn bộ tài liệu về Apache (bao gồm cả các khai báo cấu hình) đều được cài đặt (mặc định) cùng với Apache. Có thể truy cập vào tài liệu này thông qua URL (có dấu / cuối cùng) http://<tênmáy | IP>/manual/ Thông thường URL trên sẽ bị vô hiệu hóa (mặc định) cho đến khi bỏ chú thích dòng “Include conf/extra/httpd-manual.conf” trong file cấu hình chính (httpd.conf) và restart lại Apache. 2.3. Cấu hình Apache (tt):  2.3. Cấu hình Apache (tt) Sau đây là một số khai báo thường gặp khi cấu hình Apache: Listen: Khai báo web server sẽ được dùng tại IP nào và cổng nào. Có thể khai báo nhiều lần LoadModule: Khai báo các module được nạp vào khi Apache khởi động. Nên dùng để bỏ bớt các module không cần thiết hoặc nạp module do người dùng tự viết. ServerName: Tên của server. Nếu Apache không tìm được tên của máy tính qua DNS thì khai báo này bắt buộc phải có. DocumentRoot: Thư mục gốc của web server. Cần lưu ý đến quyền của hệ thống gán lên thư mục này đối với account dùng để chạy Apache. 2.3. Cấu hình Apache (tt):  2.3. Cấu hình Apache (tt) Một số khai báo thường gặp khi cấu hình Apache: DirectoryIndex: Khai báo các file mặc định AddDefaultCharset: Khai báo bảng mã mặc định của luồng siêu văn bản trả về cho client. Directory: Là khai báo khối (bên trong chứa các khai báo con) dùng để định nghĩa quy tắc ứng xử của Apache đối với từng thư mục. VirtualHost: Là khai báo khối, dùng để định nghĩa các web server ảo theo tên trên một máy tính duy nhất. Alias: Dùng để tạo các thư mục ảo. Slide28:  3. MySQL MySQL là CSDL mã nguồn mở phổ biến nhất thế giới  miễn phí MySQL bản thân nó cũng có đầy đủ các tính năng của ngôn ngữ SQL và các kiểu dạng dữ liệu phổ biến Hiện có hơn sáu triệu website và các hệ thống kinh doanh khác sử dụng MySQL - trong số đó có những tổ chức doanh nghiệp lớn như Yahoo, NASA, The Associated Press, Suzuki... Slide29:  - MySQL chạy được trong cả hai môi trường Linux và Windows. - Có thể download phiên bản mới nhất của MySQL tại địa chỉ: http://www.mysql.com - Các phiên bản 3.x, 4x và 5.x (mới nhất) khác nhau về kiến trúc. Chi tiết xin xem trong feature log. 3.1. Cài đặt MySQL 5.x:  3.1. Cài đặt MySQL 5.x RPM (.rpm) Linux Source code (.tar.gz) MySQL Program install (.msi) Windows Source code (.zip) Download phiên bản mới nhất 3.2. Cài đặt MySQL 5.x (Windows):  3.2. Cài đặt MySQL 5.x (Windows) Để cài đặt MySQL trong Windows bằng chương trình cài đặt tự động, cần download chương trình này về từ website của MySQL. Quá trình cài đặt sẽ tự động sao chép tất cả các file cần thiết vào thư mục chỉ định. Sau khi cài đặt có thể sử dụng tiện ích cấu hình tự động để thiết lập các tham số ban đầu cho MySQL. Tập tin cấu hình của MySQL có tên là my.ini được đặt tại thư mục {mysql_dir} là thư mục cài đặt MySQL. 3.3. Tập lệnh của mysql:  3.3. Tập lệnh của mysql Các lệnh của mysql được lưu trong thư mục {mysql_dir}\bin Nên đưa thư mục trên vào đường dẫn PATH để có thể sử dụng lệnh trong mọi ngữ cảnh của dòng lệnh. Sau đây là một số lệnh thường dùng mysqld-nt: Là chương trình server để lắng nghe các yêu cầu của client. mysql: Là chương trình client dùng để kết nối và quản trị bằng câu lệnh. mysqldump: Là chương trình cho phép kết xuất cấu trúc và dữ liệu của các bảng trong mysql ra luồng dữ liệu dạng text. 3.4. Sử dụng lệnh mysql:  3.4. Sử dụng lệnh mysql Để sử dụng lệnh mysql kết nối vào một mysql server ta dùng cú pháp sau: mysql [–u <user>] [-p] [-h <host>] [-P <port>] Trong đó: u: Dùng để chỉ định người dùng khi kết nối. Mặc định trong Windows là ODBC. p: Dùng để chỉ định là người dùng tương ứng có mật khẩu kết nối hay không. h: Dùng để chỉ định địa chỉ (Tên hoặc IP) của mysql server cần kết nối. Mặc định là localhost. P: Dùng để chỉ định cổng kết nối. Mặc định là 3306. 3.4. Sử dụng lệnh mysql (tt):  3.4. Sử dụng lệnh mysql (tt) C:\WAMP2\mysql\bin>mysql -u root -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 to server version: 5.0.27-community-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> 3.4. Sử dụng lệnh mysql (tt):  3.4. Sử dụng lệnh mysql (tt) Sau khi kết nối thành công, có thể sử dụng các lệnh sau (kết thúc lệnh là dấu ;) để quản trị mysql server: source <path to file> <create | drop> database <db name>; show databases use <db name>; show tables <create | drop | alter> table; desc <table name> select, insert, update, delete grant, revoke, flush, set password … Tập đầy đủ các lệnh mysql có thể được download và tra cứu tại trang chủ của MySQL. 3.5. Bảo mật trong MySQL:  3.5. Bảo mật trong MySQL Để kết nối được với mysql server, client cần có ít nhất 1 account đã được khai báo trong csdl người dùng & phân quyền của mysql server. Đây là một csdl ẩn, không được phép hiển thị trong mọi lệnh của mysql. Tất cả dữ liệu nằm trong csdl có tên là mysql chính là ánh xạ của csdl người dùng & phân quyền. Lưu ý, ánh xạ trên là một chiều. Tức là chỉ có chiều từ csdl mysql sang csdl người dùng & phân quyền. Tuy nhiên, không phải mỗi khi csdl mysql thay đổi thì csdl kia thay đổi theo. Để có quyền thay đổi (thực hiện ánh xạ), người dùng cần phải có 2 quyền: grant và reload. 3.5. Bảo mật trong MySQL (tt):  3.5. Bảo mật trong MySQL (tt) CSDL mysql chứa nhiều bảng bên trong, trong đó chỉ có bảng user chứa định nghĩa về người dùng mysql. Bảng user có khóa chính là user và host nếu host = ‘’ nghĩa là user được phép đăng nhập từ mọi host nếu host = ‘%’ nghĩa là user được phép đăng nhập từ mọi host trừ localhost giá trị của host là khác nhau với tên và IP (nghĩa là ‘localhost’ <> 127.0.0.1) Mật khẩu của người dùng được lưu dưới dạng kết quả của hàm băm password. Để đổi mật khẩu cần dùng lệnh set password. Bảng user cũng chứa các quyền toàn cục của người dùng. Các bảng khác: db, tables_priv, columns_priv chứa các quyền của người dùng đối với các csdl, bảng và cột trong bảng (Sử dụng lệnh desc để biết thêm chi tiết). 3.6. Người dùng và phân quyền:  3.6. Người dùng và phân quyền Sử dụng lệnh grant để tạo người dùng: GRANT priv_type [(column_list)] ... ON [TABLE] {tbl_name | * | *.* | db_name.*} TO user@host [IDENTIFIED BY [PASSWORD] 'password'] ... [WITH GRANT OPTION...] priv_type gồm các quyền: ALL [PRIVILEGES] ALTER <CREATE | DROP> <DATABASE | TABLE> SELECT,INSERT,UPDATE, DELETE … trong đó cần lưu ý: ALL không chứa quyền grant. 3.6. Người dùng và phân quyền (tt):  3.6. Người dùng và phân quyền (tt) Sử dụng lệnh grant (tt): ‘password’ là mật khẩu thô, không cần dùng hàm password. Nếu là dạng băm thì có thể dùng với từ khóa PASSWORD. Để có thể phân quyền cho một người dùng khác, người dùng đang thi hành lệnh phải có quyền grant (global) và quyền insert,update trên bảng user trong csdl mysql. Thông thường, nếu người dùng chưa tồn tại thì grant tạo luôn người dùng mới, nếu không nó sẽ cấp quyền cho người dùng đã có (nhưng không xóa các quyền khác, để xóa cần dùng lệnh REVOKE có cú pháp như GRANT). Một số phiên bản install của MySQL bắt buộc phải tạo người dùng bằng CREATE USER trước mới cho grant. 3.6. Người dùng và phân quyền (tt):  3.6. Người dùng và phân quyền (tt) Sử dụng lệnh grant (tt): Trong các phiên bản MySQL trước 5.x, sau khi thi hành xong lệnh grant, chỉ có csdl mysql là được cập nhật. CSDL người dùng & phân quyền thực sự của MySQL vẫn chưa được ánh xạ từ csdl mysql sang. Để thực hiện ánh xạ trên, người dùng cần thực hiện lệnh flush privileges và phải có quyền reload. Trong các phiên bản 5.x hiện nay, lệnh grant đã thực hiện luôn việc ánh xạ từ csdl mysql sang csdl người dùng & phân quyền của MySQL. 3.6. Người dùng và phân quyền (tt):  3.6. Người dùng và phân quyền (tt) Cập nhật trực tiếp vào csdl mysql: Như đã nói, csdl người dùng & phân quyền của MySQL là ánh xạ trực tiếp từ csdl mysql sang. Do đó, nếu có đủ quyền, người dùng có thể insert,update,delete trực tiếp lên các bảng trong csdl mysql. Sau đó, thực hiện việc ánh xạ bằng lệnh flush privileges. Hiệu quả của các thao tác trên tương ứng với lệnh grant. Lưu ý: Nếu quên mật khẩu của tài khoản root, có thể reset lại thông qua hướng dẫn về phần này tại mục “Appendix A.4.1 How to reset the root password” trong tài liệu do MySQL cung cấp tại địa chỉ http://www.mysql.com 3.7 Ví dụ:  3.7 Ví dụ Yêu cầu: Cài đặt MySQL phiên bản 5.x vào hệ điều hành Windows Dùng chương trình Install Wizard để thiết lập MySQL chạy như một service và đặt mật khẩu của tài khoản root là ‘root’. Thực hành: Gõ lệnh mysql –u root –p tại dấu nhắc lệnh của cửa sổ DOS, sau đó nhập mật khẩu ‘root’ để đăng nhập vào cửa sổ lệnh của MySQL và thực hiện những lệnh sau show databases; // Xem các csdl hiện có create database mydb; // Tạo csdl mydb use mydb; // Đặt csdl hiện hành là mydb 3.7. Ví dụ (tt):  3.7. Ví dụ (tt) create table `mytable` ( `field1` char(10) collate utf8_unicode_ci not null, `field2` int unsigned default 0, `field3` datetime, primary key (`field1`, `field2`), index (`field1`), unique (`field3`) ) engine=myisam default charset=utf8 collate=utf8_bin; show tables; desc mytable; insert into mytable set field1 = ‘abc’, field2 = 1, field3 = now(); 3.7 Ví dụ (tt):  3.7 Ví dụ (tt) use mysql; show tables; desc user; insert into user set user = ‘u1’, host = ‘localhost’, password = password(‘test’); create user u2@localhost identified by ‘test’; create user u3@localhost identified by password ‘*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29’; grant all on *.* to u1@localhost with grant option; grant select,insert on mydb.* to u2@localhost; 3.7. Ví dụ (tt):  3.7. Ví dụ (tt) insert into mysql.tables_priv set host = ‘localhost’, user = ‘u3’, db = ‘mydb’, table_name = ‘mytable’, table_priv = ‘Select,Insert,Update’; flush privileges; set password = password(‘abc’); Copy các lệnh cần thiết vào file c:\mysql.sql sau đó chạy lệnh sau tại dấu nhắc lệnh của MySQL: source c:\mysql.sql; Sau đó thoát khỏi dấu nhắc lệnh của MySQL và thi hành lệnh sau: mysqldump –u root –p --all-databases > c:\all.sql Slide46:  Ngôn ngữ PHP - cho phép tạo ra các trang web động - Là một ngôn ngữ lập trình server-side miễn phí được phát triển theo chuẩn mã nguồn mở. PHP ra đời từ sự viết tắt của cụm từ Personal Home Page. Nhưng hiện nay PHP được coi là sự chơi chữ của việc viết tắt đệ quy cụm từ PHP: Hypertext Preprocessor . PHP được nhúng trong các trang siêu văn bản HTML và thường kết hợp với cơ sở dữ liệu MySQL Slide47:  - By the end of 1998, PHP grew to an install base of tens of thousands of users (estimated) and hundreds of thousands of Web sites reporting it installed. At its peak, PHP 3.0 was installed on approximately 10% of the Web servers on the Internet. The new engine, dubbed 'Zend Engine' (comprised of their first names, Zeev and Andi), met these design goals successfully, and was first introduced in mid 1999. PHP 4.0, based on this engine, and coupled with a wide range of additional new features, was officially released in May 2000, almost two years after its predecessor, PHP 3.0 Slide48:  - PHP 5 PHP 5 was released in July 2004 after long development and several pre-releases. It is mainly driven by its core, the Zend Engine 2.0 with a new object model and dozens of other new features. To get more information on this engine, see its webpage. Today, PHP is being used by hundreds of thousands of developers (estimated), and several million sites report as having it installed, which accounts for over 20% of the domains on the Internet. Slide49:  PHP cã thÓ lµm viÖc víi nhiÒu hÖ ®iÒu hµnh nh­ Windows, Linux, Unix vµ c¸c phÇn mÒm Web server nh­ Apache, IIS PHP đã giành được giải thưởng "Ngôn ngữ lập trình của năm 2004“ - Có thể download phiên bản mới nhất của PHP tại địa chỉ: http://www.php.net Các phiên bản 4x và 5.x (mới nhất) khác nhau về kiến trúc. Chi tiết xin xem trong feature log. Phiên bản mới nhất là : 5.2 4.1. Cài đặt PHP 5.x:  4.1. Cài đặt PHP 5.x Download phiên bản mới nhất RPM (.rpm) Linux Source code (.tar.bz2) PHP Installer (.exe, .zip) Windows Source code (.tar.gz) 4.2. Cài đặt PHP 5.x (Windows):  4.2. Cài đặt PHP 5.x (Windows) Để cài đặt PHP trong Windows bằng chương trình cài đặt tự động, cần download chương trình này về từ website của PHP. Lưu ý là bản cài đặt PHP dạng tự động sẽ không có các thư viện mở rộng (đặc biệt là hai thư viện php_mysql và php_mbstring). Để có các thư viện này cần sử dụng bản cài đặt thủ công (.zip). File cấu hình của PHP có tên là php.ini nằm trong thư mục C:\WINDOWS 4.3. Kết nối PHP - Apache:  4.3. Kết nối PHP - Apache Sau khi cài đặt PHP xong, cần thực hiện các bước đúng như chỉ dẫn trong file install.txt nằm tại thư mục {php_dir} Các chỉ dẫn trên vẫn thiếu một bước quan trọng là thêm các khai báo sau vào file cấu hình của Apache: <Directory "C:/php"> AllowOverride None Options None Order allow,deny Allow from all </Directory> http://www.php.net/manual/en/install.windows.apache2.php 4.4. Kết nối PHP – MySQL:  4.4. Kết nối PHP – MySQL The following databases are currently supported: Adabas D InterBase dBase Ingres Ovrimos FrontBase SQLite EmpressmSQL Solid FilePro (read-only) Direct Sybase Hyperwave Velocis IBM DB2 ODBC Unix dbm Informix Oracle (OCI7 and OCI8) PostgreSQL MySQL MS-SQL   4.4. Kết nối PHP – MySQL(tt):  4.4. Kết nối PHP – MySQL(tt) Sửa lại giá trị của extension_dir trong php.ini Xóa bỏ chỉ dẫn chú thích (;) trong file cấu hình của php tại dòng “extension=php_mysql.dll” và tại dòng “extension=php_mbstring.dll” sau đó khởi động lại Apache. Nếu mọi việc thành công, trình duyệt sẽ hiển thị chính xác các thông tin khi duyệt địa chỉ http://<tên máy | IP>/info.php Với file info.php có nội dung như sau: <?php echo phpinfo(); ?> 4.5 Ngôn ngữ lập trình PHP:  4.5 Ngôn ngữ lập trình PHP Là ngôn ngữ lập trình dạng server-side, vì vậy PHP ngoài các khả năng của một ngôn ngữ lập trình thuần túy còn có đầy đủ các chức năng cần thiết của một CGI chuẩn như: Lấy dữ liệu từ form, sinh các trang web động, gửi nhận cookie, hỗ trợ session, thao tác với biến của WEB Server. PHP cũng có hệ thống thư viện hàm đồ sộ giúp cho các lập trình viên có nhiều lựa chọn trong việc sửa dụng PHP để kết nối với nhiều phần mềm khác nhau như: Oracle, MySQL, ODBC, LDAP, Mail (SMTP, POP3), COM, .Net… 4.5.1. Cú pháp cơ bản:  4.5.1. Cú pháp cơ bản PHP mỗi khi thông dịch một file sẽ chỉ thi hành những khối lệnh nằm giữa 2 cặp thẻ <?php và ?> Mọi ký tự nằm ngoài các cặp thẻ trên đều được giữ nguyên và thêm vào trong luồng siêu văn bản trả về cho môi trường bên ngoài theo đúng thứ tự ban đầu. Nói chung, cú pháp trong PHP được thừa kế từ cú pháp của C, C++ và Perl. Tuy nhiên, cũng có một số kết hợp và thay đổi từ các cú pháp gốc tạo ra nét đặc thù riêng cho PHP. 4.5. 1. Cú pháp cơ bản (tt):  4.5. 1. Cú pháp cơ bản (tt) Để tạo ra các kết xuất trả về cho môi trường bên ngoài (trình duyệt) ta có thể sử dụng các cách sau: Viết kết xuất bên ngoài cặp thẻ <?php và ?> Dùng lệnh echo hoặc print Để tạo ra chú thích, có thể dùng cú pháp dạng C như sau: // hoặc # Để chú thích dòng /* */ Để chú thích khối Lệnh của PHP kết thúc bởi dấu chấm phẩy (;) và có thể viết nhiều lệnh trên một dòng. Lưu ý không giống C, C++ trình thông dịch của PHP chỉ phân biệt hoa thường với tên biến, tên hằng. Còn tên hàm (có sẵn hoặc do người dùng định nghĩa) và từ khóa thì không phân biệt. 4.5.2. Biến:  4.5.2. Biến 4.2.1 Định nghĩa biến Biến trong PHP được bắt đầu bởi ký tự $, sau đó là tên biến được định nghĩa theo văn phạm sau: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* Tên biến có phân biệt hoa thường. Có thể gán giá trị vào biến mà không cần khai báo. Nhưng chỉ có thể truy cập nội dung biến đã có giá trị. Để xác định biến tồn tại hay không có thể dùng hàm isset() và để hủy biến có thể dùng hàm unset() Để xác định kiểu hiện tại của biến có thể sử dụng hàm gettype(), var_dump() hoặc các hàm is_var_type(). 4.5.2. Biến (tt):  4.5.2. Biến (tt) 4.2.2 Phạm vi truy cập biến: Biến cục bộ hàm: Chỉ được sử dụng trong thân các hàm do người dùng định nghĩa Biến toàn cục: Được sử dụng bên ngoài thân các hàm do người dùng định nghĩa. Để truy cập được các biến này trong thân các hàm, cần phải dùng từ khóa global để khai báo hoặc thông qua biến mảng siêu toàn cục $GLOBAL. Biến siêu toàn cục: Là các biến được định nghĩa trước của PHP có thể được truy cập tại mọi nơi, mọi ngữ cảnh. Biến tĩnh: Được sử dụng như biến tĩnh trong C++. Biến tĩnh có thể được định nghĩa trong hàm và lớp. 4.5.2. Biến (tt):  4.5.2. Biến (tt) 4.2.3 Truy cập giá trị biến: Để truy cập giá trị biến chỉ cần dùng cú pháp $var_name. Biến kiểu mảng cần thêm cặp ký tự [ ] để truy cập vào giá trị các phần tử trong mảng. Tuy nhiên trong nhiều trường hợp phải sử dụng thêm cặp ngoặc nhọn { } hoặc ký tự & để có thể xác định chính xác tên biến cần truy cập $a = ‘hello’; $b = ‘every’; $c = &$b; $d = ‘b’; echo “$a $bone.”; echo “$a ${b}one.”; echo “$a {$c}one.”; echo “$a $$d”; echo “$a {$$d}one.”; echo “$a ${$d}one.”; 4.5.2. Biến (tt):  4.5.2. Biến (tt) 4.2.4 Biến bên ngoài PHP: Biến form: Được truy cập thông qua các biến mảng siêu toàn cục được định nghĩa trước là $_POST, $_GET, $_COOKIE, $_REQUEST, $_FILES. Nếu khai báo register_global được bật trong php.ini thì tự động các biến có tên tương ứng cũng được tạo ra. Biến session: Được truy cập thông qua các biến mảng siêu toàn cục được định nghĩa trước là $_SESSION. Biến server: Được truy cập thông qua các biến mảng siêu toàn cục được định nghĩa trước là $_SERVER, $_ENV. 4.5.3. Kiểu dữ liệu:  4.5.3. Kiểu dữ liệu PHP hỗ trợ nhiều kiểu dữ liệu phổ thông như các ngôn ngữ lập trình khác (được liệt kê bên phải). Trên thực tế, PHP không định kiểu tuyệt đối cho các biến mà tùy vào từng ngữ cảnh, biến sẽ được quyết định là có kiểu nào tương ứng. Để ép kiểu có thể dùng cú pháp như của C hoặc dùng hàm settype(). Kiểu vô hướng boolean interger float string Kiểu có cấu trúc array object Kiểu đặc biệt resource NULL … 4.5.3. Kiểu dữ liệu (tt):  4.5.3. Kiểu dữ liệu (tt) Kiểu boolean Tập xác định: { true, false } Toán tử liên quan: < > <= >= == != === !=== && || and or xor (bool) Kiểu interger Tập giá trị: { (-231) … (231 – 1) } Văn phạm: decimal: [1-9][0-9]* | 0 hexa: 0[xX][0-9a-fA-F]+ octal: 0[0-7]+ integer: [+-] <decimal | hexa | octal> 4.5.3. Kiểu dữ liệu (tt):  4.5.3. Kiểu dữ liệu (tt) Kiểu interger Toán tử liên quan: & | ^ ~ + - * / % ++ -- << >> &= |= ^= += -= *= /= %= <<= >>= (int) Kiểu float Tập xác định: { (-1,8 x 10308) … (1,8 x 10308) } Văn phạm: lnum: [0-9]+ dnum: ([0-9]*[.]{lnum}) | ({lnum}[.][0-9]*) float: (({lnum} | {dnum}) [eE][+-] {lnum}) 4.5.3. Kiểu dữ liệu (tt):  4.5.3. Kiểu dữ liệu (tt) Kiểu float Toán tử liên quan: Giống kiểu interger Kiểu string Cách xác định Đặt trong cặp nháy đơn ‘ ’: Các ký tự giữa hai dấu nháy đơn được xử lý như văn bản thuần túy, chỉ có duy nhất 1 ký tự metacharacter có hiệu lực là ký tự \ Đặt trong cặp nháy kép “ ”: Các ký tự giữa hai dấu nháy kép được tiền xử lý trước khi được coi như một xâu thực sự. Ví dụ “this is a new paragraph \n and this is character A: \x41” Đặt trong cặp cú pháp heredoc <<< tên string tên; Cả 3 cách đều hỗ trợ xâu định nghĩa trong nhiều dòng. 4.5.3. Kiểu dữ liệu (tt):  4.5.3. Kiểu dữ liệu (tt) Kiểu string Toán tử liên quan: . .= [ ] Kiểu array Kiểu array là kiểu có cấu trúc rất mạnh của PHP, nó cho phép lập trình viên có thể truy cập vào các phần tử trong mảng thông qua cơ chế chỉ số rất linh hoạt. Toán tử liên quan: + Ví dụ $arr = array("test" => array(6 => 5, 13 => 9, "a" => 42)); echo $arr["test"][6]; // 5 echo $arr["test"][13]; // 9 echo $arr["test"]["a"]; // 42 4.5.4. Hằng:  4.5.4. Hằng Được định nghĩa bởi cấu trúc define. Tên hằng phân biệt hoa thường. Phạm vi sử dụng giá trị của hằng là siêu toàn cục. Giá trị của hằng phải là kiểu vô hướng. Ví dụ define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." 4.5.5. Cấu trúc điều khiển:  4.5.5. Cấu trúc điều khiển Rẽ nhánh với if … else if ($a > $b) { echo "a > b"; $a = $b; } else { echo "a <= b"; $b = $a; } if ($a > $b): echo "a > b"; $a = $b; else: echo "a <= b"; $b = $a; endif; 4.5.5 Cấu trúc điều khiển (tt):  4.5.5 Cấu trúc điều khiển (tt) Rẽ nhánh với switch … case switch ($a) { case 0: echo "a = 0"; break; case 1: echo "a = 1"; break; } switch ($a): case 0: echo "a = 0"; break; case 1: echo "a = 1"; break; endswitch; 4.5.5 Cấu trúc điều khiển (tt):  4.5.5 Cấu trúc điều khiển (tt) Lặp với while & do … while while ($i++ < 5) { switch ($i) { case 2: echo "At 2"; break 1; /* Exit only switch. */ case 5: echo "At 5"; break 2; /* Exit switch and while. */ default: break; } while (1) continue 2; echo "This never gets."; } 4.5.5 Cấu trúc điều khiển (tt):  4.5.5 Cấu trúc điều khiển (tt) Lặp với for & foreach for ($i=1, $j=0; $i<=10; $j+=$i, print $i, $i++); $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } $arr = array("one", "two", "three"); foreach ($arr as $key => $value) { echo "Key: $key; Value: $value"; } 4.5.5 Cấu trúc điều khiển (tt):  4.5.5 Cấu trúc điều khiển (tt) Các khai báo khác include: Xác định đoạn mã được thi hành tiếp theo nằm trong file nào (hoặc URL nào). Nếu có nhiều khai báo include đến một file (URL) duy nhất hoặc khai báo này được đặt trong 1 vòng lặp thì khai báo sẽ được sử dụng nhiều lần. include_once: Giống include nhưng chỉ cho phép include mỗi file một lần. require: Giống include nhưng sẽ trả về lỗi nếu k0 thấy file hoặc URL. require_once: Giống include_once và require kết hợp lại. try { ... } catch; 4.5.6. Hàm:  4.5.6. Hàm Khai báo hàm trong PHP gần giống như khai báo trong C. Hàm trong PHP cũng cho phép đệ quy, lồng nhau. Tuy nhiên, cũng có một số điểm khác biệt: Định nghĩa hàm trong PHP thay kiểu trả về khi khai báo bằng từ khóa function. Tên hàm không phân biệt hoa thường khi gọi. Phạm vi truy cập là siêu toàn cục. Tham số trong lời gọi hàm có thể có giá trị mặc định. Giá trị được truyền vào theo dạng ByVal, để tham số được truyền vào theo dạng ByRef cần dùng ký tự & 4.5.6. Hàm (tt):  4.5.6. Hàm (tt) Ví dụ: function foo() { echo "In foo() "; } function bar($arg = '') { echo "In bar(); argument: '$arg'"; } function echoit($string) { echo $string; } $func = 'foo'; $func(); // This calls foo() $func = 'bar'; $func('test'); // This calls bar() $func = 'echoit'; $func('test'); // This calls echoit() 4.5.7. Kết nối với MySQL:  4.5.7. Kết nối với MySQL $db = mysql_connect('localhost', 'root', 'root') or die(‘Can not connect to server’); mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); mysql_select_db(‘mydb’, $db) or die(‘DB not found’); $sql = ‘SELECT * FROM mytable WHERE field2 < 100’; $rs = mysql_query($sql); for ($i = 0; $i < mysql_num_rows($rs), $i++) { $rc = mysql_fetch_array($rs); echo $rc[‘field1’]; echo $rc[1]; echo $rc[‘field3’]; } Tài liệu tham khảo:  Tài liệu tham khảo Phạm Hữu Khang, Hoàng Đức Hải, Xây dựng ứng dụng Web bằng PHP & MySQL, NXB Mũi Cà Mau php_manual_en_2007.chm

Add a comment

Related presentations

Related pages

Tổng quan về Unity 3d - Lập trình - Trang cá nhân TungDominico

... còn nếu là người dùng free thì các bạn chọn kích hoạt qua web, chỉ cần có kết nối mạng internet, ... khong ve, neu time le ...
Read more

HTML: Tổng quan về JavaScript - KỸ THUẬT LẬP TRÌNH

... Tổng quan về JavaScript. ... Khi trang web load xuống nó được trình duyệt ... n ( new line), t (tab), b (BackSpace), & (dấu ...
Read more

Bài cơ bản 2. Hướng dẫn lập trình web - Giới thiệu tổng ...

Lap trinh web 1 Bai 01 Tong quan ve Internet va Web ... Hoc lap trinh 4,492 ... TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH WEB PHP ...
Read more

bai giang,tai lieu, lap trinh web, jsp,pham huu khang ...

... lap trinh web, ... de tai,nghien cuu tac dung duoc ly,thuc nghem tren soi tiet nieu va phan,lap chat co ... do an tot nghiep,tong quan ve he thong ...
Read more

LẬP TRÌNH WEB ASP.NET 01 ASP NET - YouTube

Lap trinh web 1 Bai 01 Tong quan ve Internet va Web ... TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH WEB PHP ... Try something new! Loading ...
Read more

Tổng quan về Hệ điều hành Windows 8 (Phần 7)

... cung cấp một New InPrivate Tab cho duyệt web an toàn và ... tong quan ve he dieu hanh ... xem phin quan he that va nhanh ...
Read more

Bài 7: Tổng quan về WordPress và các chức năng chính

... cũng có các tính năng tương đương New, Post ... Trong bài hướng dẫn Tổng quan về WordPress và ... Hoc lap trinh web; Khoa hoc ...
Read more

Quân đội nhân dân - qdnd.vn

qdnd,quan doi nhan dan,quan uy trung uong,quân ủy trung ương,quân đội nhân dân, qdnd.vn, quốc phòng,quoc phong, ... CHƯƠNG TRÌNH VIDEO.
Read more