Bài giảng Lập trình và thiết kế Website - Bài 9: PHP nâng cao

ppt 25 trang huongle 3870
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình và thiết kế Website - Bài 9: PHP nâng cao", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_lap_trinh_va_thiet_ke_website_bai_9_php_nang_cao.ppt

Nội dung text: Bài giảng Lập trình và thiết kế Website - Bài 9: PHP nâng cao

  1. Lập trình và Thiết kế Web 1 Bài 9 PHPPHP nângnâng caocao KhoaKhoa CNTTCNTT –– ĐH.KHTNĐH.KHTN © 2007 Khoa Công nghệ thông tin
  2. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung § Kỹ thuật Upload File bằng PHP § Kỹ thuật gửi mail bằng PHP § Sử dụng Cookie trong PHP § Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  3. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung § Kỹ thuật Upload File bằng PHP § Kỹ thuật gửi mail bằng PHP § Sử dụng Cookie trong PHP § Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  4. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Kỹ thuật Upload File bằng PHP § Cơ chế Upload File § Thiết kế Form để Upload File § Thiết kế trang xử lý File được upload trên server § Kiểm tra lỗi, định dạng, kích thước File upload § Vấn đề quyền truy cập file © 2007 Khoa CNTT - ĐHKHTN
  5. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Cơ chế Upload File Yêu cầu trang upload.php Webserver Internet or Intranet Disk driver Upload.php • $_FILES[“file”]["name"] • $_FILES[“file”]["type"] • $_FILES[“file”]["size"] • $_FILES[“file”]["tmp_name"] • $_FILES["file”]["error"] © 2007 Khoa CNTT - ĐHKHTN
  6. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Thiết kế Form để Upload File § Thiết lập thuộc tính Form – Method = POST – Enctype = multipart/form-data UploadForm.htm © 2007 Khoa CNTT - ĐHKHTN
  7. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao ThiếtThiết kếkế trangtrang xửxử lýlý FileFile đượcđược uploadupload trêntrên serverserver move_uploaded_file(tmp_name, saved_name) Upload.php ”; echo "Type: " . $_FILES["ProductImg"]["type"] . “ ”; echo "Size: " . ($_FILES["ProductImg"]["size“]/1024) . “Kb ”; echo “Temp. Stored in: " . $_FILES["ProductImg"]["tmp_name"]; ?> © 2007 Khoa CNTT - ĐHKHTN
  8. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao KiểmKiểm tratra lỗi,lỗi, địnhđịnh dạng,dạng, kíchkích thướcthước FileFile uploadupload § Lưu ý : – $_FILES[“ ”][“type”] • “image/gif” • “image/jpeg” Firefox nhận đây là file jpeg • “image/pjpeg” IE nhận đây là file jpeg – $_FILES[“ ”][“size”] : Kích thước file tính theo byte – $_FILES[“ ”][“error”] : Mã lỗi khi upload File • = 0 : Không có lỗi • > 0 : Có lỗi © 2007 Khoa CNTT - ĐHKHTN
  9. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Vấn đề về quyền truy cập File Cấp quyền cho thư mục /upload PHP Warning: move_uploaded_file(upload/14.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in. Account IUSR_XXX Lưu ý : • Chỉ cấp quyền ghi cho thư mục cần thiết • Không cấp quyền ghi cho thư mục WebRoot © 2007 Khoa CNTT - ĐHKHTN
  10. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung § Kỹ thuật Upload File bằng PHP § Kỹ thuật gửi mail bằng PHP § Sử dụng Cookie trong PHP § Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  11. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao KỹKỹ thuậtthuật gửigửi EmailEmail bằngbằng PHPPHP § Sử dụng thư viện open source: PHP Mailer § Chép 3 file: class.phpmailer.php, class.smtp.php, phpmailer.lang-en.php vào thư mục web của site © 2007 Khoa CNTT - ĐHKHTN
  12. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao KỹKỹ thuậtthuật gửigửi EmailEmail bằngbằng PHPPHP § Gởi email sử dụng Mail Server của GMail © 2007 Khoa CNTT - ĐHKHTN
  13. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung § Kỹ thuật Upload File bằng PHP § Kỹ thuật gửi mail bằng PHP § Sử dụng Cookie trong PHP § Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  14. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Cookie – Giới thiệu $_COOKIE setcookie Client Webserver § Là 1 tập tin được server lưu xuống máy của client § Mỗi lần client gửi request 1 trang web, đồng thời sẽ gửi kèm file cookie đã lưu lần trước lên server § Việc xử lý thông tin (lưu, lấy) trong cookie do server thực hiện § Thường được sử dụng để lưu thông tin cá nhân của client © 2007 Khoa CNTT - ĐHKHTN
  15. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Cookie – Cú pháp sử dụng § Lệnh ghi cookie setcookie(name, value, expire, path, domain); setrawcookie(name, value, expire, path, domain); • name : Tên cookie • value : Giá trị cookie • expire : Thời điểm mà cookie hết hiệu lực • path : Đường dẫn trên server mà cookie có hiệu lực • domain : Xác định tên miền mà cookie được gởi đi • Bắt buộc phải xuất hiện trước thẻ § Lấy giá trị cookie echo $_COOKIE[“cookieName"]; § Xóa cookie setcookie(“cookieName", "",© 2007 time() Khoa CNTT - ĐHKHTN-3600);
  16. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Cookie – Ví dụ $_COOKIE[fieldName] Lưu username & password setcookie Client Webserver © 2007 Khoa CNTT - ĐHKHTN
  17. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Nội dung § Kỹ thuật Upload File bằng PHP § Kỹ thuật gửi mail bằng PHP § Sử dụng Cookie trong PHP § Sử dụng Session trong PHP © 2007 Khoa CNTT - ĐHKHTN
  18. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session $_SESSION[sessionVar] session_start Client Webserver § Là thông tin về client được server lưu trên máy của server § Sử dụng session lưu định danh duy nhất cho từng client § Mục đích lưu biến dữ liệu dùng chung cho nhiều trang trong 1 phiên làm việc của client © 2007 Khoa CNTT - ĐHKHTN
  19. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session – Cú pháp sử dụng § Khởi động Session session_start(); – Bắt buộc phải xuất hiện trước thẻ § Ghi & Đọc giá trị Session $_SESSION[“sessionVar”] = $value ; $_SESSION[“sessionVar”] = array(); $_SESSION[“sessionVar”][] = $value; if (isset($_SESSION[“sessionVar"]) echo $_SESSION[“sessionVar"]; § Hủy Biến trong Session unset($_SESSION[“sessionVar”]); § Hủy cả Session session_destroy(); © 2007 Khoa CNTT - ĐHKHTN
  20. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session – Ví dụ : Đếm số lần duyệt trang web © 2007 Khoa CNTT - ĐHKHTN
  21. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session - Ứng dụng cho Login § Làm thế nào để ngăn không cho người dùng truy cập vào các trang web nếu chưa đăng nhập? § Ý tưởng – Dùng các biến Session để lưu trạng thái đăng nhập của người dùng: $_SESSION[“IsLogin”] = true/false : Lưu trạng thái đăng nhập $_SESSION[“Username”] : Lưu Tên đăng nhập $_SESSION[“Authentication”] : Lưu Loại quyền đăng nhập © 2007 Khoa CNTT - ĐHKHTN
  22. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session - Ứng dụng cho Login – Gồm 4 bước 1. Tạo trang login.htm yêu cầu người dùng đăng nhập. 2. Tạo trang validateuser.php xử lí thông tin đăng nhập từ trang login.htm – Kết nối với CSDL, kiểm tra thông tin đăng nhập có hợp lệ hay không ? • Nếu không hợp lệ thì cho redirect về trang login.htm. • Nếu hợp lệ thì dùng một biến trong Session để lưu trạng thái login thành công – Ví dụ: $_SESSION[“IsLogin”] = true. – Lưu ý: Phải đặt giá trị mặc định cho biến Session này là false khi khởi tạo một Session. 3. Tạo trang logout.php là trang xử lý khi người dùng logout § Reset trạng thái login là chưa đăng nhập ($_SESSION[“IsLogin”] = false). © 2007 Khoa CNTT - ĐHKHTN
  23. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session - Ứng dụng cho Login 4. Trong tất cả các trang muốn bảo mật, thêm đoạn mã sau để kiểm tra người dùng đã đăng nhập hay chưa, nếu chưa thì redirect lại trang login.htm © 2007 Khoa CNTT - ĐHKHTN
  24. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao Session - Ứng dụng cho Giỏ hàng (shopping cart) Xóa biến trong Session {‘Book1’, ‘Book2’, ‘Book3’} Session : Array : Mathang [ ] Ghi xuống CSDL Session : Array : Soluong[ ] {13, 2, 7} © 2007 Khoa CNTT - ĐHKHTN
  25. Lập trình và Thiết kế Web 1 – Bài 9 : PHP nâng cao So sánh : Session – Cookie – Database Cookie1 Session 1 Cookie2 Client 1 Web Server Session 2 Session 3 Internet or Intranet Client 2 Database Server Cookie3 Client 3 Thông tin chia sẽ Vị trí Thời gian Số client Số trang web lưu trữ tồn tại sử dụng Database/File Server Dài Nhiều Nhiều Session Server Ngắn 1 Nhiều Cookies Client Dài 1 Nhiều © 2007 Khoa CNTT - ĐHKHTN