intTypePromotion=3

Bài giảng Lập trình Web: Chương 5.2 - Trần Công Án

Chia sẻ: Thanh Hoa | Ngày: | Loại File: PDF | Số trang:39

0
56
lượt xem
7
download

Bài giảng Lập trình Web: Chương 5.2 - Trần Công Án

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Lập trình Web - Chương 5: PHP & MySQL (MySQL)" cung cấp cho người đọc các kiến thức về PHP – Một số kỹ thuật bao gồm: Upload tập tin, lưu hình ảnh vào CSDL, kỹ thuật phân trang, AJAX – Asynchronous JavaScript and XML. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình Web: Chương 5.2 - Trần Công Án

  1. CT428. Lập Trình Web Chương 5. PHP & MySQL (PHP Adv.) Giảng viên: Trần Công Án (tcan@cit.ctu.edu.vn) Bộ môn Mạng máy tính & Truyền thông Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ 2013 – 2014
  2. PHP – Một Số Kỹ Thuật
  3. [CT428] Chương 5.2 – PHP Adv Nội Dung Upload tập tin Lưu hình ảnh vào CSDL Kỹ thuật phân trang AJAX – Asynchronous JavaScript and XML TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 3
  4. [CT428] Chương 5.2 – PHP Adv Upload tập tin Upload Tập Tin I Các bước để thực hiện upload tập tin: 1. Tạo form với điều khiển file upload và thiết đặt mã hóa thích hợp (browser). 2. Kiểm tra sự hợp lệ của tập tin – lỗi, định dạng, kích thước, . . . (server) 3. Xử lý lưu file upload lên server (server). TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 4
  5. [CT428] Chương 5.2 – PHP Adv Upload tập tin Thiết kế form Upload file Thiết Kế Form Upload File (Browser) I Thiết lập thuộc tính form: I Method: POST I Enctype: multipart/form-data /Applications/XAMPP/xamppfiles/h…/LTW428/php-adv/upload-form.html Page 1 of 1 Saved: 3/22/14, 1:22:15 Printed For: Tran Cong An 1 2 3 4 5 6 7 8 TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 5
  6. [CT428] Chương 5.2 – PHP Adv Upload tập tin Kiểm tra lỗi, định dạng, . . . Kiểm Tra Lỗi, Định Dạng, . . . (Server) I Một số thuộc tính liên quan đến tập tin được upload có thể truy cập từ PHP: I $_FILES["filename "]["name"]: tên của tập tin được upload. I $_FILES["filename "]["type"]: loại của tập tin. I $_FILES["filename "]["size"]: kích thước. I $_FILES["filename "]["tmp_name"]: tên tập tin được upload được lưu tạm trên server. I $_FILES["filename "]["error"]: mã trạng thái (lỗi) của tác vụ upload(0: không lỗi). TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 6
  7. [CT428] Chương 5.2 – PHP Adv Upload tập tin Kiểm tra lỗi, định dạng, . . . Kiểm Tra Lỗi, Định Dạng, . . . (Server) /Users/tcan/Dropbox/Bo mon/Lap t…v/figures/upload-check-error.php Page 1 of 1 Saved: 3/20/14, 20:44:23 Printed For: Tran Cong An 1 TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 7
  8. [CT428] Chương 5.2 – PHP Adv Upload tập tin Lưu file lên server Lưu File Lên Server (Server) I Khi upload form được submit, tập tin sẽ được lưu trong một thư mục tạm ($_FILES["filename"]["tmp_name"]). I Một số hàm liên quan đến việc lưu file: I move_uploaded_file(temp_file, persistent_file): di chuyển file từ vị trí tạm thời sang một vị trí cố định trên server. I file_exists(filename): kiểm tra sự tồn tại của file. I Chú ý: phải gán quyền ghi cho người dùng đối với thư mục lưu tập tin trên server. TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 8
  9. [CT428] Chương 5.2 – PHP Adv Upload tập tin Lưu file lên server Lưu File Lên Server – Ví Dụ /Applications/XAMPP/xamppfiles/htdocs/LTW428/php-adv/upload.php Page 1 of 1 Saved: 3/20/14, 21:28:35 Printed For: Tran Cong An 1 TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 9
  10. [CT428] Chương 5.2 – PHP Adv Upload tập tin Lưu file lên server Lưu File Lên Server – Ví Dụ TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 10
  11. [CT428] Chương 5.2 – PHP Adv Lưu hình ảnh vào CSDL Các bước để lưu ảnh vào CSDL Lưu Hình Ảnh Vào CSDL I Trường chứa hình ảnh trong table phải có kiểu blob. I Các bước để lưu vào CSDL: I Kiểm tra sự hợp lệ của tập tin được upload: type (dùng biến $_FILES), size (dùng hàm getimagesize()), . . . I Đọc nội dung của tập tin vào 1 biến (dùng hàm file_get_contents() và thêm ký tự ‘\’ vào trước các ký tự đặc biệt bằng hàm addslashes(). I Chèn mẩu tin mới vào table, có sử dụng biến chứa nội dung h/ảnh. TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 11
  12. [CT428] Chương 5.2 – PHP Adv Lưu hình ảnh vào CSDL Cấu trúc bảng và form Lưu Hình Ảnh Vào CSDL – Table & Form I Giả sử ta có cấu trúc của table dùng để lưu hình ảnh như sau: mysql> describe images; +-------+-----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------+------+-----+---------+-------+ | iname | char(100) | NO | PRI | NULL | | | image | longblob | NO | | NULL | | /Applications/XAMPP/xamppfiles/h…hp-adv/upload-image-db-form.html Page 1 of 1 Saved:+-------+-----------+------+-----+---------+-------+ 3/21/14, 11:27:32 Printed For: Tran Cong An 2 rows in set (0.48 sec) form: I1 Upload mysql> 2 3 5 6 7 8 9 TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 12
  13. [CT428] Chương 5.2 – PHP Adv Lưu hình ảnh vào CSDL Nối kết đến hệ quản trị CSDL Lưu Hình Ảnh Vào CSDL –/Applications/XAMPP/xamppfiles/htdocs/L Nối Kết Saved: 3/18/14, 0:46:55 2 require_once 'connection.inc'; 3 4 $conn = @mysql_connect($hostname, $username, $password) 5 or die("Unable connect to MySQL: " . mysql_error() .""); 6 7 mysql_select_db($database, $conn) or 8 die("Unable to select DB: " . mysql_error() . ""); 9 ?> TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 13
  14. [CT428] Chương 5.2 – PHP Adv Lưu hình ảnh vào CSDL Mã PHP để chèn hình ảnh vào CSDL /Applications/XAMPP/xamppfiles/h…LTW428/php-adv/upload-img-db.php Page 1 of 1 Lưu Hình Ảnh Vào CSDL – PHP Saved: 3/21/14, 11:26:44 Printed For: Tran Cong An 1
  15. [CT428] Chương 5.2 – PHP Adv Lưu hình ảnh vào CSDL Hiển thị hình ảnh được lưu trong CSDL Hiển Thị Hình Ảnh Được Lưu Trong CSDL I Đọc và hiển thị hình ảnh từ CSDL: I Gán giá trị cho thuộc tính src của thẻ là nội dung của ảnh. ⇒ Cần phải có 1 PHP script thực hiện việc đọc và trả về nội dung hình ảnh từ CSDL. Script này sẽ được chèn vào chỗ giá trị của thuộc tính src. (get_img.php là PHP script, id là khóa hay tên của hình ảnh, dùng để truy vấn hình ảnh từ CSDL) TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 15
  16. [CT428] Chương 5.2 – PHP Adv Lưu hình ảnh vào CSDL Hiển thị hình ảnh được lưu trong CSDL /Applications/XAMPP/xamppfiles/htdocs/LTW428/php-adv/get_img.php Đọc Và Trả Về Dữ Liệu Hình Ảnh Từ CSDL Page 1 of 1 Saved: 3/21/14, 11:34:31 Printed For: Tran Cong An 1
  17. [CT428] Chương 5.2 – PHP Adv Lưu hình ảnh vào CSDL Hiển thị hình ảnh được lưu trong CSDL Đọc Và Trả Về Dữ Liệu Hình Ảnh Từ CSDL TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 17
  18. [CT428] Chương 5.2 – PHP Adv Kỹ thuật phân trang Các bước trong kỹ thuật phân trang Kỹ Thuật Phân Trang I Tổ chức phân trang hiển thị kết quả thường gồm các bước: 1. Tính tổng số mẩu tin cần hiển thị: $total_record. 2. Xác định số lượng mẫu tin tối đa được hiển thị trên trang: $reccord_per_page. 3. Lưu giữ trang hiện hành (dùng biến ẩn – hidden, hoặc truyền trực tiếp qua phương thức GET): $page 4. Truy vấn CSDL: dùng mệnh đề LIMIT start number_of_record để chỉ định số mẫu tin cần truy vấn. 5. Xác định liên kết đến Trang kế tiếp hoặc Trang trước đó. TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 18
  19. [CT428] Chương 5.2 – PHP Adv Kỹ thuật phân trang Ví dụ – Tìm kiếm sách với phân trang Ví Dụ – Tìm Kiếm Sách Với Phân Trang TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 19
  20. [CT428] Chương 5.2 – PHP Adv Kỹ thuật phân trang Ví dụ – Tìm kiếm sách với phân trang Tổ chức I Trang chính: I Hiển thị form để nhập từ khóa + Nút tìm kiếm I Gọi hàm search() để tìm sách, hiển thị kết quả tìm kiếm, và lấy thông tin phân trang. I Gọi hàm page_nav_links() để tạo l/kết đến Trang trước, Trang kế. I Các hàm PHP phụ trợ: I compute_paging(search_cond ): tính các thông số phân trang. I search(search_kw ): tìm kiếm, hiển thị kết quả, và trả về các thông số phân trang (có sử dụng hàm compute_paging()). I page_nav_links(paging_info, search_kw ): tạo các liên kết đến Trang trước, Trang kế. TS. Trần Công Án (Khoa CNTT&TT) [CT428] Chương 5.2 – PHP Adv 20

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản