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
triển ứng dụng Web
4
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
• />
Download web server Apache
• />
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)
Request header
Header
Description
Host
Địa chỉ server đang truy cập
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
Header
Description
Cache-Control
Thông báo cho browser có cache dữ liệu hay
không
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
Location
Chuyển hướng sang trang khác
Set-cookie
Tập các biến cookie mà server gửi đến browser
14
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:
header(“location:login.php”)
?>
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
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')>0)
header("location:welcome.html");
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
// Chuẩn bị xuất 1 file pdf
header('Content-type: application/pdf');
// có tên là downloaded.pdf
header('Content-Disposition: attachment;
filename="downloaded.pdf"');
// nội dung từ file pdf nguồn test.pdf
readfile('test.pdf'); ?>
19
Ứng dụng của HTTP Header
Một số kiểu Mimetype
Mimetype
application/msword
Mô tả
application/pdf
File pdf
application/vnd.ms-excel
File excel
Application/zip
File zip
File word
20