Tập bài giảng Lập trình mã nguồn mở 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. Nội dung chính của tập bài giảng được tổ chức thành 3 chương như sau: 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. Mời các bạn cùng tham khảo.
TỔNG QUAN VỀ PHP VÀ MYSQL
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à phần mềm được cung cấp dưới dạng mã nguồn, cho phép người dùng không chỉ sử dụng miễn phí mà còn có quyền sửa đổi, cải tiến và phát triển theo các nguyên tắc trong giấy phép PMNM, như General Public Licence (GPL) Điều này trái ngược với phần mềm nguồn đóng, hay phần mềm thương mại, nơi người dùng không có quyền thực hiện các thay đổi mà không có sự cho phép.
Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu người dùng thanh toán một số khoản phí cho các dịch vụ như bảo hành, huấn luyện, nâng cấp và tư vấn Tuy nhiên, họ không được phép bán các sản phẩm nguồn mở, vì những sản phẩm này thuộc về tài sản trí tuệ chung, không phải là tài sản riêng của bất kỳ nhà cung cấp nào.
Open Source mang lại nhiều tiện ích quan trọng, bao gồm quyền tự do sử dụng phần mềm cho mọi mục đích, quyền nghiên cứu cấu trúc và chỉnh sửa chương trình theo nhu cầu cá nhân Người dùng có thể truy cập mã nguồn, phân phối lại các phiên bản cho cộng đồng, cũng như cải tiến chương trình và phát hành các bản nâng cấp nhằm phục vụ lợi í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
- Miễn phí các phiên bản nâng cấp trong toàn bộ vòng đời sử dụng sản phẩm
Giảm chi phí phát triển phần mềm theo yêu cầu nghiệp vụ bằng cách sử dụng phần mềm và mô-đun có sẵn Việc phát triển, sửa đổi và điều chỉnh các giải pháp này giúp tối ưu hóa quy trình và đáp ứng nhanh chóng các nhu cầu cụ thể của doanh nghiệp.
- Kéo dài thời gian sử dụng/tái sử dụng các phần cứng, thiết bị trong khi vẫn đảm bảo hiệu năng toàn hệ thống
Chi phí đầu tư và vận hành hệ thống tập trung cho các dịch vụ hữu hình mang lại giá trị thiết thực cho tổ chức, bao gồm tư vấn, sửa đổi theo yêu cầu, triển khai, đào tạo, bảo trì và nâng cấp hệ thống.
- Mức chi phí tiết kiệm khoảng 75-80% so với phần mềm license ngay trong năm đầu tiên
Giảm thiểu sự phụ thuộc vào một vài nhà cung cấp phần mềm giúp nâng cao chất lượng dịch vụ nhờ vào sự cạnh tranh Việc có nhiều nhà cung cấp cho mỗi phần mềm mã nguồn mở (FLOSS) cho phép linh hoạt hơn trong đàm phán về chi phí và dịch vụ Bên cạnh đó, với mã nguồn trong tay, việc nâng cấp và mở rộng hệ thống trở nên dễ dàng hơn theo nhu cầu phát triển Đối với các hệ thống đang hoạt động, chủ động chuyển đổi sang phần mềm mã nguồn mở giúp tránh nguy cơ bị phạt vi phạm bản quyền và không bị ép buộc mua giấy phép.
Tăng tính thương hiệu cho doanh nghiệp khi giới thiệu được với cộng đồng, đối tác, khách hàng (đặc biệt là ngoài nước) và không vi phạm bản quyền
Tăng cường độ tin cậy, ổn định, tính an toàn, bảo mật (theo báo cáo của Gartner
& nhiều tổ chức phân tích độc lập) toàn hệ thống
1.1.4 Một số phần mềm mã nguồn mở
OpenOffice: Bộ công cụ phần mềm văn phòng mã nguồn mở, miễn phí và tương thích với các định dạng tài liệu của Microsoft Office
UniKey là một phần mềm miễn phí và hiệu quả giúp người dùng gõ tiếng Việt trên hệ điều hành Windows Phần mềm này hỗ trợ nhiều bảng mã tiếng Việt và các kiểu gõ khác nhau, đồng thời tích hợp công cụ chuyển đổi giữa các bảng mã một cách dễ dàng.
Mozilla Firefox: Trình duyệt web mã nguồn mở phổ biến và tốt nhất hiện nay
Hệ điều hành của Linux dành cho máy bàn (PC) và máy tính xách tay (Laptop, Netbook ): Ubuntu, Fedora, Hacao, Redhat, CentOS, …
Cổng thông tin điện tử: Liferay, Uportal, DotnetNuke, ExoPlatform, DotnetNuke, Joomla, Moodle …
Diễn đàn: phpBB, Jforum, mvnForum, SMF …
Giới thiệu về PHP
PHP, viết tắt của Personal Home Page, được phát minh bởi Rasmus Lerdorf vào năm 1994 và đã được phát triển bởi nhiều cá nhân và tổ chức khác, trở thành một sản phẩm mã nguồn mở Đây là một ngôn ngữ kịch bản phía server, tương tự như các ngôn ngữ như ASP, JSP và ColdFusion PHP cho phép xây dựng các ứng dụng web tương tác trên Internet hoặc intranet, hỗ trợ kết nối với nhiều loại cơ sở dữ liệu như MySQL, Oracle, SQL Server và Access.
Lưu ý rằng chỉ từ phiên bản 4.0 trở đi, PHP mới hỗ trợ session Bên cạnh đó, PHP có khả năng xử lý chuỗi rất mạnh mẽ, vì vậy bạn có thể sử dụng ngôn ngữ lập trình này cho các yêu cầu liên quan đến xử lý chuỗi.
Giới thiệu về MySQL
MySQL là cơ sở dữ liệu SQL mã nguồn mở phổ biến nhất, được phát triển bởi công ty MySQL AB Công ty này chuyên cung cấp các dịch vụ hỗ trợ doanh nghiệp liên quan đến cơ sở dữ liệu MySQL.
MySQL là một hệ quản trị cơ sở dữ liệu (CSDL) quan trọng, giúp quản lý và xử lý dữ liệu có cấu trúc, từ danh sách đơn giản đến các thông tin phức tạp trong mạng doanh nghiệp Hệ thống này cho phép người dùng thêm, truy cập và xử lý dữ liệu một cách hiệu quả, đóng vai trò thiết yếu trong việc tính toán và là một phần không thể thiếu trong nhiều ứng dụng khác nhau.
MySQL là hệ quản trị cơ sở dữ liệu quan hệ, cho phép lưu trữ dữ liệu trong các bảng chuyên biệt, giúp tăng tốc độ và sự linh hoạt Các bảng này được liên kết thông qua các quan hệ, cho phép kết nối dữ liệu từ nhiều bảng khác nhau SQL, hay ngôn ngữ truy vấn có cấu trúc, là phần quan trọng của MySQL, được sử dụng phổ biến để truy cập cơ sở dữ liệu.
MySQL là phần mềm mã nguồn mở, cho phép bất kỳ ai sử dụng và thay đổi mà không tốn phí Người dùng có thể tải MySQL từ internet và nghiên cứu mã nguồn để tùy chỉnh theo nhu cầu cá nhân Phần mềm này được phát hành dưới GPL (GNU General Public License), quy định quyền lợi và nghĩa vụ của người sử dụng Nếu không đồng ý với GPL hoặc muốn tích hợp MySQL vào ứng dụng thương mại, người dùng có thể mua bản quyền thương mại từ nhà cung cấp.
MySQL là một hệ quản trị cơ sở dữ liệu nổi bật nhờ vào tốc độ nhanh, tính đáng tin cậy và giao diện dễ sử dụng Nó được phát triển dựa trên sự hợp tác chặt chẽ với người dùng, cung cấp nhiều tính năng thiết thực So với các hệ quản trị cơ sở dữ liệu khác, MySQL thường được đánh giá cao trên các trang web chuyên chấm điểm.
MySQL đã được phát triển để quản lý các cơ sở dữ liệu lớn một cách hiệu quả và nhanh chóng hơn so với các giải pháp hiện tại Nó đã chứng minh được khả năng hoạt động trong những môi trường sản xuất đòi hỏi cao trong nhiều năm qua Nhờ vào quá trình phát triển liên tục, MySQL hiện cung cấp nhiều hàm hữu ích, mang lại sự kết nối, tốc độ và bảo mật, giúp nó trở thành lựa chọn lý tưởng cho việc truy cập cơ sở dữ liệu trên internet.
MySQL là một hệ thống client/server đa luồng, cho phép hỗ trợ nhiều thiết bị đầu cuối và các chương trình client khác nhau Nó bao gồm các thư viện, công cụ quản trị và nhiều giao diện lập trình, giúp tối ưu hóa hiệu suất và khả năng tương tác với người dùng.
Các nhà cung cấp cung cấp MySQL như một thư viện đa luồng, cho phép kết nối dễ dàng trong ứng dụng, giúp tạo ra sản phẩm nhỏ gọn, nhanh chóng và dễ quản lý hơn.
MySQL cung cấp nhiều phần mềm được phân phối sẵn, giúp người dùng dễ dàng tìm kiếm ứng dụng yêu thích và ngôn ngữ hỗ trợ MySQL.
Cài đặt cấu hình PHP, MySQL, Apache
Phần mềm Appserv và Wampserver khi cài đặt là tự động cấu hình webserver và php, mysql, apache và các ứng dụng nhƣ phpmyadmin, sqllitemanager
Tải phần mềm Appserv tại địa chỉ http://www.appservnetwork.com/
Chạy file cài đặt màn hình đầu tiên là
Hình 1.1 Cửa số Welcome khi cài AppServ
Nhấn Next để sang bước tiếp
Hình 1.2 Thông tin giấy phép sử dụng phần mềm
Nhấn Igree để đồng ý giấy phép sử dụng phần mềm
Hình 1.3 Chọn thư mục để cài đặt
Nhấn Browse … để chọn thƣ mục cài đặt sau đó nhấn Next để tiếp tục
Hình 1.4 Chọn các thành phần cần cài đặt
Lựa chọn các thành phần cần cài đặt nhấn Next để tiếp tục
Hình 1.5 Thông tin về người quản lý và port truy cập webserver
Nhập tên tài khoản, địa chỉ e-mail của người quản lý; thiết lập cổng http để truy cập webserver nhấn Next để tiếp tục
Hình 1.6 Nhập mật khẩu cho tài khoản root
Nhập mật khẩu để đăng nhập hệ quản trị cơ sở dữ liệu MySQL nhấn Install để tiến hành cài đặt
Hình 1.7 Quá trình cài đặt AppServ
Khi kết thúc quá trình cài đặt tạo một Server ảo chạy web PHP Với cài đặt mặc định
- C:\AppServ\www là địa chỉ webroot, nơi copy các file php
- C:\AppServ\mysql\data\ chứa CSDL MySQL, mỗi CSDL sẽ là mọt folder, để sao lưu dữ liệu MySQL, đơn gian chỉ việc copy folder này thành nhiều bản sao
- Để quản trị CSDL MySQL, truy nhập địa chỉ sau từ trình duyệt: http://localhost/phpMyAdmin
- Vào http://localhost/phpinfo.php để xem thông tin đầy đủ về server vừa cài
Thư mục mặc định cho host public_html là C:\AppServ\www, đây chính là webroot nơi bạn có thể sao chép các file PHP Để truy cập, hãy mở trình duyệt và nhập địa chỉ http://localhost.
Hình 1.8 Trang chủ của AppServ
Nhấn vào dòng phpMyAdmin Database Manager Version 2.9.0.2 để vào quản lý, tạo database
Hình 1.9 Đăng nhập vào phpMyAdmin
Wampserver là phần mềm mã nguồn mở hỗ trợ thiết lập môi trường thực thi ứng dụng PHP trên Windows một cách đơn giản Nó bao gồm các thành phần thiết yếu như Apache, MySQL và PHP, giúp người dùng dễ dàng cài đặt và sử dụng để chạy các ứng dụng PHP.
Bước 1: Để bắt đầu cài đặt Wampserver click đúp vào file Wampserver vừa download về, sau dó chọn Next để bắt đầu quá trình cài đặt
Bước 2: Nhấn chọn I accept the agreement và nhấn Next để tiếp tục
Bước 3: Thư mục cài đặt mặc định của Wampserver là C:\wamp Nếu bạn muốn thay đổi thư mục này, hãy nhấn vào nút Browse, chọn thư mục mới và sau đó nhấn Next để tiếp tục quá trình cài đặt.
Bước 4: Chọn Next ở bước tiếp theo
Bước 5: Chọn Install để bắt đầu quá trình cài đặt Wampserver
Bước 6: Màn hình cài đặt Wampserver
Bước 7: Để thông tin mặc định cho bước này và nhấn Next
Bước 8: Hoàn thành các bước cài đặt
Bước 9: Đến đây là đã cài đặt thành công Wampserver Sau khi chạy thì Wampserver sẻ hiển thị ở khay đồng hồ
Biểu tượng Wampserver có ba trạng thái màu sắc: màu đỏ biểu thị Wampserver chưa hoạt động, màu cam cho biết có lỗi port (thường do xung đột port, với port mặc định là 80), và màu xanh cho biết Wampserver đã chạy Để khắc phục lỗi, bạn cần thực hiện các bước sửa chữa phù hợp.
Nếu ở bước 3 không thay đổi thư mục cài đặt của Wampserver thì theo đường dẫn sau:
C:\wamp\bin\apache\Apache2.x\httpd.conf
To change the port in the httpd.conf file, locate the line with the value 80 and replace it with 8080 After making this adjustment, restart Wampserver by right-clicking the Wampserver icon in the system tray and selecting "Restart All Services."
Sau khi Restart lại Wampserver nếu không lỗi gì thì Wampserver sẻ chuyển qua màu xanh nhƣ hình thì cài đặt thành công.
Xử lý dữ liệu với phpMyAdmin
MySQL là một hệ quản trị cơ sở dữ liệu lý tưởng cho các ứng dụng Web PHP, hoàn toàn miễn phí và thường được tích hợp trong các gói cài đặt như PHP, Apache và phpMyAdmin Bài viết này sẽ hướng dẫn bạn cách tạo, thêm, xóa và sửa cơ sở dữ liệu thông qua giao diện phpMyAdmin.
Mở trình duyệt web nào và gõ http://localhost:port/phpMyAdmin và đăng nhập (port là cổng truy cập Webserver)
Bước 1 Nhấn Home chọn Tab database
Để tạo cơ sở dữ liệu, đầu tiên bạn cần khai báo tên cho cơ sở dữ liệu trong mục "Create database" và chọn định dạng utf8_general_ci để hỗ trợ tiếng Việt Cuối cùng, nhấn nút "Create" để hoàn tất quá trình tạo cơ sở dữ liệu.
Ví dụ: Tạo database có tên là tintuc
Hình 1.10 Tạo cơ sở dữ liệu tintuc
Bước 1 Chọn database muốn tạo bảng
Bước 2 Mục Name: khai báo tên table muốn tạo
Bước 3 Mục Number of columns: khai báo số cột trong table
Hình 1.11 Tạo bảng dữ liệu
Bước 5 Khai báo các các cột trong table
Hình 1.12 Tạo các trường dữ liệu cho bảng
4) Thêm dữ liệu vào Table
Ví dụ: Thêm 2 record vào table theloai nhƣ sau:
Hình 1.13 Nhập dữ liệu cho bảng
5) Xem dữ liệu trong Table
Bước 1 Chọn table muốn xem dữ liệu
Ví dụ: Xem dữ liệu trong table theloai
Hình 1.14 Xem dữ liệu của bảng
6) Xóa/Sửa dữ liệu trong Table
Bước 1 Chọn table muốn xóa sửa (ví dụ theloai)
Sửa record: Nhấn nút Edit (chiếc bút chì) trên dòng chứa record
Xóa record : Nhấn nút Delete trên dòng chứa record
Hình 1.15 Xoá và sửa dữ liệu của bảng
Chỉnh field: Nhấn nút Change Xóa field : Nhấn nút Drop Thêm cột : Nhấn nút Go trong mục Add
Hình 1.16 Sửa cấu trúc bảng
Bước 1 Chọn table cần đổi tên
Bước 3 Rename table to: gõ tên mới
Ví dụ: Đổi tên table theloai thành theloaitin
Hình 1.17 Đổi tên bảng dữ liệu
Bước 1 Chọn cơ sở dữ liệu
Bước 2 Chọn bảng cấn xóa và nhấn link Drop
Ví dụ: Xóa table theloaitin
Hình 1.18 Xoá bảng dữ liệu
Bước 3 Nhấn nút Browse để chọn file sql
Ví dụ: Import dữ liệu từ file db1.sql
Hình 1.19 Import dữ liệu từ file sql
Bước 1 Chọn database cần export
Bước 3 Export: chọn các table cần export
Bước 4 Chọn Save output to a file
Bước 5 Chọn kiểu file là SQL và nhấn nút Save
Ví dụ: Export tất cả các table trong database tintuc ra file dbtin.sql
Hình 1.20 Export dữ liệu từ file sql
Ví dụ: Xóa database tintuc
Hình 1.21 Xoá cơ sở dữ liệu
Bài tập
1 Cài đặt và cấu hình Webserver bằng phần mềm Appserv
2 Cài đặt và cấu hình Webserver bằng phần mềm Wampserver
3 Sử dụng phpmyAdmin để tạo cơ sở dữ liệu
LẬP TRÌNH VỚI PHP
Cấu trúc của PHP
PHP là một ngôn ngữ kịch bản phía máy chủ, hoạt động trên nền tảng PHP Engine và được quản lý thông qua các ứng dụng Web Server như IIS hay Apache.
Khi người dùng truy cập trang PHP, Web Server sẽ gọi PHP Engine để biên dịch trang PHP và trả về kết quả cho người dùng.
Hình 2.1 Quá trình thông dịch trang PHP
Để phát triển ứng dụng PHP, bạn có thể sử dụng các chương trình soạn thảo văn bản như Notepad, EditPlus, Dreamweaver, Notepad++, NetBeans, hoặc Zend Studio Hãy lưu các tập tin với định dạng *.php PHP cho phép kết hợp lệnh HTML và lệnh PHP, vì vậy nó được coi là một ngôn ngữ lập trình kịch bản tương tự như Javascript hoặc VBScript.
Các lệnh của PHP sử dụng cú pháp nhƣ sau:
Cách 2: Cú pháp ngắn gọn
Cách 3: Cú pháp giống với ASP
Cách 4: Cú pháp bắt đầu bằng script
Trong PHP để kết thúc một dòng lệnh ta sử dụng dấu ";"
1-Giá trị biến Str:
Chẳng hạn khai báo trang hello.php với nội dung nhƣ ví dụ sau:
Ví dụ: Trang hello.php
::Welcome to PHP
Kết quả trả về nhƣ hình khi triệu gọi trang này trên trình duyệt
Hình 2.2 Kết quả thực hiện trang hello.php
Ví dụ: Trang script.php
::Welcome to PHP
Giá trị của paging:
Kết quả trả về khi triệu gọi trang này trên trình duyệt
Hình 2.3 Kết quả thực hiện trang script.php
To enable the use of ASP-style scripts or scriptlets in PHP, you must configure the php.ini file by setting asp_tags = On, as the default setting is Off.
Khi đó trong trang PHP, thay vì khai báo nhƣ sau:
Thì ta có thể khai báo:
%> Để lập trình bằng ngôn ngữ PHP cần chú ý những điểm sau:
Cuối câu lệnh có dấu ;
Biến trong PHP có tiền tố là $
Mỗi phương thức đều bắt đầu { và đóng bằng dấu }
Khi khai báo biến thì không có kiễu dữ liệu
Nên có giá trị khởi đầu cho biến khai báo
Phải có chi chú (comment) cho mỗi feature mới
Sử dụng dấu // hoặc # để giải thích cho mỗi câu ghi chú
Sử dụng /* và */ cho mỗi đoạn ghi chú
Khai báo biến có phân biệt chữ hoa hay thường
2.1.2 Chú thích trong PHP Để ghi chú một dòng thì ta sử dụng cặp dấu //
// Khai báo biến để paging $sotrang=$pagenumber;
Trong trường hợp có nhiều dòng cần ghi chú sử dụng cặp dấu /* và */, ví dụ khai báo ghi chú nhƣ sau:
Khai báo biến để đọc dữ liệu trong đó totalRows là biến trả về tổng số bản ghi
$result = mysql_query($stSQL, $link);
$totalRows=mysql_num_rows($result);
Ngoài ra, cũng có thể sử dụng dấu # để khai báo ghi chú cho từng dòng
# Khai báo biến để paging $sotrang=$pagenumber;
2.1.3 In kết quả trong PHP
Khác với các ngôn ngữ lập trình như ASP, JSP và Perl, PHP cho phép in ra giá trị từ biến, biểu thức, hàm và giá trị cụ thể một cách dễ dàng thông qua các đoạn mã đơn giản.
Giá trị của paging:
1) Sử dụng Echo echo là một cấu trúc ngôn ngữ, nó cho phép sử dụng có dấu hoặc không dấu ngoặc đơn: echo or echo()
Ví dụ dưới đây sẽ cho thấy làm thế nào để hiển thị các chuỗi khác nhau với lệnh echo (các chuỗi cũng có thể chữa mã HTML)