TỔNG QUAN HỌC THUẬT VÀ MÔ TẢ NỘI DUNG GIÁO TRÌNH LẬP TRÌNH WEB (THUD - MH19)


Tổng quan về giáo trình

Giáo trình Môn Lập trình Web (Mã tài liệu: THUD - MH19) là tài liệu đào tạo chuyên môn được ban hành theo Quyết định số 498/QĐ-CĐGTVTTWI-ĐT ngày 25/03/2019 của Hiệu trưởng Trường Cao đẳng Giao thông Vận tải Trung ương I. Tài liệu do Nhóm biên soạn thuộc Tổ Tin học & Ngoại ngữ – Khoa Cơ bản thực hiện, chịu trách nhiệm xuất bản phục vụ công tác giảng dạy và học tập chính khóa.

Mã môn học: THUD - MH19
Văn bản pháp lý: Quyết định số 498/QĐ-CĐGTVTTWI-ĐT (25/03/2019)
Đơn vị chuyên môn: Tổ Tin học & Ngoại ngữ - Khoa Cơ bản
Đơn vị ban hành: Trường Cao đẳng GTVT Trung ương I (Thụy An, Ba Vì, Hà Nội)
Cấp độ đào tạo: Trình độ Cao đẳng (Hệ chính quy)
Ngành đào tạo: Tin học ứng dụng
Quy mô cấu trúc: 10 bài học chuyên đề (Lý thuyết kết hợp Thực hành)

Về vị trí trong chương trình đào tạo, môn học đóng vai trò là học phần kỹ thuật chuyên ngành then chốt của sinh viên ngành Tin học ứng dụng bậc Cao đẳng. Mục tiêu học tập (Learning Outcomes) của giáo trình hướng đến việc trang bị cho người học:

  • Kiến thức về nguyên lý vận hành của kịch bản trình chủ (server-side script) dựa trên nền tảng PHP.
  • Kỹ thuật cấu hình các máy chủ dịch vụ web thông dụng (Internet Information Services - IIS, Apache Web Server).
  • Kỹ năng xử lý dữ liệu biểu mẫu (Form handling), kiểm soát phiên làm việc người dùng (Session/Cookie), và quản trị – tương tác với hệ quản trị cơ sở dữ liệu quan hệ MySQL.
  • Phương pháp xây dựng cấu trúc website phân tách theo mô hình mẫu giao diện (template layouts) và xử lý mẩu tin hàng loạt.

Cấu trúc tiếp cận của tài liệu được thiết kế theo tiến trình phát triển phần mềm tuần tự: thiết lập môi trường máy chủ $\rightarrow$ cú pháp ngôn ngữ lập trình $\rightarrow$ kiểm soát luồng điều khiển $\rightarrow$ quản lý trạng thái phiên $\rightarrow$ tương tác tầng cơ sở dữ liệu. Điểm đặc thù của giáo trình là gắn kết cú pháp ngôn ngữ C/C++ với cơ chế thông dịch của PHP Engine, đồng thời cung cấp mã nguồn mẫu chi tiết kèm hình ảnh chụp giao diện kiểm thử trực tiếp trên trình duyệt.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Toàn bộ dung lượng giáo trình được phân bổ qua 10 bài học chuyên đề có tính liên kết chặt chẽ:

  1. Bài 1: Giới thiệu và cài đặt ứng dụng PHP: Lịch sử hình thành ngôn ngữ PHP (phát minh bởi Rasmus Lerdorf năm 1994), mô hình hoạt động kịch bản trình chủ (Server Script) so sánh với ASP, JSP, ColdFusion. Hướng dẫn cài đặt gói php-4.zip, cấu hình tập tin php.ini (các chỉ thị session.save_path, display_errors, asp_tags), thiết lập PHP Engine trên IIS (Internet Information Server) qua cổng 80/85 và cấu hình tập tin httpd.conf của Apache Web Server. Phân biệt khối lệnh kịch bản <?php ?>, <?= ?>, <% %> và cú pháp ghi chú (//, /* */, #).
  2. Bài 2: Phương thức cơ bản trong PHP: Khái niệm cú pháp kế thừa ngôn ngữ C; quy tắc tiền tố biến $; các kiểu dữ liệu cơ bản (Boolean, Integer, Float, String, Object, Array); phương pháp ép kiểu và hàm chuyển đổi kiểu settype(); các hàm kiểm tra kiểu dữ liệu (is_array, is_bool, is_int, is_string,...); khái niệm biến của biến ($$); tầm vực của biến (cục bộ, toàn cục với từ khóa global); định nghĩa và kiểm tra hằng số qua define(), defined().
  3. Bài 3: Phép toán và phát biểu có điều kiện trong PHP: Hệ thống toán tử số học, toán tử quan hệ (>=, <=, ==, !=), toán tử logic (&&, ||, !, ~), toán tử gán rút gọn. Cấu trúc rẽ nhánh (if, if-else, elseif, switch-case) và cấu trúc vòng lặp (while, for, do-while, lệnh ngắt exit).
  4. Bài 4: Form và các phương thức: Kỹ thuật thu nhận dữ liệu từ các phần tử nhập liệu (input, radio, select); cơ chế truyền nhận dữ liệu thông qua phương thức POST và GET (QueryString); sử dụng mảng dữ liệu siêu toàn cục $HTTP_GET_VARS, $HTTP_POST_VARS và hàm kiểm tra tồn tại isset().
  5. Bài 5: Đối tượng Session và một số đối tượng khác: Cơ chế quản lý phiên làm việc bắt đầu từ phiên bản PHP 4.0; hàm khởi tạo session_start(); lấy định danh phiên session_id(); các thao tác quản lý phiên: session_register(), session_is_registered(), session_unregister(), session_unset(), session_destroy(). Xử lý lưu trữ thông tin phía trình khách (Cookie) qua setcookie(), $HTTP_COOKIE_VARS, session_set_cookie_params(), session_get_cookie_params().
  6. Bài 6: Hàm và tập tin: Kỹ thuật định nghĩa hàm người dùng (function), thiết lập giá trị tham số mặc định, phân biệt truyền tham trị và truyền tham biến qua ký hiệu &. Kỹ thuật nhúng tập tin định dạng kiểu dáng (style.css), phân chia bố cục giao diện web chuẩn thành 5 phân vùng (top, left, right, body, bottom), áp dụng chỉ thị include() / require() và xây dựng hàm thuật toán phân trang dữ liệu paging().
  7. Bài 7: Khai báo và sử dụng mảng: Cấu trúc mảng một chiều và mảng hai chiều; các thao tác khởi tạo, gán trị, truy xuất theo chỉ mục (index); các hàm xử lý mảng toán học và kích thước: sizeof(), max().
  8. Bài 8: Thao tác trên cơ sở dữ liệu MySQL: Giới thiệu hệ quản trị CSDL MySQL, cài đặt bản phân phối MySQL 4.x, cấu hình dịch vụ qua WinMySQLAdmin và tệp my.ini. Cú pháp ngôn ngữ SQL: định nghĩa dữ liệu CREATE DATABASE, CREATE TABLE (các kiểu dữ liệu int, tinyint, bigint, thuộc tính unsigned, DEFAULT); thao tác dữ liệu: truy vấn SELECT kết hợp WHERE, ORDER BY (ASC/DESC), GROUP BY với các hàm tổng hợp (AVG, MIN, MAX, COUNT, SUM), định danh lại cột bằng AS; thêm mới INSERT INTO, cập nhật UPDATE, và xóa dữ liệu DELETE.
  9. Bài 9: PHP và Database: Quy trình tương tác cơ sở dữ liệu qua thư viện hàm kết nối gốc của PHP: mysql_connect(), mysql_select_db(), mysql_close(). Thực thi phát biểu SQL qua mysql_query(), lấy số dòng tác động bằng mysql_affected_rows(), kiểm tra số bản ghi trả về qua mysql_num_rows(), và đọc dữ liệu theo mảng bằng mysql_fetch_array().
  10. Bài 10: Xóa, cập nhật dữ liệu dạng mảng: Kỹ thuật hiển thị dữ liệu danh mục đi kèm phần tử checkbox cùng tên (name="chkid"). Kết hợp mã kịch bản JavaScript (calculatechon(), isok()) với thẻ ẩn (hidden field) để thu thập chuỗi định danh. Sử dụng hàm xử lý chuỗi str_replace() và mệnh đề SQL WHERE ... IN (...) để thực hiện xóa hoặc cập nhật trạng thái (Activate = 1) cho nhiều mẩu tin cùng lúc.

Bảng tổng hợp các hàm cốt lõi theo chuyên đề trong giáo trình

Chuyên đề Các hàm và chỉ thị cốt lõi được mô tả Mục đích kỹ thuật
Kiểu dữ liệu & Biến settype(), is_array(), is_bool(), is_int(), is_string(), define(), defined() Chuyển đổi, kiểm tra kiểu dữ liệu, định nghĩa và kiểm tra hằng
Biểu mẫu & Tham số isset(), $HTTP_GET_VARS, $HTTP_POST_VARS, $_GET, $_POST Kiểm tra sự tồn tại và thu nhận dữ liệu từ QueryString / Form
Quản lý Phiên & Cookie session_start(), session_id(), session_register(), session_unregister(), session_unset(), session_destroy(), setcookie(), session_set_cookie_params() Khởi tạo, đọc, hủy phiên làm việc phía server và quản lý cookie phía client
Cấu trúc & Mô-đun include(), require(), function (truyền tham biến &$var) Tái sử dụng mã nguồn, nhúng template, đóng gói logic nghiệp vụ
Tương tác CSDL MySQL mysql_connect(), mysql_select_db(), mysql_query(), mysql_fetch_array(), mysql_num_rows(), mysql_affected_rows(), mysql_close() Mở kết nối, chọn CSDL, thực thi truy vấn, trích xuất dữ liệu mẩu tin

Kiến thức nền tảng được xây dựng

Giáo trình cung cấp hệ thống nguyên lý nền tảng của kỹ thuật lập trình web:

  • Cơ chế thông dịch kịch bản Server-Side: Phân định rõ quy trình xử lý yêu cầu (Request/Response Cycle), trong đó Web Server chuyển giao mã lệnh cho PHP Engine thông dịch thành mã HTML thuần trước khi trả về cho trình duyệt máy khách.
  • Mô hình Dữ liệu Quan hệ (RDBMS): Khái niệm ràng buộc khóa, mối quan hệ thực thể giữa bảng cha và bảng con (minh họa qua cấu trúc bảng đơn hàng tblOrders và chi tiết đơn hàng tblOrderDetails), cùng nguyên tắc xóa dữ liệu toàn vẹn (xóa bảng con trước, bảng cha sau).
  • Mô hình Hóa Bố cục Giao diện: Kỹ thuật chia tách mã nguồn tĩnh (HTML/CSS) và mã nguồn động (PHP), chuẩn hóa kích thước màn hình độ phân giải $800 \times 600$ (độ rộng bảng 778px) qua các tệp thành phần top.htm, left.htm, right.htm, bottom.htm.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical Skills): Cài đặt và cấu hình hệ thống web server (IIS, Apache HTTP Server); chỉnh sửa tham số tệp cấu hình php.ini, httpd.conf, my.ini; viết mã kịch bản PHP chuẩn cú pháp; xây dựng câu truy vấn SQL đa dạng (DDL, DML, Aggregation, Subqueries).
  • Kỹ năng phân tích (Analytical Skills): Phân tích luồng dữ liệu từ giao diện người dùng vào hệ thống; phân tích quan hệ giữa các bảng dữ liệu nghiệp vụ (tblCustomers, tblItems, tblSubCategories); phân tích cấu trúc điều kiện logic phục vụ phân trang (paging) và lọc danh mục.
  • Kỹ năng thực hành (Practical Competencies): Xây dựng các mô-đun chức năng CRUD (Create - Read - Update - Delete) hoàn chỉnh; kiểm soát lỗi nhập liệu phía client bằng JavaScript (onsubmit); thực hiện xử lý dữ liệu hàng loạt an toàn thông qua các cấu trúc điều khiển và toán tử tập hợp.

Phương pháp giảng dạy và học tập

Giáo trình được biên soạn phục vụ phương pháp giảng dạy tích hợp (Lý thuyết gắn liền Thực hành tại phòng máy):

Quy trình sư phạm 4 bước:
[Trình bày cú pháp/khái niệm] 

Phương pháp tiếp cận sư phạm (Pedagogical approach)

Tài liệu sử dụng phương pháp diễn giải trực quan dựa trên mã nguồn thực tế (Code-driven approach). Mỗi đơn vị kiến thức lý thuyết đều được chuyển hóa thành các tập tin kịch bản riêng biệt (ví dụ: variables.php, scope.php, sessionregister.php, paging.php, doinsert.php, lietketheonhom.php). Giảng viên sử dụng các tập tin này để minh họa trực tiếp cơ chế thông dịch của máy chủ.

Hệ thống bài tập và nghiên cứu tình huống (Case studies)

Các ví dụ và bài tập thực hành trong giáo trình được xây dựng dựa trên các tình huống quản lý cơ sở dữ liệu thương mại:

  • Xây dựng mô-đun quản lý danh bạ khách hàng (tblCustomers).
  • Xây dựng hệ thống quản lý hợp đồng bán hàng và lịch sử đơn hàng (tblOrders, tblOrderDetails, tblOrderDetailsHist).
  • Thiết kế hệ thống phân loại danh mục sản phẩm 2 cấp (tblCategories $\rightarrow$ tblSubCategories $\rightarrow$ tblItems).
  • Xây dựng chức năng duyệt xuất bản sản phẩm (Activate = 1) và xóa nhiều sản phẩm cùng lúc dựa trên giao diện hộp kiểm (checkbox).

Hướng dẫn tự học và đánh giá (Assessment & Self-study)

  • Phương pháp đánh giá: Đánh giá thông qua khả năng cài đặt môi trường, mức độ chính xác khi chuyển đổi yêu cầu quản lý thành câu truy vấn SQL, và khả năng lập trình hoàn thiện các trang tương tác cơ sở dữ liệu không phát sinh cảnh báo lỗi cú pháp.
  • Chỉ dẫn tự học: Sinh viên cần triển khai lần lượt việc dựng máy chủ ảo trên môi trường Windows (thư mục gốc ứng dụng C:\PHP hoặc htdocs của Apache); cấu hình bật cờ thông báo lỗi display_errors = On trong php.ini trong giai đoạn phát triển để phát hiện lỗi biến chưa định nghĩa (undefined variable); tự viết lại toàn bộ mã nguồn của các ví dụ trước khi làm bài tập thực hành mở rộng ở cuối mỗi bài.

Điểm nổi bật và cập nhật

Cơ sở kỹ thuật và các cập nhật kiến trúc

Nội dung giáo trình phản ánh các đặc tính kỹ thuật cốt lõi của môi trường máy chủ và ngôn ngữ PHP/MySQL trong hệ thống đào tạo ứng dụng:

  • Tích hợp đối tượng Session: Giáo trình chỉ rõ sự thay đổi từ phiên bản PHP 4.0 khi ngôn ngữ này chính thức hỗ trợ đối tượng Session nguyên bản, cho phép truyền dữ liệu trạng thái qua lại giữa các trang web mà không phụ thuộc hoàn toàn vào Cookie phía máy khách.
  • Khả năng tương thích môi trường máy chủ kép: Hướng dẫn cấu hình chi tiết trên cả hai nền tảng web server lớn: Microsoft IIS (thông qua cơ chế Virtual Site, cấu hình App Mappings ISAPI/CGI với php4ts.dll / php.exe) và Apache Web Server (thông qua chỉ thị ScriptAlias, AddType, Action trong httpd.conf).
  • Phân tách mã nguồn và giao diện: Ứng dụng kỹ thuật nhúng tập tin (include/require) kết hợp bảng định kiểu CSS bên ngoài (style.css), giúp tách biệt mã lệnh xử lý dữ liệu khỏi định dạng hiển thị, phản ánh phương pháp tiếp cận thiết kế giao diện chuẩn hóa.

Ứng dụng thực tế và tính tương thích nghiệp vụ

  • Quản lý dữ liệu phân tán theo nhóm: Ứng dụng thuộc tính onchange="document.frmMain.submit();" trên phần tử select kết hợp với truy vấn lọc để tạo hiệu ứng chuyển đổi danh mục động theo thời gian thực.
  • Xử lý giao dịch an toàn phía ứng dụng: Kết hợp hàm xác nhận người dùng JavaScript confirm() trong sự kiện onsubmit với mã lệnh điều hướng PHP header("Location: ...") sau khi thực thi câu lệnh SQL, đảm bảo giao diện người dùng không bị xung đột khi nạp lại trang.

Đối tượng sử dụng giáo trình

  1. Sinh viên chuyên ngành:
    • Sinh viên theo học hệ Cao đẳng chính quy ngành Tin học ứng dụng (theo chuẩn chương trình mã học phần THUD - MH19).
    • Yêu cầu kiến thức tiên quyết (Prerequisites): Đã hoàn thành các học phần về Ngôn ngữ lập trình C/C++ (để tiếp cận cú pháp hàm, biến, toán tử) và học phần Cơ sở dữ liệu (để nắm bắt các khái niệm bảng, khóa chính, quan hệ và cú pháp truy vấn SQL).
  2. Giảng viên chuyên môn:
    • Giảng viên bộ môn Tin học thuộc Khoa Cơ bản hoặc Khoa Công nghệ thông tin tại các trường Cao đẳng, trường nghề.
    • Tài liệu dùng để chuẩn hóa nội dung giảng dạy lý thuyết trên lớp và thiết lập các bài thực hành định kỳ tại phòng máy tính.
  3. Đối tượng tự học và nghiên cứu tham khảo:
    • Người học cần nắm bắt kiến thức nền tảng về lập trình web với ngôn ngữ PHP và cơ sở dữ liệu MySQL từ mức cấu hình hệ thống máy chủ đến mức viết mã ứng dụng hoàn chỉnh.

Câu hỏi thường gặp (FAQ)

1. Giáo trình này được ban hành cho đối tượng đào tạo nào?

Giáo trình được biên soạn chính thức cho sinh viên chuyên ngành Tin học ứng dụng trình độ Cao đẳng của Trường Cao đẳng Giao thông Vận tải Trung ương I, ban hành theo Quyết định số 498/QĐ-CĐGTVTTWI-ĐT ngày 25/03/2019.

2. Người học cần có kiến thức nền tảng nào trước khi bắt đầu giáo trình?

Theo khuyến nghị tại Bài 1 của giáo trình, người học cần có kiến thức nền tảng về ngôn ngữ lập trình C, C++ hoặc Visual C do cú pháp PHP được xây dựng dựa trên chuẩn C. Đồng thời, kiến thức về cơ sở dữ liệu quan hệ (như MySQL, SQL Server hoặc Oracle) là điều kiện cần thiết để thực hiện các bài học từ Bài 8 đến Bài 10.

3. Giáo trình tiếp cận việc kết nối cơ sở dữ liệu bằng công cụ và thư viện nào?

Giáo trình hướng dẫn quản trị cơ sở dữ liệu MySQL thông qua giao diện đồ họa WinMySQLAdmin / MySQL-Front và công cụ dòng lệnh; phần kết nối lập trình trong PHP sử dụng gói thư viện hàm gốc mysql_* (như mysql_connect(), mysql_select_db(), mysql_query(), mysql_fetch_array()).

4. Làm thế nào để thực hành các bài tập trong giáo trình đạt hiệu quả cao?

Người học cần cài đặt đầy đủ môi trường máy chủ web cục bộ (IIS hoặc Apache) kết hợp gói PHP và MySQL trên máy tính chạy hệ điều hành Windows; cấu hình chính xác đường dẫn thư mục lưu trữ phiên làm việc session.save_path trong tệp php.ini; sau đó lần lượt viết, thông dịch và kiểm tra từng tập tin kịch bản mẫu từ Bài 1 đến Bài 10 trên trình duyệt web.

5. Giáo trình có những tài liệu tham khảo bổ trợ chính thức nào?

Nội dung giáo trình được biên soạn tham khảo từ 4 tài liệu chuyên môn trong nước:

  • Phạm Quang Huy (2011), Giáo trình thiết kế Web và làm hoạt hình, NXB Giao thông vận tải.
  • Hoàng Hải (2010), Giáo trình tự học thiết kế Web động, NXB Lao động Xã hội.
  • Chu Văn Hoành (2014), Giáo trình thiết kế Web, NXB Giáo dục Việt Nam.
  • Đặng Ngọc Bình (2015), Thiết kế Web siêu tốc, NXB Khoa học kỹ thuật.

Kết luận

Giáo trình Môn Lập trình Web (Mã hiệu: THUD - MH19) của Trường Cao đẳng Giao thông Vận tải Trung ương I là tài liệu học thuật hoàn chỉnh, cung cấp hệ thống tri thức từ mức cài đặt hạ tầng dịch vụ mạng đến kỹ thuật lập trình ứng dụng web tương tác cơ sở dữ liệu.

Lộ trình học tập đề xuất theo giáo trình:
[Giai đoạn 1: Bài 1 - 3] Thiết lập môi trường máy chủ IIS/Apache, nắm vững cú pháp PHP nền tảng C-like.
[Giai đoạn 2: Bài 4 - 7] Xử lý Form GET/POST, kiểm soát Session/Cookie, tách bố cục Template & cấu trúc Mảng.
[Giai đoạn 3: Bài 8 - 10] Quản trị CSDL MySQL, thực thi ngôn ngữ SQL, lập trình CRUD và thao tác dữ liệu mảng.

Hệ thống mã nguồn mẫu, lược đồ cấu hình tệp tin (php.ini, httpd.conf, my.ini) và danh mục tài liệu tham khảo chuẩn mực là nguồn học liệu giá trị cho sinh viên ngành Tin học ứng dụng trong suốt quá trình tiếp thu kiến thức lập trình web.