Giáo trình PHP & MySQL - Trình độ: Cao đẳng - Trường Cao đẳng cơ giới Ninh Bình

doc 49 trang Gia Huy 16/05/2022 2810
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình PHP & MySQL - Trình độ: Cao đẳng - Trường Cao đẳng cơ giới Ninh Bình", để 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:

  • docgiao_trinh_php_mysql_trinh_do_cao_dang_truong_cao_dang_co_gi.doc

Nội dung text: Giáo trình PHP & MySQL - Trình độ: Cao đẳng - Trường Cao đẳng cơ giới Ninh Bình

  1. BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔNG TRƯỜNG CAO ĐẲNG CƠ GIỚI NINH BÌNH GIÁO TRÌNH MÔ ĐUN: PHP &MYSQL NGHỀ: LẬP TRÌNH MÁY TÍNH TRÌNH ĐỘ: CAO ĐẲNG NGHỀ Ban hành kèm theo Quyết định số: /QĐ- ngày .tháng .năm của Trường Cao đẳng nghề Cơ giới Ninh Bình Ninh Bình, năm 2016 1
  2. TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. 2
  3. LỜI GIỚI THIỆU PHP ban đầu được viết tắt bởi cụm từ Personal Home Page, và được phát triển từ năm 1994 bởi Rasmus Lerdorf. Lúc đầu chỉ là một bộ đặc tả Perl, được sử dụng để lưu dấu vết người dùng trên các trang web. Sau đó, Rasmus Lerdorf đã phát triển PHP như là một máy đặc tả (Scripting engine). Vào giữa năm 1997, PHP đã được phát triển nhanh chóng trong sự yêu thích của nhiều người. PHP đã không còn là một dự án cá nhân của Rasmus Lerdorf và đã trở thành một công nghệ web quan trọng. Zeev Suraski và Andi Gutmans đã hoàn thiện việc phân tích cú pháp cho ngôn ngữ để rồi tháng 6 năm 1998, PHP3 đã ra đời (phiên bản này có phần mở rộng là *.php3). Cho đến tận thời điểm đó, PHP chưa một lần được phát triển chính thức, một yêu cầu viết lại bộ đặc tả được đưa ra, ngay sau đó PHP4 ra đời (phiên bản này có phần mở rộng không phải là *.php4 mà là *.php). PHP4 nhanh hơn so với PHP3 rất nhiều. PHP bây giờ được gọi là PHP Hypertext PreProcesor. Đề cương bài giảng này được chúng tôi biên soạn theo chương trình thẩm định của Nhà trường, gồm 5 bài: Bài 1. Tổng quan về PHP và MYSQL Bài 2. Truy cập cơ sở dữ liệu MYSQL Bài 3. Lập trình PHP căn bản Bài 4. Lập trình ứng dụng WEB với PHP Bài 5. Xây dựng một số Website mẫu Trong quá trình xây dựng không thể tránh khỏi những thiếu sót rất mong nhận được sự đóng ghóp, xây dựng từ độc giả. Ninh Bình, ngày tháng năm Tham gia biên soạn 1. Chủ biên – Th.S Vũ Ánh Dương 2. Th.S Nguyễn Trung Cương 3. Th.S Nguyễn Xuân Khôi 3
  4. MỤC LỤC LỜI GIỚI THIỆU 3 BÀI 1. TỔNG QUAN VỀ PHP VÀ MYSQL 6 1. Giới thiệu 6 2. Kiến trúc cơ bản client/server 8 3. Cài đặt các công cụ cần thiết 9 4. Tạo một Database 11 BÀI 2. TRUY CẬP CƠ SỞ DỮ LIỆU MYSQL 13 1. Tạo trang “Hello PHP” đơn giản đầu tiên 13 2. Truy xuất cơ sở dữ liệu bằng lệnh PHP 14 3. Truy xuất cơ sở dữ liệu dùng phpMyadmin 17 BÀI 3. LẬP TRÌNH PHP CĂN BẢN 20 1. Khai báo và sử dụng biến PHP 20 2. Sử dụng các cấu trúc điều khiển 21 3. Khai báo và sử dụng các hàm xử lý xâu chuỗi 26 4. Thao tác với tập tin 28 BÀI 4. LẬP TRÌNH ỨNG DỤNG WEB VỚI PHP 31 1. Sử dụng các phương thức truyền dữ liệu từ client lên server 31 2. Làm việc với Cookies 34 3. Sử dụng Session trong PHP 37 4. Sử dụng Ajax 40 5. Thao tác với Email 43 BÀI 5. XÂY DỰNG MỘT SỐ WEBSITE MẪU 45 1. Xây dựng ứng dụng thương mại điện tử 45 2. Ứng dụng quản lý tin tức 47 4
  5. MÔ ĐUN PHP & MY SQL Mã số mô đun: MĐ 29 Thời gian mô đun: 160 giờ (Lý thuyết: 42 giờ; Thực hành: 118 giờ) I. VỊ TRÍ, TÍNH CHẤT CỦA MÔ ĐUN - Vị trí: Là mô đun học sau các môn học mô đun lý thuyết cơ sở. - Tính chất: Là mô đun chuyên môn nghề. II. MỤC TIÊU MÔ ĐUN - Tạo và quản lý được cơ sở dữ liệu mySQL - Kết nối được đến cơ sở dữ liệu mySQL quan ngôn ngữ PHP - Tạo các ứng dụng web chuyên nghiệp bằng ngôn ngữ PHP - Quản trị được cơ sở dữ liệu qua công cụ phpMyadmin - Cẩn thận, tỷ mỉ, chính xác, chủ động, sáng tạo trong học tập, đảm bảo an toàn cho người và trang thiết bị. III. NỘI DUNG MÔ ĐUN 1. Nội dung tổng quát và phân phối thời gian Thời gian TT Tên các bài trong mô đun Tổng Lý Thực Kiểm số Thuyết hành Tra* 1 Bài 1. Tổng quan về PHP và MYSQL 10 2 8 2 Bài 2. Truy cập cơ sở dữ liệu MYSQL 30 5 24 1 3 Bài 3. Lập trình PHP căn bản 40 12 26 2 4 Bài 4. Lập trình ứng dụng WEB với PHP 40 12 27 1 5 Bài 5. Xây dựng một số Website mẫu 40 11 27 2 Cộng 160 42 112 6 5
  6. BÀI 1. TỔNG QUAN VỀ PHP VÀ MYSQL A- MỤC TIÊU CỦA BÀI Học xong bài này, học viên có khả năng: - Trình bày được kiến thức cơ bản về client/server; - Cài đặt và sử dụng được phần mềm apache trong môi trường Windows, cài đặt hệ quản trị CSDL MySQL; - Tạo được CSDL với MySQL, các thao tác cơ bản với cơ sở dữ liệu trong phpMyadmin. - Rèn luyện tính cẩn thận, tỉ mỉ, chính xác, chủ động, sáng tạo trong học tập và đảm bảo an toàn cho người và trang thiết bị. B- NỘI DUNG 1. Giới thiệu 1.1. PHP là gì ? Cái tên PHP ban đầu được viết tắt bởi cụm từ Personal Home Page, và được phát triển từ năm 1994 bởi Rasmus Lerdorf. Lúc đầu chỉ là một bộ đặc tả Perl, được sử dụng để lưu dấu vết người dùng trên các trang web. Sau đó, Rasmus Lerdorf đã phát triển PHP như là một máy đặc tả (Scripting engine). Vào giữa năm 1997, PHP đã được phát triển nhanh chóng trong sự yêu thích của nhiều người. PHP đã không còn là một dự án cá nhân của Rasmus Lerdorf và đã trở thành một công nghệ web quan trọng. Zeev Suraski và Andi Gutmans đã hoàn thiện việc phân tích cú pháp cho ngôn ngữ để rồi tháng 6 năm 1998, PHP3 đã ra đời (phiên bản này có phần mở rộng là *.php3). Cho đến tận thời điểm đó, PHP chưa một lần được phát triển chính thức, một yêu cầu viết lại bộ đặc tả được đưa ra, ngay sau đó PHP4 ra đời (phiên bản này có phần mở rộng không phải là *.php4 mà là *.php). PHP4 nhanh hơn so với PHP3 rất nhiều. PHP bây giờ được gọi là PHP Hypertext PreProcesor. 1.2. Tại sao phải sử dụng PHP Như chúng ta đã biết, có rất nhiều trang web được xây dựng bởi ngôn ngữ HTML (HyperText Markup Language). Đây chỉ là những trang web tĩnh, 6
  7. nghĩa là chúng chỉ chứa đựng một nội dung cụ thể với những dòng văn bản đơn thuần, hình ảnh ,và có thể được sự hỗ trợ bởi ngôn ngữ JavaScript, hoặc Java Apple. Những trang web như vậy người ta thường gọi là client- side. Tuy nhiên, Internet và Intranets đã được sử dụng cho các ứng dụng cần tới cơ sở dữ liệu. Các trang ứng dụng như vậy được gọi là trang web động, bởi vì nội dung của chúng luôn thay đổi tùy thuộc vào dữ liệu và người sử dụng. PHP là ngôn ngữ làm được những điều như vậy. Bằng cách chạy chương trình PHP trên máy chủ Web server, bạn có thể tạo ra các ứng dụng có sự tương tác với cơ sở dữ liệu để tạo ra những trang web và đây được gọi là trang web động. Chúng ta hãy xem xét cách hoạt động của trang web được viết bằng ngôn ngữ HTML và PHP như thế nào. - Với các trang HTML: Khi có yêu cầu tới một trang web từ phía người sử dụng (browser). Web server thực hiệu ba bước sau: + Đọc yêu cầu từ phía browser, + Tìm trang web trên server. + Gửi trang web đó trở lại cho browser (nếu tìm thấy) qua mạng Internet hoặc Intranet . - Với các trang PHP: Khác với các trang HTML, khi một trang PHP được yêu cầu, web server phân tích và thi hành các đoạn mã PHP để tạo ra trang HTML. Điều đó được thể hiện bằng bốn bước sau: + Đọc yêu cầu tử phía browser + Tìm trang web trên server + Thực hiện các đoạn mã PHP trên trang web đó để sửa đổi nội dung của trang 7
  8. + Gửi trở lại nội dung cho browser (đây là trang HTML có thể hiển thị được bởi trình duyệt Internet Explorer hoặc trình duyệt nào đó). Tóm lại, sự khác nhau giữa HTML và PHP là HTML không được thực hiện trên máy chủ Web server còn các trang *.php viết bằng các đoạn mã PHP được thực hiện trên máy chủ Web server do đó nó linh động và mềm dẻo hơn. 1.3. Những điểm mạnh của PHP - PHP thực hiện với tốc độ rất nhanh và hiệu quả .Một Server bình thường có thể đáp ứng được hàng triệu truy cập tới trong một ngày. - PHP hỗ trợ kết nối tới rất nhiều hệ CSDL khác nhau: PostgreSQL,mSQL,Oracle, dbm, filePro ,Hyperware, informix,InterBase, Sybase, Ngoài ra còn hỗ trợ kết nối với ODBC thông qua đó có thể kết nối với nhiều ngôn ngữ khác mà ODBC hỗ trợ. - PHP cung cấp một hệ thống thư viện phong phú : Do PHP ngay từ đầu được thiết kế nhằm mục đích xây dựng và phát triển các ứng dụng trên web nên PHP cung cấp rất nhiều hàm xây dựng sẵn giúp thực hiện các công việc rất dễ dàng : gửi, nhận mail ,làm việc với các cookie, và nhiều thứ khác nữa . - PHP là một ngôn ngữ rất dễ dùng, dễ học và đơn giản hơn nhiều so với các ngôn ngữ khác như Perl, Java. Nếu bạn đã biết ngôn ngữ C thì mọi việc sẽ hoàn toàn thuận lợi. - PHP có thể sử dụng được trên nhiều hệ điều hành, chúng ta có thể viết chúng trên Unix, Lunix và các phiên bản của Windows. Và có thể đem mã PHP này chạy trên các hệ điều hành khác mà không phải sửa đổi lại mã. - PHP là ngôn ngữ mã nguồn mở. 2. Kiến trúc cơ bản client/server Kiến trúc client/server đơn giản nhất là kiến trúc hai tầng. Trong thực tế hầu hết các kiến trúc client/server là kiến trúc hai tầng. Một ứng dụng hai tầng cung cấp nhiều trạm làm việc với một tầng trình diễn thống nhất, tầng này truyền tin với tầng lưu trữ dữ liệu tập trung. 8
  9. Tầng trình diễn thông thường là client, và tầng lưu trữ dữ liệu là server. Hầu hết các ứng dụng Internet như là email, telnet, ftp thậm chí là cả Web là các ứng dụng hai tầng. Phần lớn các lập trình viên trình ứng dụng viết các ứng dụng client/server có xu thế sử dụng kiến trúc này. Trong ứng dụng hai tầng truyền thống, khối lượng công việc xử lý được dành cho phía client trong khi server chỉ đơn giản đóng vai trò như là chương trình kiểm soát luồng vào ra giữa ứng dụng và dữ liệu. Kết quả là không chỉ hiệu năng của ứng dụng bị giảm đi do tài nguyên hạn chế của PC, mà khối lượng dữ liệu truyền đi trên mạng cũng tăng theo. Khi toàn bộ ứng dụng được xử lý trên một PC, ứng dụng bắt buộc phải yêu cầu nhiều dữ liệu trước khi đưa ra bất kỳ kết quả xử lý nào cho người dùng. Nhiều yêu cầu dữ liệu cũng làm giảm hiệu năng của mạng. Một vấn đề thường gặp khác đối với ứng dụng hai tầng là vấn đề bảo trì. Chỉ cần một thay đổi nhỏ đối với ứng dụng cũng cần phải thay đổi lại toàn bộ ứng dụng client và server. 3. Cài đặt các công cụ cần thiết 3.1. Cài đặt XAMPP 3.1.1. Lý thuyết liên quan - Phần mềm Xampp bao gồm máy chủ Apache và Hệ quản trị CSDL MySql. - Mã nguồn chương trình WIP. - Yêu cầu hệ thống: Máy tính chạy hệ điều hành WIN XP hoặc WIN SERSER, Ram >= 512 MB, CPU Pentium >= 1.3 GHz, dung lượng trống của ổ cứng HDD >= 200MB. - Phần mềm Xammp được tải về tại địa chỉ: 3.1.2. Trình tự thực hiện - Nhấp đôi chuột vào phần mềm Xampp trên máy tính để bắt đầu - Bấm nút Next trên giao diện bên dưới để tiếp tục - Chọn các phần mềm cần cài đặt (để nguyên mặc định) và bấm nút Next 9
  10. - Chọn đường dẫn để cài đặt (mặc định là ổ C), tuy nhiên ta có thể cài vào ổ đỉa D hoặc E để khi nếu hệ điều hành bị lỗi thì ứng dụng vẫn không bị mất. - Lựa chọn hướng dẫn cài đặt các mã nguồn, ta bấm nút Next để tiếp tục - Giao diện xác nhận bắt đầu cài đặt, bấm nút Next để tiếp tục cài - Bấm nút Finish để hoàn tất chương trình cài đặt: - Giao diện Control của Xampp (để chạy được ứng dụng dòng Apache và MySQL bấm nút Start để khởi động 2 chương trình này). 3.1.3. Sai hỏng thường gặp nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Khởi động XAMPP lên Xung đột với IIS Thiết lập lại port cho IIS nhưng không mở được hoặc XAMPP Apache và MySQL 3.2. Cài đặt Notepad++ 3.2.1. Lý thuyết liên quan Notepad++ là một chương trình miễn phí dùng để soạn thảo mã nguồn hỗ trợ nhiều ngôn ngữ. Được thiết kế để hoạt động trong môi trường windows với tính năng nổi bật là nhỏ gọn và có tốc độ cao. Ngoài ra, với việc cho phép cài đặt thêm các Plugin sẽ giúp bổ sung thêm nhiều chức năng khác cho Notepad+. Đây còn là giải pháp để thay thế hiệu quả cho trình soạn thảo Notepad của Windows. Notepad++ được tải về tại địa chỉ: 3.2.2. Trình tự thực hiện - Nhấp đôi chuột vào phần mềm NotePad++ trên máy tính để bắt đầu - Bấm nút Next trên giao diện bên dưới để tiếp tục - Chọn các phần mềm cần cài đặt (để nguyên mặc định) và bấm nút Next - Chọn đường dẫn để cài đặt (mặc định là ổ C), tuy nhiên ta có thể cài vào ổ đĩa D hoặc E - Lựa chọn hướng dẫn cài đặt các mã nguồn, ta bấm nút Next - Ấn Finish để kết thúc cài đặt 3.2.3. Sai hỏng thường gặp nguyên nhân và biện pháp khắc phục 10
  11. Sai hỏng Nguyên nhân Biện pháp khắc phục Không tải được NotePad Do mạng Internet Kiểm tra lại mạng về Internet 4. Tạo một Database 4.1. Lý thuyết liên quan - Database: Là một tập hợp dữ liệu có liên quan logic với nhau chứa thông tin về 1 tổ chức nào đó có tổ chức và được dùng chung đáp ứng nhu cầu khai thác thông tin của người dùng. - Hệ quản trị CSDL ( Database Management System - DBMS ): là 1 bộ phần mềm cho phép người sử dụng định nghĩa, tạo lập, bảo trì và điều khiển truy xuất CSDL - Chúng ta sử dụng phpMyAdmin và hệ cơ sở dữ liệu MySQL 4.2. Trình tự thực hiện Trình tự thực hiện Hình ảnh minh họa Ghi chú - Khởi chạy XAMPP, Apache, MySQL - Mở trình duyệt Chrome (FixFox) truy cập vào địa chỉ - Chọn New để tạo database mới 11
  12. - Nhập tên của database và chọn ngôn ngữ của database là utf-8_ general_ci - Chọn Create để tiến hành tạo database - Chọn tên database vừa tạo, để thêm các bảng cho database 4.3. Sai hỏng thường gặp nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chọn nhầm bảng mã cho Không để ý khi chọn Chọn lại bảng mã cho database database Không đăng nhập được Chưa kích hoạt được Mở lại XAMPP và kích vào trang phpMyadmin MySQL hoạt lại MySQL 12
  13. BÀI 2. TRUY CẬP CƠ SỞ DỮ LIỆU MYSQL A- MỤC TIÊU CỦA BÀI Học xong bài này, học viên có khả năng: - Trình bày được các phương pháp truy xuất cơ sở dữ liệu MySQL; - Thực hiện được các lệnh truy xuất CSDL của PHP và truy xuất CSDL từ phpMyadmin trong một số ví dụ theo yêu cầu; - Rèn luyện tính cẩn thận, tỉ mỉ, chính xác, chủ động, sáng tạo trong học tập và đảm bảo an toàn cho người và trang thiết bị. B- NỘI DUNG 1. Tạo trang “Hello PHP” đơn giản đầu tiên 1.1. Lý thuyết liên quan - Cấu trúc một trang html cơ bản Phần đầu của trang . Phần thân của trang - Khối lệnh PHP: PHP được chứa trong khối lệnh - Lệnh echo dùng để in ra trình duyệt dòng văn bản, thông báo Ví dụ: sẽ in ra trình duyệt dòng thông báo “Xin chào” 1.2. Trình tự thực hiện Trình tự Minh họa Ghi chú - Tạo thư mục “Bai1_hello” trong thư 13
  14. mục XAMP/htdoc - Tạo trang hello.php trong thư mục của bài tập - Viết html cho trang hello.php - Khai báo khối lệnh PHP trong phần body của trang Bài tập Hello PHP - Sử dụng hàm để in dòng chữ “Hello PHP” Bài tập Hello PHP - Mở trình duyệt kiểm tra Bai1_hello/hello.php/ kết quả, sửa lỗi (nếu có) 1.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Không in được chữ Sử dụng sai cú pháp PHP Kiểm tra lại đoạn code “Hello PHP” ra trình PHP và kiểm tra cú pháp duyệt 2. Truy xuất cơ sở dữ liệu bằng lệnh PHP 2.1. Lý thuyết liên quan - Hàm mysql_connect( , , ); Hàm này dùng để kết nối đến MySql Server 14
  15. Trong đó: + host:địa chỉ của máy cài MySQL (tên hoặc IP). nếu là máy nội bộ thì dùng localhost + username, password: Là tài khoản và mật khẩu để kết nối + Hàm trả về 1 connection hoặc giá trị false nếu không kết nối được Ví dụ: $conn=mysql_connect("localhost","root","root"); - Hàm mysql_select_db( [,TenKetNoi]); MySQL Server có thể chứa nhiều CSDL, hàm này dùng để chọn CSDL muốn dùng Trong đó: TênDatabase: là tên cơ sở dữ liệu muốn dùng, TênKếtNối là biến connection trả về do hàm mysql_connect. Tên kết nối có thể bỏ qua cũng được. Ví dụ: mysql_select_db("webtintuc",$conn); hoặc mysql_select_db("webtintuc"); Chú ý: Dùng thêm lệnh sau để ấn định bảng mă utf8: mysql_query("SET NAMES 'utf8'", $conn); 2.2. Trình tự thực hiện Trình tự Minh họa Ghi chú - Tạo thư mục “Bai2_dbconnect” trong thư mục XAMP/htdoc - Tạo trang dbconnect.php trong thư mục của bài tập - Viết html cho trang dbconnect.php - Khai báo khối lệnh PHP, tên cơ sở dữ liệu, tên người dùng và mật 15
  16. khẩu truy cập vào cơ sở Bài tập Hello PHP dữ liệu - Sử dụng các hàm để kết nối vào cơ sở dữ liệu trên Bài tập Hello PHP - Kiểm tra trạng thái kết nối in ra kết nối thành công hoặc thất bại không Bài tập Hello PHP thể kết nối tới cơ sở dữ liệu <?php mysql_connect($host, $user, $pass); mysql_select_db($db); 16
  17. mysql_query("SET NAMES 'utf8'"); ?> - Biên dịch trang dbconnect.php và sửa lỗi nếu có 2.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Không kết nối được với Không kết nối được với Kiểm tra lại thông tin kết cơ sở dữ liệu, không in ra cơ sở dữ liệu nối, tên cơ sở dữ liệu kết được Tên loại tin nối 3. Truy xuất cơ sở dữ liệu dùng phpMyadmin 3.1. Sao lưu dữ liệu 3.1.1. Lý thuyết liên quan - Sao lưu dữ liệu là việc tạo ra một bản sao lưu cơ sở dữ liệu trong trường hợp cần để phục hồi lại cơ sở dữ liệu cho website 3.1.2. Trình tự thực hiện - Truy cập vào phpAdmin, - Chọn cơ sở dữ liệu cần truy xuất - Chọn bảng dữ liệu cần sao lưu, hoặc chọn Check All để sao lưu tất cả - Chọn menu Export - Tích vào Save as file, nếu muốn nén dữ liệu chọn Zipped hoặc gzipped trong Compression - Nhấn Go để sao lưu - Chọn Save và đặt tên cho file sao lưu khi xuất hiện thông báo 17
  18. 3.1.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chọn nhầm nút Sao lưu Chọn nhầm Chọn lại nút Export Chọn nhầm cơ sở dữ liệu Chọn nhầm tên Chọn lại cơ sở dữ liệu và cần sao lưu chọn Export 3.2. Phục hồi dữ liệu 3.2.1. Lý thuyết liên quan - Khi cơ sở dữ liệu của website bị lỗi hoặc có vấn đề, lúc này người quản trị web có thể phục hồi lại cơ sở dữ liệu của web đã sao lưu để đảm bảo sự hoạt động của website. 3.2.2. Trình tự thực hiện - Truy cập vào phpAdmin, - Chọn cơ sở dữ liệu cần truy xuất - Chọn menu Import - Chọn Browse, tham chiếu tới file backup - Chọn Go để phục hồi 3.2.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Khôi phục nhầm cơ sở Chọn nhầm tên Xóa tất cả các bảng của dữ liệu cơ sở dữ liệu đi rồi phục hồi lại 3.3. Xóa dữ liệu 3.3.1. Lý thuyết liên quan - Xóa dữ liệu 3.3.2. Trình tự thực hiện - Truy cập vào phpAdmin, - Chọn cơ sở dữ liệu cần truy xuất - Chọn biểu tượng X tương ứng với bảng dữ liệu, nếu muốn xóa tất cả các bảng chọn Check All sau đó chọn Drop with selected - Xuất hiện thông báo chọn Yes 18
  19. 3.3.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chọn nhầm cơ sở dữ liệu Chọn nhầm tên - Khôi phục lại cơ sở dữ cần xóa liệu đã xóa - Xóa lại cơ sở dữ liệu cần xóa 19
  20. BÀI 3. LẬP TRÌNH PHP CĂN BẢN A- MỤC TIÊU CỦA BÀI Học xong bài này, học viên có khả năng: - Trình bày được cách sử dụng biến trong php như gán biến, truy xuất biến, sử dụng biến xây dựng sẵn , các cấu trúc điều khiển if, switch case, các vòng lặp, các hàm thường sử dụng trong PHP; - Vận dụng được cách sử dụng biến, các cấu trúc điều khiển, vòng lặp, các hàm trong PHP để thực hiện một số bài tập theo yêu cầu; - Rèn luyện tính cẩn thận, tỉ mỉ, chính xác, chủ động, sáng tạo trong học tập và đảm bảo an toàn cho người và trang thiết bị. B- NỘI DUNG 1. Khai báo và sử dụng biến PHP 1.1. Lý thuyết liên quan - Biến là một định danh, nó dùng để lưu trữ các giá trị và nó có thể dùng phép gán để thay đổi giá trị. Cú pháp của biến bắt đầu bằng dấu đô la $ và tiếp theo là các chữ, số, dấu gạch dưới. Ký tự đầu tiên của tên biến phải là chữ hoặc là dấu gạch dưới, không được là số. Ví dụ: - PHP là một ngôn ngữ có phân biệt chữ hoa chữ thường, ví dụ: $sinhvien khác $SinhVien - Để gán giá trị cho biến ta dùng toán tử phép gán = Ví dụ: $hello = 'Hello Word'; Thay vì xuất trực tiếp chuỗi thì ta xuất giá trị của biến ra màn hình. Ví dụ: 20
  21. 1.2. Trình tự thực hiện Bài toán: Viết trang khởi tạo 2 biến số nguyên a, b có giá trị lần lượt là 20, 88. Hãy in ra tích của hai biến đó. Trình tự thực hiện: - Tạo thư mục “Bai3_phpcanban” trong thư mục của htdoc - Tạo file “bien.php” và viết html cho nó - Viết khối lệnh PHP + Khai báo và khởi tạo 2 biến + Khai báo biến $c = $a*$b; + In kết quả của biến $c ra màn hình - Chạy thử và sửa lỗi (nếu có) 1.3. Sai hỏng thường gặp, nguyên nhân biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Không in ra được giá trị Khối lệnh PHP không - Kiểm tra lại khối lệnh của biến $c hoạt động PHP 2. Sử dụng các cấu trúc điều khiển 2.1. Sử dụng if else 2.1. Lý thuyết liên quan - if: tuyên bố này sử dụng để thực hiện một số mã chỉ khi đã xác định một điều kiện là đúng - if else: + Cú pháp: if(btdk) { khối lệnh 1; else { khối lệnh 2;} 21
  22. + Ý nghĩa: Nếu biểu thức điều kiện đúng thì khối lệnh 1 được thực hiện, còn ngượi lại btdk sai thì sẽ thực hiện khối lệnh 2. - if elseif .else + Cú pháp if(btdk1) { khối lệnh 1;} elseif(btdk2) { khối lệnh 2; } else { khối lệnh n;} + Ý nghĩa: Nếu btdk1 đúng thực hiện khối lệnh 1, nếu btdk1 sai thì chương trình kiểm tra btdk2, nếu btdk2 đúng thì sẽ thực hiện khối lệnh 2 cuối cùng còn nếu tất cả các btdk ở trên đều sai thì chương trình sẽ thực hiện khối lệnh n. 2.2. Trình tự thực hiện Bài toán: Thực hiện nhập vào ba số a, b, c. Đưa ra số lớn nhất, bé nhất? Trình tự thực hiện - Tạo file “sosanhabc.php” - Viết mẫu html cho trang - Tạo form nhập dữ liệu a, b, c và nút SO SÁNH (sử dụng Dreamwaver) - Viết khối lệnh PHP thực hiện đọc dữ liệu a, b, c mà người dùng nhập vào - Sử dụng cấu trúc if else và các phép toán để kiểm tra in ra số lớn nhất, nhỏ nhất - Mở trình duyệt, nhập địa chỉ - Kiểm tra kết quả và sửa lỗi nếu có 2.3. Sai hỏng thường gặp, nguyên nhân, biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Khi sử dụng if elseif else Do yêu cầu của bài toán Kiểm tra lại yêu cầu bài dễ bị nhầm lẫn biểu thức phức tạp hơn cần sử dụng toán để xác định chính 22
  23. điều kiện và kết thúc if nhiều if xác biểu thức điều kiện, kiểm tra khối lệnh if. 2.2. Sử dụng switch case 2.2.1. Lý thuyết liên quan - switch case: được gọi là câu lệnh rẽ nhánh, khi bài toán có nhiều trường hợp hơn thì nên sử dụng câu lệnh này thay vì sử dụng câu lệnh if else - Cú pháp: switch(bt) { case $giatri1: // khối lệnh 1 break; case $giatri2: // khối lệnh 2 break; default: // khối lệnh default break; - Ý nghĩa: Bắt đầu chương trình sẽ kiểm tra kết quả trả về của biểu thức, nếu bt bằng với $giatri1 thì chương trình thực hiện khối lệnh 1, sau đó thoát khỏi switch. Tương tự nếu bt bằng với $giatri2, chương trình thực hiện khối lệnh 2, thực hiện xong khối lệnh 2 chương trình sẽ thoát khỏi switch do câu lệnh break; cứ tương tự như vây. Trong trường hợp bt không bằng giá trị nào cả thì khối lệnh switch sẽ thực hiện khối lệnh mặc định là khối lệnh default. 2.2.2. Trình tự thực hiện Bài toán: Thực hiện nhập vào 1 tháng của năm bất kỳ. Đưa ra số ngày của tháng đó? Trình tự thực hiện: - Tạo file “timsongay.php” trong thư mục “Bai3_phpcanban” - Viết mẫu html cho trang - Tạo form nhập dữ liệu tháng và nút KẾT QUẢ - Viết khối lệnh PHP thực hiện đọc dữ liệu mà người dùng nhập vào 23
  24. - Sử dụng cấu trúc switch case và các phép toán để kiểm tra in ra số ngày trong tháng của năm đó - Mở trình duyệt, nhập địa chỉ Bai3_phpcanban /timsongay.php - Kiểm tra kết quả và sửa lỗi nếu có 2.2.3. Sai hỏng thường gặp, nguyên nhân, biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Sai kết quả Do thuật toán tìm ngày Kiểm tra lại thuật toán và của tháng bất kỳ sai mã nguồn 2.3. Sử dụng vòng lặp for 2.3.1. Lý thuyết liên quan - Vòng lặp là một mã lệnh trong đó chương trình được thực hiện lặp đi lặp lại nhiều lần cho đến khi thỏa mãn một điều kiện nào đó. Vòng lặp là một khái niệm cơ bản trong lập trình cấu trúc. - Vòng lặp for: for ($bien_dieu_khien; $bieu_thuc_dieu_kien; $bieu_thuc_thay_doi_bien_dieu_khien) { // lệnh } - Ý nghĩa vòng lặp for: + $bien_dieu_khien: là một câu lệnh gán giá trị ban đầu cho biến điều khiển trước khi thực hiên vòng lặp, hoặc là một biến có giá trị sẵn mà ta đã truyền vào cho nó trước khi tạo vòng lặp này, lệnh này được thực hiện duy nhất một lần. + $bieu_thuc_dieu_kien: là một biểu thức quan hệ xác định điều kiện thoát khỏi vòng lặp. + $bieu_thuc_thay_doi_bien_dieu_khien: Xác định biến điều khiển sẽ bị thay đổi như thế nào sau mỗi lần lặp được lặp lại (thường là tăng hoặc giảm giá trị của biến điều khiển). Ba biểu thức trên được cách nhau bởi dấu chấm phẩy, vòng lặp sẽ lặp khi biểu thức điều kiện đúng, khi biểu thức điều kiện sai thì vòng lặp sẽ dừng và thoát, và 24
  25. ta sử dụng các toán tử quan hệ và toán tử logic trong các biểu thức điều kiện để điều khiển vòng lặp. 2.3.2. Trình tự thực hiện Bài toán: Thực hiện nhập vào 1 mảng số nguyên gồm 10 phần tử. Đưa ra số lớn nhất? Trình tự thực hiện - Tạo file “solonnhat.php” trong thư mục “Bai3_phpcanban” - Viết mẫu html cho trang - Viết khối lệnh PHP thực hiện cài đặt 1 mảng số nguyên gồm 10 phần tử - Sử dụng vòng lặp for và các phép toán để tìm số lớn nhất và in ra kết quả - Mở trình duyệt, nhập địa chỉ Bai3_phpcanban /solonnhat.php - Kiểm tra kết quả và sửa lỗi nếu có 2.3.3. Sai hỏng thường gặp, nguyên nhân, biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình chạy không Do thuật toán tìm số lớn Kiểm tra lại thuật toán và có lỗi nhưng không ra kết nhất trong mảng 10 số mã nguồn quả hoặc kết quả sai nguyên bị sai Thuật toán: - Đặt $max= $a[0] - Duyệt từ đầu đến cuối mảng, kiểm tra nếu $max < $a[$i] thì đặt $max= $a[$i] - Kết thúc vòng lặp in ra giá trị $max 2.4. Sử dụng vòng lặp while 2.4.1. Lý thuyết liên quan - Cú pháp: while ($condition) { 25
  26. // dòng lệnh } - Ý nghĩa: Trong đó $condition là điều kiện để dừng (lặp) vòng lặp. Nếu $condition có giá trị false thì vòng lặp kết thúc, ngược lại vòng lặp sẽ tiếp tục lặp, vòng lặp while sẽ lặp vô hạn nếu biểu thức điều kiện bạn truyền vào luôn luôn đúng Ví dụ: Dùng vòng lặp while trong php liệt kê các số từ 1 tới 10. $i = 1; // Biến dùng để lặp while ($i <= 10){ // Nếu $i <= 10 thì mới lặp echo $i . ' - '; // Xuất ra màn hình $i++; // Tăng biến $i lên 1 } 2.4.2. Trình tự thực hiện Bài toán: Thực hiện nhập vào 1 mảng số nguyên gồm 10 phần tử. In ra số các số chẵn xuất hiện trong mảng? Trình tự thực hiện - Tạo file “sochan.php” trong thư mục “Bai3_phpcanban” - Viết mẫu html cho trang - Viết khối lệnh PHP thực hiện cài đặt 1 mảng số nguyên gồm 10 phần tử - Sử dụng vòng lặp while và các phép toán để tìm số các chữ số chẵn xuất hiện trong mảng và in ra kết quả - Mở trình duyệt, nhập địa chỉ Bai3_phpcanban /sochan.php - Kiểm tra kết quả và sửa lỗi nếu có 2.4.3. Sai hỏng thường gặp, nguyên nhân, biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình chạy không Do thuật toán tìm số Kiểm tra lại thuật toán và có lỗi nhưng không ra kết chẵn trong mảng 10 số mã nguồn quả hoặc kết quả sai nguyên bị sai 3. Khai báo và sử dụng các hàm xử lý xâu chuỗi 3.1. Lý thuyết liên quan 26
  27. - Nếu chuỗi được đặt trong dấu nháy kép (“”) thì nếu trong chuỗi có ký tự (“) thì phải thêm dấu gạch chéo đằng trước ký tự đó echo "Nam nói\"Cậu ấy đang ăn tối\" "; - Nếu chuối được đặt trong dấu nháy kép thì trong chuỗi ta có thể truyền biến vào mà không cần dùng phép nối chuỗi. $str = "đang ăn tối"; echo "Nam nói\"Cậu ấy $str\" "; - Các hàm hay sử dụng: + addcslashes ($str, $char_list): Hàm này sẽ thêm dấu gạch chéo (\) đằng trước những ký tự trong chuỗi $str mà ta liệt kê ở $char_list. + explode ( $delimiter , $string): Hàm này sẽ chuyển một chuỗi $string thành một mảng các phần tử với ký tự tách mảng là $delimiter. + strlen($string): Hàm này đếm số ký tự của chuỗi $string. + str_replace( $chuoi_tim, $chuoi_thay_the, $chuoi_nguon): Hàm này tìm kiếm và thay thế chuỗi. + substr( $string, $start, $length): Hàm này lấy một chuỗi con nằm trong chuỗi $str bắt đầu từ ký tự thứ $start và chiều dài $length. + strpos($str, $chuoi_tim): Tìm vị trí của chuỗi $chuoi_tim trong chuỗi $str, kết quả trả về false nếu không tìm thấy. + strtolower($str):Chuyển tất cả các ký tự chuỗi $str sang chữ thường + strtoupper($string): Chuyển tất cả các ký tự chuỗi $str sang chữ hoa + trim($string, $ky_tu): Xóa ký tự $ky_tu nằm ở đầu và cuối chuỗi $str, nếu ta không nhập $ky_tu thì mặc định nó hiểu là xóa khoảng trắng. 3.2. Trình tự thực hiện Bài toán: Nhập vào một xâu chuỗi có độ dài bất kỳ (bằng tiếng việt có dấu), và nhập độ dài xâu cần lấy. Hãy in ra xâu ký tự có độ dài nhập vào, nếu độ dài nhập vào lớn hơn độ dài xâu đã cho thì in hết cả xâu ký tự. Trình tự thực hiện: - Tạo file “inxaukytu.php” trong thư mục “Bai3_phpcanban” - Viết mẫu html cho trang 27
  28. - Tạo form để nhập xâu ký tự, nhập độ dài cần lấy, và nút KẾT QUẢ, RESET - Viết khối lệnh PHP thực hiện đọc xâu ký tự đã nhập và độ dài cần lấy - Sử dụng một số hàm xử lý xâu ký tự để tìm ra kết quả và in ra - Mở trình duyệt, nhập địa chỉ Bai3_phpcanban /inxaukytu.php - Kiểm tra kết quả và sửa lỗi nếu có 3.3. Sai hỏng thường gặp, nguyên nhân, biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình chạy không Do thuật toán Kiểm tra lại thuật toán và có lỗi nhưng không ra kết mã nguồn quả hoặc kết quả sai 4. Thao tác với tập tin 4.1. Lý thuyết liên quan Việc xử lý file trong php rất quan trọng vì file trong các ứng dụng thực tế được tận dùng để lưu trữ dữ liệu như cache website, hay để lưu một thứ gì đó để cho ứng dụng chạy nhanh hơn, Vì thế tôi viết bài này giúp các bạn làm quen với một số hàm liên quan đến filenhư đọc file, ghi file, tạo folder mới, xóa folder, xóa file - Mở file: Để mở một file ta dùng cú pháp sau: open($path, $option). Trong đó $path là đường dẫn đến file cần mở, $option là quyền cho phép thao tác trên file. Ta có danh sách các quyền sau: Mode Diễn giải r Read only r+ Read + Write w Write only Write + Read. Nếu file này tồn tại thì nội dung cũ sẽ bị xóa đi và ghi lại nội dung mới, w+ còn nếu file chưa tồn tại thì nó tạo file mới 28
  29. Mode Diễn giải Mở dưới dạng append dữ liệu, chỉ có write và nếu file tồn tại nó sẽ ghi tiếp nội dung phía a dưới, ngược lại nếu file không tồn tại nó tạo file mới Mở dưới dạng append dữ liệu, bao gồm write và read. Nếu file tồn tại nó sẽ ghi tiếp nội a+ dung phía dưới, ngược lại nếu file không tồn tại nó tạo file mới b Mở dưới dạng chế độ binary - Đọc file: Có 3 cách đọc file thông thường trong PHP đó là đọc từng dòng, đọc từng ký tự và đọc hết file. Ta dùng hàm fgetc($fp) để đọc theo từng ký tự, dùng fgets($fp) để đọc theo từng dòng. Đối với đọc từng dòng và đọc từng ký tự ta phải dùng hàm feof($fp) đặt trong vòng lặp để có thể đọc đến dòng hay ký tự cuối cùng. Để đọc hết tất cả file ta dùng hàm fread($fp, $size), trong đó $fp là đối tượng lúc mở file còn $size là kích cỡ của file cần đọc. Để lấy kích cỡ của file cần đọc ta dùng hàm filesize($path). - Ghi file: Để ghi nội dung vào file ta dùng hàm fwrite($fp, $content) trong đó $fp là đối tượng trả về lúc mở file, còn $content là nội dung muốn ghi vào. Việc ghi file phụ thuộc vào lúc bạn mở file như thế nào. Ví dụ lúc bạn mở file ghi đè thì lúc ghi file nó sẽ ghi đè, lúc bạn mở file ghi kiểu append thì lúc ghi file nó sẽ thêm xuống cuối file, nếu bạn mở file chỉ cho đọc thì bạn không thể ghi file được. 4.2. Trình tự thực hiện Bài toán: Cho một file văn bản có sẵn tên là danhsach.txt, file danhsach.txt có cấu trúc như sau: Tên phim | Loại phim | Năm sản xuất | Hình ảnh đại diện. Ví dụ: Destination 5 | Action movie | 2015 | Boys Of Abu | Comedy Film | 2015 | Yêu cầu như sau: hãy đọc file trên, và in ra tên film, ảnh đại diện theo từng loại film. Trình tự thực hiện: 29
  30. - Tạo file “danhsachfilm.php” trong thư mục “Bai3_phpcanban” - Viết mẫu html cho trang - Mở, đọc file danhsach.txt theo dòng và đưa vào mảng - Đọc từng phần tử của mảng, sử dụng hàm xử lý sâu ký tự để tách lấy Tên phim, Loại phim, ảnh đại diện và ghi vào mảng khác. - Sau đó duyệt các phần tử của mảng và in ra kết quả theo loại phim - Mở trình duyệt, nhập địa chỉ Bai3_phpcanban /danhsachfilm.php - Kiểm tra kết quả và sửa lỗi nếu có 4.3. Sai hỏng thường gặp, nguyên nhân, biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình chạy không Do thuật toán Kiểm tra lại thuật toán và có lỗi nhưng không ra kết mã nguồn quả hoặc kết quả sai 30
  31. BÀI 4. LẬP TRÌNH ỨNG DỤNG WEB VỚI PHP A- MỤC TIÊU CỦA BÀI Học xong bài này, học viên có khả năng: - Trình bày được cách làm việc với cookies, các phương thức trao đổi thông tin với trình duyệt, các thao tác với CSDL MySQL, Email và XML; - Lập trình được một số bài tập theo yêu cầu; - Rèn luyện tính cẩn thận, tỉ mỉ, chính xác, chủ động, sáng tạo trong học tập và đảm bảo an toàn cho người và trang thiết bị. B- NỘI DUNG 1. Sử dụng các phương thức truyền dữ liệu từ client lên server 1.1. Sử dụng phương thức GET 1.1.1. Lý thuyết liên quan - Có 2 cách gửi dữ liệu từ Client lên Server đó là dùng phương thức GET hoặc phương thức POST, cả 2 cách này bản chất lập trình viên mới biết chứ người dùng họ không quan tâm đến nó là cái gì, trừ khi là hacker :D. Để không mất thời gian nữa ta sẽ đi vào tìm hiểu từng cách, so sánh chúng với nhau và bàn luận xem khi nào ta dùng POST, khi nào ta dùng GET. - Client gửi lên: Phương thức GET là phương thức gửi dữ liệu thông qua đường dẫn URL nằm trên thanh địa chỉ của Browser. Server sẽ nhận đường dẫn đó và phân tích trả về kết quả cho bạn. Server sẽ phân tích tất cả những thông tin đằng sau dấu hỏi (?) chính là phần dữ liệu mà Client gửi lên. Ví dụ: Với URL freetuts.net?id=12 thì Server sẽ nhận được giá trị id = 12 Để Truyền nhiều dữ liệu lên Server ta dùng dấu & để phân cách giữa các giá trị, giả sử tôi muốn truyền id = 12 và title = ‘method_get’thì URL sẽ có dạng freetuts.net?id=12&title=method_get - Server nhận dữ liệu: Tất cả các dữ liệu mà Client gửi lên bằng phương thức GET đều được lưu trong một biến toàn cục mà PHP tự tạo ra đó là biến $_GET, biến này là kiểu mảng kết hợp lưu trữ danh sách dữ liệu từ client gửi lên theo 31
  32. quy luật key => value. Ví du với URL nbpage.com?id=12&title=method_get thì dữ liệu sẽ được lưu trong biến $_GET. 1.1.2. Trình tự thực hiện Bài toán: Hãy tạo một file get.php nằm trong thư mục Bai4_laptrinhungdung, sau đó nhập đoạn code sau vào file: echo 'Dữ Liệu Chúng Tôi Nhận Được Là '; foreach ($_GET as $key => $val) { echo ' ' . $key . ' => ' . $val . ' '; } Chạy chương trình với id=12&title=method_get, quan sát và cho biết kết quả Trình tự thực hiện: - Tạo file “get.php” trong thư mục “Bai4_laptrinhungdung” - Viết mẫu html cho trang - Nhập đoạn code đã cho vào trang (trong khối lệnh PHP) - Mở trình duyệt, nhập địa chỉ Bai4_laptrinhungdung/get.php?id=12&title=method_get - Kiểm tra kết quả và sửa lỗi nếu có 1.1.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình chạy không Do thuật toán Kiểm tra lại thuật toán và có lỗi nhưng không ra kết mã nguồn quả hoặc kết quả sai 1.2. Sử dụng phương thức POST 1.2.1. Lý thuyết liên quan - Client gửi lên: Với phương thức GET thì dữ liệu được thấy trên URL thì phương thức POST thì hoàn toàn ngược lại, POST sẽ gửi dữ liệu qua một cái form HTML và các giá trị sẽ được định nghĩa trong các input gồm các kiểu (textbox, radio, checkbox, password, textarea)và được nhận dang thông qua tên (name) của các input đó. 32
  33. - Server nhận dữ liệu: Tất cả các dữ liệu gửi bằng phương thức POST đều được lưu trong một biến toàn cục $_POST do PHP tự tạo ra, vì thế để lấy dữ liệu gửi lên bạn chỉ cần mổ xẻ thằng này là được. Cũng như lưu ý với các bạn là trước khi lấy phải dùng hàm isset($bien) để kiểm tra có hay không nhé. if (isset($_POST['id'])){ $id = $_POST['id']; } 1.1.2. Trình tự thực hiện - Tạo một file post.php nằm trong thư mục “Bai4_laptrinhungdung”, sau đó nhập đoạn code tạo form vào Username: password: - Mở trình duyệt gõ đường dẫn “localhost/post.php” và ngắm nghía cái form mình vừa tạo ra nhé. - Sửa lại đoạn mã HTML đó bằng cách thêm vào một đoạn mã PHP như sau: 33
  34. Username: password: '; echo 'Mật khẩu là: ' . $_POST['password']; } ?> - Refresh lại trình duyệt rồi nhập liệu và nhấn vào button Gửi Dữ Liệu và quan sát kết quả. 1.1.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình chạy không Do mã nguồn Kiểm tra lại cú pháp mã có lỗi nhưng không ra kết nguồn quả 2. Làm việc với Cookies 2.1. Lưu trữ cookies 2.1.1. Lý thuyết liên quan Cookie thường được dùng để lưu trữ các tùy chọn riêng của trang web từng user, nó là một file nhỏ được Server chỉ định lưu trữ trên máy tính của Client và PHP có thể truy xuất tới được. Và để sử dụng được Cookie thì trình duyệt phải hỗ trợ chức năng này, nếu không thì Cookie trở nên vô dụng. Cookie sẽ không bị mất khi bạn đóng ứng dụng, nó phụ thuộc vào thời gian sống mà bạn thiết lập cho nó. Ví dụ bạn thiết lập Cookie lưu trữ thông tin đăng nhập trong vòng 15 phút thì sau 15 phút mà bạn không có một thao tác thay đổi trên 34
  35. nó thì Cookie của bạn sẽ bị chết. Đây chính là sự lợi hại của việc sư dụng Cookie. Lưu trữ Cookie Để lưu trữ Cookie ta dùng cú pháp sau và phải đặt trước thẻ html: setcookie($name, $value, $expire, $path, $domain), trong đó: - $name: là tên của Cookie - $value: giá trị của Cookie - $expire: thời gian sống của Cookie - $path : đường dẫn lưu trữ Cookie - $domain: tên của domain 2.1.2. Trình tự thực hiện Bài toán: lưu trữ tên đăng nhập username = ‘thehalfheart’ trong một giờ - Tạo file “cookies.php” trong thư mục “Bai4_laptrinhungdung” - Viết mẫu html cho trang - Nhập đoạn code khởi tạo cookies ở đầu trang (trong khối lệnh PHP) - Mở trình duyệt, nhập địa chỉ Bai4_laptrinhungdung/cookies.php/ - Kiểm tra kết quả và sửa lỗi nếu có 2.1.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục 35
  36. Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình chạy không Do mã nguồn Kiểm tra lại cú pháp mã có lỗi nhưng không ra kết nguồn quả 2.2. Đọc các cookies 2.2.1. Lý thuyết liên quan Tất cả Cookie được lưu trữ trong biến toàn cục $_COOKIE nên để lấy giá trị Cookie ta dùng cú pháp sau: $bien = $_COOKIE['cookie_name']. Cũng như lưu ý ở phần Session bạn nên kiểm tra có tồn tại Cookie không trước khi lấy nhé, nếu không sẽ bị thông báo lỗi nếu nó không tồn tại. 2.2.2. Trình tự thực hiện Bài toán: Lấy giá trị username vừa lưu trữ ở trên Trình tự thực hiện: - Mở file cookies.php đã lưu ở trên ở chế độ soạn thảo - Nhập đoạn chương trình đọc cookies username và in ra màn hình - Mở trình duyệt, nhập địa chỉ Bai4_laptrinhungdung/cookies.php/ - Kiểm tra kết quả và sửa lỗi nếu có 2.2.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình chạy không Do mã nguồn Kiểm tra lại cú pháp mã có lỗi nhưng không ra kết nguồn quả 2.3. Xóa các cookies 2.3.1. Lý thuyết liên quan Để xóa Cookie bạn chỉ việc thiết lập thời gian sống của nó sang quá trị âm nhiều hơn hoặc bằng giá trị sống lúc bạn thiết lập. 2.3.2. Trình tự thực hiện Bài toán: xóa Cookie đã thiết lập ở trên Trình tự thực hiện: 36
  37. - Mở file cookies.php đã lưu ở trên ở chế độ soạn thảo - Nhập đoạn chương trình xóa cookies username và in ra màn hình - Mở trình duyệt, nhập địa chỉ Bai4_laptrinhungdung/cookies.php/ - Kiểm tra kết quả và sửa lỗi nếu có 2.3.3. Sai hỏng thường gặp, nguyên nhân và biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình chạy không Do mã nguồn Kiểm tra lại cú pháp mã có lỗi nhưng không ra kết nguồn quả 3. Sử dụng Session trong PHP 3.1. Đăng ký Session Biến Session trong PHP được dùng để lưu trữ thông tin của người dùng hoặc là lưu trữ tùy chọn cấu hình hệ thống cho người dùng. Đặc biệt mỗi client được lưu ở một nơi lưu trữ khác nhau (id khác nhau) nên việc thông tin Session ở Client A bị ảnh hưởng qua Client B là điều không thể. 3.1.1. Lý thuyết liên quan Trước khi bạn sử dụng session bạn phải khai báo cho PHP biết bằng cách đặt dòng lệnh session_start() phía trên đầu mỗi file (nếu bạn dùng nhiều file include lẫn nhau thì đặt nó ở file chính). 3.1.2. Trình tự thực hiện Bài toán: đăng ký Session - Tạo file “session.php” trong thư mục “Bai4_laptrinhungdung” - Viết mẫu html cho trang - Nhập đoạn code đăng ký Session ở đầu trang html 37
  38. TODO write content - Mở trình duyệt, nhập địa chỉ - Kiểm tra kết quả và sửa lỗi nếu có 3.1.3. Sai hỏng thường gặp, nguyên nhân biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình in ra dòng Do mã nguồn không khai Kiểm tra lại và thêm chữ session_start() báo khối lệnh PHP khối lệnh PHP 3.2. Lưu trữ Session 3.2.1. Lý thuyết liên quan Tất cả Session được lưu trữ trong biến toàn cục $_SESSION, vì thể để lưu thêm dữ liệu Session hay là thay đổi dữ liệu của Session thì ta thao tác trên nó. Lưu ý với bạn trước khi dùng phép lấy giá trị Session bạn phải kiểm tra sesion đó có tồn tại không rồi hãy lấy. Để lưu một giá trị mới vào Session ta dùng cú pháp như sau: $_SESSION['session_name'] = $session_value Để lấy giá trị Session ta dùng cú pháp sau: $tenbien = $_SESSION['session_name']. Như tôi đề cập ở trên trước khi bạn lấy giá trị Session bạn nên kiểm tra nó có tồn tại không rồi hãy lấy. 3.2.2. Trình tự thực hiện - Tạo một file luutrusession.php nằm trong thư mục “Bai4_laptrinhungdung”, sau đó nhập đoạn code sau vào: <?php session_start(); // Nếu click vào nút Lưu Session if (isset($_POST['save-session'])) { // Lưu Session 38
  39. $_SESSION['name'] = $_POST['username']; } ?> - Mở trình duyệt gõ đường dẫn “localhost/Bai4_laptrinhungdung/ luutrusession.php” - Nhập tên, và ấn vào Nút Lưu - Refresh lại trình duyệt - Xem kết quả Session được lưu trên Server và hiển thị ra màn hình 3.2 3. Sai hỏng thường gặp, nguyên nhân biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình không in ra Do mã nguồn Kiểm tra lại mã nguồn session 39
  40. 3.3. Xóa Session 3.3.1. Lý thuyết liên quan Tất cả các biên Session đều lưu trữ trong biến $_SESSION nên để xóa nó các bạn chỉ việc dùng hàmunset($_SESSION['session_name']), trong đó hàm unset dùng để giải phóng một biến ra khỏi bộ nhớ. Nếu bạn muốn xóa hết tất cả các Session thì ta dùng hàm: session_destroy(). 3.3.2. Trình tự thực hiện - Mở file luutrusession.php ở trên bằng chế độ soạn thảo - Nhập đoạn code sau đây vào phần cuối // Xóa session name unset($_SESSION['name']); // Xóa hết session session_destroy(); - Mở trình duyệt gõ đường dẫn “localhost/Bai4_laptrinhungdung/ luutrusession.php” - Refresh lại trang và quan sát kết quả 3.3.3. Sai hỏng thường gặp, nguyên nhân biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình in ra Do mã nguồn Kiểm tra lại mã nguồn session chỗ hủy Session 4. Sử dụng Ajax 4.1. Lý thuyết liên quan Ajax là một khái niệm có thể mới lạ với những bạn newbie mới học lập trình web nên đôi lúc các bạn nghĩ nó là một ngôn ngữ lập trình mới. Nhưng thực tế không như vậy, ajax là một kỹ thuật viết tắt của chữ AJAX = Asynchronous JavaScript and XML. Đây là một công nghệ giúp chung ta tạo ra những Web động mà hoàn toàn không reload lại trang nên rất mượt và đẹp. Đối với công nghệ web hiện nay thì ajax không thể thiếu, nó là một phần làm nên sự sinh động cho website. Còn đối với ngành SEO thì khi sử dụng ajax lại không tốt, tại vì google sẽ không index được. 40
  41. Ajax được viết bằng ngôn ngữ Javascript nên nó chạy trên client, tức là mỗi máy (user) sẽ chạy độc lập không hoàn toàn ảnh hưởng lẫn nhau. Hiện nay có nhiều thư viện javascript như jQuery hay Angular đều hỗ trợ kỹ thuật này nhằm giúp chúng ta thao tác dễ dàng hơn. Nhưng tôi muốn các bạn nắm rõ bản chất của ajax nên trong bài này chúng ta sẽ code thuần javascript 100%. 4.2. Trình tự thực hiện - Tạo thư mục Ajax trong thư mục localhost/htdocs - Tạo file index.php để xử lý ajax có nội dung như sau: function load_ajax(){ alert('Clicked'); } Nội dung ajax sẽ được load ở đây - Tạo file trả về nội dung của Ajax là ketqua.php - Nhập đoạn code sau vào file ketqua.php - Viết code gọi Ajax lấy nội dung từ file ketqua.php 41
  42. function load_ajax() { // Tạo một biến lưu trữ đối tượng XML HTTP. Đối tượng này // tùy thuộc vào trình duyệt browser ta sử dụng nên phải kiểm // tra như bước bên dưới var xmlhttp; // Nếu trình duyệt là IE7+, Firefox, Chrome, Opera, Safari if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } // Nếu trình duyệt là IE6, IE5 else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // Khởi tạo một hàm gửi ajax xmlhttp.onreadystatechange = function() { // Nếu đối tượng XML HTTP trả về với hai thông số bên dưới thì mọi chuyện // coi như thành công if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { // Sau khi thành công tiến hành thay đổi nội dung của thẻ div, nội dung // ở đây chính là document.getElementById("result").innerHTML = xmlhttp.responseText; } }; // Khai báo với phương thức GET, và url chính là file result.php xmlhttp.open("GET", "result.php", true); 42
  43. // Cuối cùng là Gửi ajax, sau khi gọi hàm send thì function vừa tạo ở // trên (onreadystatechange) sẽ được chạy xmlhttp.send(); } Nội dung ajax sẽ được load ở đây - Mở file index.php - Ấn vào nút để xem kết quả. 4.3. Sai hỏng thường gặp, nguyên nhân biện pháp khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình không in ra Do mã nguồn Kiểm tra lại mã nguồn kết quả 5. Thao tác với Email 5.1. Lý thuyết liên quan - Cú pháp: Để gửi email trực tiếp từ máy chủ, ta có thể sử dụng hàm mail () với cú pháp như sau: mail (dia_chi_nhan, tieu_de, noi_dung, cac_tham_so_mo_rong_tuy_chon); 5.2. Trình tự thực hiện - Tạo file guimail.php trong thư mục Bai4_laptrinhungdung - Viết html cho trang và tạo form gồm có tiêu đề (textbox), email (textbox), noidung (textarea) và 1 nút Button Gửi - Viết Ajax cho nút Gửi (đọc tiêu đề, email và noidung) - Mở trình duyệt, nhập địa chỉ localhost/bai4_laptrinhungdung/guimail.php - Quan sát kết quả 5.3. Sai hỏng thường gặp, nguyên nhân biện pháp khắc phục 43
  44. Sai hỏng Nguyên nhân Biện pháp khắc phục Chương trình không in ra Do mã nguồn Kiểm tra lại mã nguồn kết quả 44
  45. BÀI 5. XÂY DỰNG MỘT SỐ WEBSITE MẪU A- MỤC TIÊU CỦA BÀI Học xong bài này, học viên có khả năng: - Trình bày được các chức năng của website mẫu và các thao tác lập trình PHP đã sử dụng để lập trình website mẫu; - Phân tích, lập trình được một số chức năng của website mẫu; - Phân tích được hệ thống mã nguồn mở của một số website; - Rèn luyện tính cẩn thận, tỉ mỉ, chính xác, chủ động, sáng tạo trong học tập và đảm bảo an toàn cho người và trang thiết bị. B- NỘI DUNG 1. Xây dựng ứng dụng thương mại điện tử 1.1. Lý thuyết liên quan 1.1.1. Thương mại điện tử là gì? Thương mại điện tử tiếng anh là: electronic commerce - eCommerce. Có nhiều quan niệm khác nhau về thương mại điện tử: - Nghĩa rộng - Nghĩa hẹp - Tổ chức thương mại quốc tê: Thương mại điện tử bao gồm việc sản xuất, quảng cáo, bán hàng và phân phối sản phẩm được mua bán và thanh toán trên mạng Internet, nhưng được giao nhận một cách hữu hình cả các sản phẩm được giao nhận cũng như những thông tin số hóa thông qua mạng Internet. 1.1.2. Đặc điểm của thương mại điện tử Giao dịch nhanh nhất, hiệu quả nhất, tận dụng được tối đa mọi nguồn lực. Tiến hành trên mạng : không bị ảnh hưởng bởi khoảng cách địa lý, không phan biệt nhà cung cấp nhỏ hay lớn Hiện diện trên toàn cầu cho nhà cung cấp Lựa chọn toàn cầu cho khách hàng. Các nhà cung cấp đã tiếp cận gần hơn với khách hàng 45
  46. Tăng chi phí đầu tư cho công nghệ, người sử dụng phải luôn luôn học hỏi để nâng cao kiến thức sử dụng công nghệ. Các bên tiến hành giao dịch trong thương mại điện tử không tiếp xúc trực tiếp với nhau và không đòi hỏi phải biết nhau từ trước. Thương mại truyền thống được thực hiện với sự tồn tại của khái niệm biên giới quốc gia, còn thương mại điện tử được thực hiện trong một thị trường không có biên giới. 1.1.3. Ưu điểm và bất lợi của thương mại điện tử * Ưu điểm Tăng lượng hàng bán Thị phần từ các vị trí địa lý phân tán Các cộng đồng người mua ảo Giảm chi phí Quản lý các thông tin kinh doanh Cung cấp bảng giá Xác định sản phẩm phù hợp thị trường * Nhược điểm Không thể xem xét kỹ lưỡng sản phẩm(người mua!!) Tốc độ phát triển của kỹ thuật !!! Khó tính toán lợi nhuận của vốn đầu tư Các trở ngại liên quan đến văn hóa và luật lệ 1.1.4. Website thương mại điện tử Các chức năng cơ bản của một site thương mại điện tử Liệt kê danh sách các nhóm hàng, mặt hàng Giỏ mua hàng Xử lý giao dịch mua hàng) 1.1.5. Một số website mẫu - - - 46
  47. 1.2. Trình tự thực hiện - Thiết kế giao diện bằng photoshop - Chuyển giao diện sang html - Viết CSS cho html - Chuyển trang html sang wordpress - Lập trình wordpress cho website - Upload website lên host - Quản trị website 1.3. Sai hỏng thường gặp, nguyên nhân và cách khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Trang html không theo Do code css Viết lại CSS cho trang giao diện đã thiết kế Hiển thị sản phẩm không Do code wordpress sai Kiểm tra lại code query đúng theo danh mục sản phẩm theo ID category 2. Ứng dụng quản lý tin tức 2.1. Lý thuyết liên quan Các chức năng cơ bản của một site tin tức Liệt kê danh sách bài theo chuyên mục - Một số website mẫu + + 2.2. Trình tự thực hiện - Thiết kế giao diện bằng photoshop - Chuyển giao diện sang html - Viết CSS cho html - Chuyển trang html sang wordpress - Lập trình wordpress cho website - Upload website lên host - Quản trị website 47
  48. 2.3. Sai hỏng thường gặp, nguyên nhân và cách khắc phục Sai hỏng Nguyên nhân Biện pháp khắc phục Trang html không theo Do code css Viết lại CSS cho trang giao diện đã thiết kế Hiển thị bài viết không Do code wordpress sai Kiểm tra lại code query đúng theo danh mục bài viết theo ID category 48
  49. HƯỚNG DẪN THỰC HIỆN MÔ ĐUN 1. Phạm vi áp dụng chương trình Chương trình mô đun được sử dụng để giảng dạy cho trình độ Cao đẳng nghề. 2. Hướng dẫn một số điểm chính về phương pháp giảng dạy mô đun - Dạy tích hợp giữa lý thuyết và thực hành; - Giới thiệu và phân tích một số website mẫu; - Sinh viên làm việc theo nhóm và cá nhân; - Thiết kế, lập trình website mẫu sát với thực tế. 3. Những trọng tâm chương trình cần chú ý Giáo viên cần phải căn cứ vào nội dung của từng bài học để chuẩn bị đầy đủ các điều kiện thực hiện bài học khi lên lớp đảm bảo chất lượng giảng dạy. TÀI LIỆU THAM KHẢO [1]. Bùi Huy Quỳnh, Giáo trình thiết kế web, Đại học SPKT TPHCM, 2004 [2]. Nguyễn Thiên Bằng, PHP&MySQL,Nhà xuất bản Lao động xã hội, 2003 49