PHP
Giới thiệu về PHP
PHP (Hypertext Preprocessor)
Là ngôn ngữ script chạy trên server (Server
Scripting)
Là mã nguồn mở, chạy được trên nhiều
platforms (Unix, Linux, Windows)
PHP scripts:
• chứa text, thẻ HTML, script • trả về kết quả cho trình duyệt một plain HTML
2
Giới thiệu về PHP (tt)
Lịch sử phát triển
PHP (1994): được phát triển để phát sinh các form đăng
nhập sử dụng giao thức HTTP của Unix
PHP 2 (1995): script server, hỗ trợ CSDL, upload file, khai báo biến, mảng, hàm đệ quy, câu điều kiện, biểu thức, …
PHP 3 (1998): hỗ trợ ODBC, đa hệ điều hành, giao thức
email (SNMP, IMAP)
PHP 4 (2000): trở thành một thành phần độc lập cho các
webserver
PHP 5 (2005): bổ sung Zend Engine II hỗ trợ lập trình
HĐT, XML, SOAPcho Web Services, SQLite
PHP 7.1.0: Phiên bản mới nhất 8/2016
3
Giới thiệu về PHP (tt)
Tại sao PHP?
Phần mềm mã nguồn mở, miễn phí Chạy trên nhiều platforms khác nhau (Unix,
Linux, Windows) • Tương thích với hầu hết các web server: Apache,
IIS, Caudium, Netscape Enterprise Server
• Tương thích với hầu hết các HQT CSDL: MySQL,
Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC, etc.
Dễ học và phát triển nhanh các ứng dụng trên
Web
Được sử dụng rộng rãi trong môi trường phát
4
triển ứng dụng Web
Giới thiệu về PHP (tt)
5
Giới thiệu về PHP (tt)
Làm thế nào để chạy PHP
Cài đặt PHP
• http://www.php.net/downloads.php
Download web server Apache
• http://httpd.apache.org/download.cgi
Cài đặt MySQL • www.mysql.com
Hoặc sử dụng các chương trình đã đóng gói sẵn: Appserv, Wamp, Xampp, Vertrigo …
6
Giới thiệu về PHP (tt)
Cơ chế hoạt động của WebServer
7
PHP nâng cao
HTTP header
HTTP header
Http header là các thông tin điều khiển
nằm trong các http request, http response
Chứa các chỉ thị báo cho trình
duyệt/server Chuyển qua trang khác Không hiển thị file php Không lưu vào cache
10
HTTP header
Xem http header bằng FireBug
Mở firefox, nhấn F12 để bật FireBug Gõ địa chỉ 1 trang web Xem header trong cửa sổ FireBug
11
HTTP header
Xem http header bằng LiveHTTPHeaders
(tiện ích mở rộng của Firefox)
http://livehttpheaders.mozdev.org
Request header
Host
Địa chỉ server đang truy cập
Header Description
User-Agent Chứa thông tin về browser và HĐH
Accept Các kiểu dữ liệu mà browser chấp nhận
Accept-Language Chỉ ra những ngôn ngữ để server đáp ứng
Accept-Encoding
Chỉ ra các kiểu file compress để server nén dữ liệu
Accept-Charset Những character set mà browser chấp nhận
Connection Chỉ ra các trạng thái kết nối
Cookie
Danh sách các biến cookie đã được tạo trước đây
Referer
Địa chỉ của trang web mà từ đó link đến trang hiện tại
13
……………..
Reponse header
Cache-Control
Thông báo cho browser có cache dữ liệu hay không
Header Description
Content-Type Chỉ định kiểu MIME của tài liệu
Content-Language Ngôn ngữ trong nội dung trả về
Expires Chỉ định thời gian nội dung trả về sẽ hết hạn
Last-Modified Thời điểm tài liệu cập nhật lần gần đây nhất
Content-Encoding Kiểu nén dữ liệu gửi về browser
Server Tên của server
Content-Length Kích thước của tài liệu
Set-cookie
Tập các biến cookie mà server gửi đến browser
14
Location Chuyển hướng sang trang khác
HTTP status code
2xx: request thành công 3xx: chuyển hướng đến trang khác 4xx: có lỗi xảy ra trong request 5xx: server bị lỗi Một số status code thường gặp
200: OK, được gửi trong response thì request
thành công
302: tạm chuyển đến trang khác 400: bab request; 401: unauthorized;
403: forbidden;
404: trang không tìm thấy
500: internal server error
15
Ứng dụng của HTTP Header
Chuyển hướng (redirection): yêu cầu trình
duyệt chuyển sang trang khác Cú pháp: header(“location:url”) VD:
16
Ứng dụng của HTTP Header
Chuyển hướng (redirection): VD:
Nếu browser là IE thì chuyển đến trang welcome.html, ngược lại chuyển đến welcome1.html
header("location:welcome.html");
0) else header("location:welcome1.html"); ?>
17
Ứng dụng của HTTP Header
Content-type: dùng để báo cho browser kiểu
dữ liệu mà webserver đang trả về cho browser Cú pháp:
header(“content-type:MimeType”)
18
Ứng dụng của HTTP Header
Content-type: VD
19
Ứng dụng của HTTP Header
Một số kiểu Mimetype
Mô tả
File word
File pdf
Mimetype application/msword application/pdf application/vnd.ms-excel File excel Application/zip
File zip
20