Lập trình mã nguồn mở - 1

LỜI NÓI ĐẦU


Ngày nay việc sử dụng Internet và các dịch vụ trên Internet là một phần tất yếu của cuộc sống. Công nghệ Internet và các ứng dụng phát trển trên nền Web và Internet đã và đang làm cho đời sống của mỗi chúng ta thay đổi. Internet là một nguồn thông tin quí giá phục vụ cho nghiên cứu, cho kinh doanh, cho giải trí … Vì vậy ngày càng có nhiều ứng dụng trên Internet, sử dụng giao diện Web. Các công nghệ phát triển Web ngày một hoàn thiện.

Tập bài giảng giới thiệu công nghệ phổ biến nhất được dùng để tạo các web site động: Ngôn ngữ kịch bản PHP và chương trình quản lý cơ sở dữ liệu MySQL. Đây là công nghệ rất mạnh và hiệu quả để khai triển khai các dự án mã nguồn mở cũng như có thể sử dụng để trong việc khai thác, sử dụng và phát triển được các phần mềm mã nguồn viết bằng PHP và MySQL như: Joomla, Moodle, Wordpress, Drupal, NukeViet …

Tập bài giảng Lập trình mã nguồn mở được biên soạn cho đối tượng sinh viên Đại học khoa Công nghệ thông tin, trường Đại học Sư phạm kỹ thuật Nam Định. Tập bài giảng được chia làm 3 chương:

Chương 1: Tổng quan về PHP và MySQL Chương 2: Lập trình với PHP

Chương 3: Sử dụng PHP với MySQL

Trong quá trình biên soạn chúng tôi xin chân thành cảm ơn các đồng nghiệp khoa Công nghệ thông tin, cùng các đồng nghiệp trong trường Đại học Sư phạm Kỹ thuật Nam Định đã giúp chúng tôi hoàn thành tập bài giảng này.

Trong lần biên soạn đầu tiên, tập bài giảng không tránh khỏi những sai sót, rất mong nhận được các ý kiến đóng góp của các đồng nghiệp và các bạn đọc nhằm giúp cho chất lượng của tập bài giảng được hoàn thiện hơn. Mọi sự đóng góp ý kiến xin gửi về Văn phòng Khoa Công nghệ thông tin, trường Đại học Sư phạm kỹ thuật Nam Định.

Chúng tôi xin chân thành cảm ơn!

Có thể bạn quan tâm!

Xem toàn bộ 270 trang tài liệu này.


Nam Định, tháng 12 năm 2014

Lập trình mã nguồn mở - 1

Nhóm biên soạn


Th.s Nguyễn Văn Trung Th.s Trần Đình Tùng Th.s Phan Đức Thiện

MỤC LỤC

LỜI NÓI ĐẦU i

CHƯƠNG 1: TỔNG QUAN VỀ PHP VÀ MYSQL 1

1.1. Giới thiệu về mã nguồn mở 1

1.1.1. Khái niệm phần mềm mã nguồn mở 1

1.1.2. Lợi ích của mã nguồn mở đối với người phát triển 1

1.1.3. Lợi ích của mã nguồn mở đối với người sử dụng 1

1.1.4. Một số phần mềm mã nguồn mở 2

1.2. Giới thiệu về PHP 2

1.3. Giới thiệu về MySQL 3

1.4. Cài đặt cấu hình PHP, MySQL, Apache 4

1.4.1. Cài đặt Appserv 4

1.4.2. Cài đặt Wampserver 8

1.5. Xử lý dữ liệu với phpMyAdmin 8

1.6. Bài tập 15

CHƯƠNG 2: LẬP TRÌNH VỚI PHP 16

2.1. Cấu trúc của PHP 16

2.1.1. Câu lệnh trong PHP 16

2.1.2. Chú thích trong PHP 19

2.1.3. In kết quả trong PHP 20

2.2. Các kiểu dữ liệu trong PHP 22

2.2.1. Các kiểu dữ liệu trong PHP 22

2.2.2. Kiểm tra kiểu dữ liệu 22

2.2.3. Thay đổi kiểu dữ liệu biến 23

2.2.4. Kiểu số nguyên 24

2.2.5. Kiểu dấu chấm động 25

2.2.6. Kiểu chuỗi String 26

2.2.7. Kiểu boolean 26

2.2.8. Kiểu mảng 27

2.2.10. Kiểu đối tượng 30

2.2.11. Giá trị Null 30

2.3. Khái niệm biến, hằng và chuỗi 30

2.3.1. Biến trong PHP 30

2.3.2. Hằng 33

2.3.3. Chuỗi 35

2.4. Toán tử và biểu thức 35

2.4.1. Biểu thức 35

2.4.2. Toán tử gán 35

2.4.3. Toán tử số học 36

2.4.4. Toán tử so sánh 36

2.4.5. Toán tử logic 36

2.4.6. Toán tử kết hợp 37

2.4.7. Độ ưu tiên các phép toán 37

2.5. Mảng 38

2.5.1. Mảng một chiều 38

2.5.2. Mảng hai chiều 40

2.5.3. Các hàm xử lý mảng 43

2.6. Các hàm xử lí chuỗi 48

2.6.1 Quy tắc trong chuỗi 48

2.6.2. Định dạng chuỗi 49

2.6.3. Hàm chuyển đổi chuỗi 50

2.6.4. Hàm tách và kết hợp chuỗi 51

2.6.5. Tìm kiếm và thay thế chuỗi 53

2.6.6. Các hàm xử lý chuỗi hay sử dụng 58

2.7. Hàm và sử dụng hàm 62

2.8. Sử dụng include và Require 65

2.8.1. Sử dụng Include 66

2.8.2. Sử dụng Require 66

2.8.3. Sự khác nhau giữa Include và Require 67

2.8.4. Sử dụng Require_once và include_once 67

2.9. Câu lệnh rẽ nhánh 67

2.9.1. Câu lệnh if else 67

2.9.2. Câu lệnh switch case 69

2.10. Các cấu trúc lặp 71

2.10.1. Lệnh for 71

2.10.2. Lệnh foreach 72

2.10.3. Lệnh while 74

2.10.4. Lệnh do while 74

2.10.5. Lệnh break, continue, goto, die, exit 75

2.11. Lập trình hướng đối tượng 76

2.11.1. Khái niệm về lập trình hướng đối tượng 76

2.11.2. Lớp, thuộc tính, phương thức của đối tượng 77

2.11.4. Tính kế thừa 83

2.11.5. Các mức truy cập private protected và public 88

2.11.7. Cách sử dụng private, protected và public 94

2.11.9 Tính đóng gói trong lập trình hướng đối 100

2.11.10 Hàm khởi tạo và hàm hủy 100

2.11.11 Lớp trừu tượng (Abstract) 104

2.11.12. Interface 107

2.11.13. Thuộc tính và phương thức tĩnh 109

2.12. Truyền và xử lý dữ liệu trong PHP 113

2.12.1. Truyền và xử lý dữ liệu trong PHP 113

2.12.2. Truyền và xử lý dữ liệu qua URL 114

2.12.3. Truyền và xử lý dữ liệu qua Form 118

2.13. Các đối tượng cơ bản trong PHP 119

2.13.1. Đối tượng Session 119

2.13.2. Đối tượng Cookies 128

2.13.3. Đối tượng Server 132

10.14. Các hàm xử lý file trong php 133

2.14. Bài tập 140

CHƯƠNG 3: SỬ DỤNG PHP VỚI MYSQL 158

3.1. Cấu trúc và cú pháp của MySQL 158

3.1.1. Các kiểu dữ liệu MySQL 158

3.1.2. NULL/NOT NULL 161

3.1.3. INDEXES 161

3.1.4. UNIQUE 161

3.1.5. Tăng tự động (auto Increment) 161

3.1.6. Các kiểu bảng của MySQL và kỹ thuật lưu trữ 161

3.1.7. Lệnh và cú pháp trong MySQL 163

3.1.8. Các hàm cơ bản trong MySQL 181

3.2. Làm việc với MySQL và PHP 183

3.2.1. Các hàm cơ bản làm việc giữa PHP và MySQL 183

3.2.2. Kết nối MySQL Server 190

3.2.3. Các thao tác với cơ sở dữ liệu 191

3.2.4. Truy vấn cơ sở dữ liệu 197

3.3. Xây dựng một số trang web kết hợp PHP và MySQL 206

3.3.1. Xây dựng trang đăng nhập 206

3.3.2. Xây dựng trang thêm thành viên 209

3.3.3. Xây dựng trang quản lý thành viên 213

3.3.4. Xây dựng trang xoá sửa thành viên 216

3.3.5. Xây dựng trang tạo mã xác nhận 221

3.3.6. Xây dựng trang đếm số người online 224

3.3.7. Xây dựng trang bình chọn 227

3.3.8. Xây dựng trang upload nhiều file 232

3.4. Bài tập 238

TÀI LIỆU THAO KHẢO 256

DANH MỤC CÁC HÌNH VẼ


Hình 1.1. Cửa số Welcome khi cài AppServ 4

Hình 1.2. Thông tin giấy phép sử dụng phần mềm 5

Hình 1.3. Chọn thư mục để cài đặt 5

Hình 1.4. Chọn các thành phần cần cài đặt 5

Hình 1.5. Thông tin về người quản lý và port truy cập webserver 6

Hình 1.6. Nhập mật khẩu cho tài khoản root 6

Hình 1.7. Quá trình cài đặt AppServ 6

Hình 1.8. Trang chủ của AppServ 7

Hình 1.9. Đăng nhập vào phpMyAdmin 7

Hình 1.10. Tạo cơ sở dữ liệu tintuc 9

Hình 1.11. Tạo bảng dữ liệu 9

Hình 1.12. Tạo các trường dữ liệu cho bảng 10

Hình 1.13. Nhập dữ liệu cho bảng 10

Hình 1.14. Xem dữ liệu của bảng 11

Hình 1.15. Xoá và sửa dữ liệu của bảng 11

Hình 1.16. Sửa cấu trúc bảng 12

Hình 1.17. Đổi tên bảng dữ liệu 12

Hình 1.18. Xoá bảng dữ liệu 13

Hình 1.19. Import dữ liệu từ file sql 13

Hình 1.20. Export dữ liệu từ file sql 14

Hình 1.21. Xoá cơ sở dữ liệu 15

Hình 2.1. Quá trình thông dịch trang PHP 16

Hình 2.2. Kết quả thực hiện trang hello.php 17

Hình 2.3. Kết quả thực hiện trang script.php 18

Hình 2.4. Kết quả thực hiện trang echo.php 22

Hình 2.5. Kết quả khi triệu gọi trang arrayone.php. 40

Hình 2.6. Kết quả thực hiện arraytwo.php 42

Hình 2.7. Kết quả thực hiện trang mang.php 43

Hình 2.8. Kết quản thực hiện sắp xếp mảng 43

Hình 2.9. Định dạng chuỗi in 49

Hình 2.10. Chuyển đổi chuỗi 51

Hình 2.11. Kết quả sử dụng hàm tách chuỗi 52

Hình 2.12. Kết quả sử dụng hàm kết hợp chuỗi 53

Hình 2.13. Kết quả sử dụng hàm thay thế chuỗi 54

Hình 2.14. Hoạt động của Include 66

Hình 2.15. Trừu tượng hoá dữ liệu 81

Hình 2.16. Các đối tượng trong trong thế giới thực 82

Hình 2.17. Kết quả chạy file movie1.php 116

Hình 2.18. Lấy dữ liệu truyền theo url 116

Hình 2.19. Lấy dữ liệu bằng $_request 117

Hình 2.20. Kết quả thực hiện 117

Hình 2.21. Nhận dạng Session 120

Hình 2.22. Đăng ký Session 121

Hình 2.23. Lấy giá trị của session 122

Hình 2.24. Lỗi phát sinh truy cập session chưa tồn tại 123

Hình 2.25. Không có lỗi phát sinh gọi trang checksession.php 124

Hình 2.26. Loại bỏ session 125

Hình 2.27. Huỷ session 126

Hình 2.28. Đăng ký cookie 130

Hình 2.29. Dùng $HTTP_COOKIE_VARS 131

Hình 3.1. Thêm bản ghi 192

Hình 3.2. Thực thi trang cập nhật dữ liệu 195

Hình 3.3. Thực thi xoá một bản ghi 197

Hình 3.4. Liệt kê bản ghi 198

Hình 3.5. Liệt kê danh sách lại sản phẩm 199

Hình 3.6. Liệt kê danh sách loại sách 202

Hình 3.7. Liệt kê danh sách sản phẩm duyệt hay chưa 205

Hình 3.8. Giao diện trang đăng nhập 206

Hình 3.9. Giao diện trang thêm thành viên 210

Hình 3.10. Giao diện trang sửa thanh viên 217

Hình 3.11. Giao diện trang tạo mã xác nhận 222

Hình 3.12. Giao diện trang bình chọn 229

Hình 3.13. Giao diện trang kết quả bình chọn 232

Hình 3.14. Giao diện trang Upload file 234

CHƯƠNG 1: TỔNG QUAN VỀ PHP VÀ MYSQL

1.1. Giới thiệu về mã nguồn mở

1.1.1. Khái niệm phần mềm mã nguồn mở

Open Source: Mã nguồn mở.

Open Source Software: Phần mềm mã nguồn mở.

Free Software: Phần mềm miễn phí, đôi khi free software được dùng với ý nghĩa bao gồm cả open source software và free software.

Phần mềm nguồn mở (PMNM) là những phần mềm được cung cấp dưới cả dạng mã và nguồn, không chỉ là miễn phí về giá mua mà chủ yếu là miễn phí về bản quyền: người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung qui định trong giấy phép PMNM (ví dụ General Public Licence – GPL) mà không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn đóng (tức là phần mềm thương mại).

Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu người dùng trả một số chi phí về các dịch vụ bảo hành, huấn luyện, nâng cấp, tư vấn, vv… tức là những dịch vụ thực sự đã thực hiện để phục vụ người dùng, nhưng không được bán các sản phẩm nguồn mở vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào.

Tiện ích mà Open Source mang lại chính là quyền tự do sử dụng chương trình cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chương trình, chỉnh sữa phù hợp với nhu cầu, truy cập vào mã nguồn, quyền tự do phân phối lại các phiên bản cho nhiều người, quyền tự do cải tiến chương trình và phát hành những bản cải tiến vì mục đích công cộng.

1.1.2. Lợi ích của mã nguồn mở đối với người phát triển

Đối với lập trình viên và người sản xuất phần mềm, sự tự do đáng kể sẽ thay đổi các qui định của cuộc chơi. Nó làm cho dễ dàng hơn để tiếp tục cạnh tranh trong khi vẫn là nhỏ và để có được công nghệ hiện đại. Nó cho phép chúng ta tận dụng được ưu thế công việc của những người khác, cạnh tranh ngay cả với sản phẩm khác bằng việc sửa đổi mã nguồn của riêng mình, dù đối thủ cạnh tranh sao chụp được có thể sau đó cũng tận dụng được ưu thế về mã nguồn của chúng ta (nếu nó là copyleft). Nếu dự án được quản lý tốt, thì có khả năng có được sự hợp tác tự do của một số lượng người lớn, hơn nữa, để có được sự truy cập tới một hệ thống phân phối gần như hoàn toàn tự do và toàn cầu. Dẫu rằng, vấn đề còn lại là làm thế nào để có được những tài nguyên về tài chính, nếu phần mềm không phải là sản phẩm để bán vì tiền hoa hồng.

1.1.3. Lợi ích của mã nguồn mở đối với người sử dụng

Lợi ích lớn nhất trong việc chuyển đổi sang phần mềm tự do nguồn mở là giảm tổng chi phí sở hữu, từ các yếu tố sau:

- Miễn phí bản quyền phần mềm

Xem toàn bộ nội dung bài viết ᛨ
Ngày đăng: 15/07/2022