Bài giảng Lập trình mạng - Chương 9: Lập trình web chạy ở server bằng PHP

pdf 19 trang ngocly 1470
Bạn đang xem tài liệu "Bài giảng Lập trình mạng - Chương 9: Lập trình web chạy ở server bằng PHP", để 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:

  • pdfbai_giang_lap_trinh_mang_chuong_9_lap_trinh_web_chay_o_serve.pdf

Nội dung text: Bài giảng Lập trình mạng - Chương 9: Lập trình web chạy ở server bằng PHP

  1. Môn học : Lập trình mạng Chương 9 LẬP TRÌNH WEB CHẠY Ở SERVER BẰNG PHP 9.1 Tổng quát về PHP 9.2 Cách viết script PHP 9.3 Thí dụ xây dựng 1 webiste bằng PHP Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 359
  2. 9.1 Tổng quát về PHP ƒ PHP (Pre HyperText Processor) là ngôn ngữ script chạy ở máy server. ƒ PHP dùng cú pháp giống như C++. ƒ Hiện PHP có thể chạy trên nhiều HĐH khác nhau từ Windows, Linux, OS2, MacOS, ƒ Ý tưởng là viết module thông dịch source PHP và "hook" vào Webserver. ƒ PHP cung cấp rất nhiều nhóm hàm API ₫ể tiện lập trình trên nhiều lĩnh vực khác nhau, trong ₫ó nhóm các hàm API "odbc_x" cho phép truy xuất ₫ến database bất kỳ theo chuẩn giao tiếp ODBC. ƒ Qui trình cài ₫ặt và cấu hình chế ₫ộ làm việc cho PHP phụ thuộc vào HĐH mà ta muốn cài PHP. Trên Windows (IIS, PWS), bạn chỉ cần chạy trình installer.exe rồi trả lời trực quan 1 số cửa sổ Wizard. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 360
  3. 9.2 Cách viết script PHP ƒ Một trang PHP là trang HTML có tăng cường 1 số ₫oạn script viết bằng PHP. Để module xử lý PHP nhận biết ₫ược file nào mình xử lý, ta phải dùng extension ₫ã qui ₫ịnh theo cấu hình (mặc ₫ịnh là *.php). ƒ Đoạn script PHP ₫ược ₫óng trong tag . ƒ Cú pháp PHP rất giống với C++, PHP phân biệt chữ HOA và thường. ƒ Biến PHP luôn bắt ₫ầu bằng ký tự $, thí dụ $name, $database, ƒ Giống như nhiều ngôn ngữ script khác, PHP không kiểm tra kiểu dữ liệu, những kiểu cơ bản là Boolean, Integer, floating point, String, Array, Object ƒ PHP cho phép ép (casting) kiểu dữ liệu : $var = (int) "123abc"; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 361
  4. Các toán tử, quyền ưu tiên, tính kết hợp Operators P A !, ~, ++, , @, (the casting operators) 16 Right *, /, % 15 Left +, -. 14 Left > 13 Left =, > 12 Non-associative ==, != 11 Non-associative & 10 Left ^ 9 Left | 8 Left && 7 Left || 6 Left ? : (conditional operator) 5 Left =, +=, -=, *=, /=, %=, ^=, .=, &=, |= 4 Left And 3 Left Xor 2 Left Or 1 Left Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 362
  5. Các lệnh thực thi PHP Lệnh gán : $i = expr; Lệnh if : if (condition) statement1 else statement2 Lệnh switch : switch(expr) { case expr: statements break; default: statements break; } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 363
  6. Các lệnh thực thi PHP (tt) Lệnh while : while (condition) { statements } Lệnh do while : do { statements } while (condition); Lệnh for : for (start_expr; cond_expr; iter_expr) { statements } Định nghĩa function : function soundcheck($a, $b, $c) { return "Testing, $a, $b, $c"; } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 364
  7. Các biến ₫ịnh sẵn củaPHP $GLOBALS : dãy các tham khảo ₫ến các biến toàn cục, mỗi phần tử ₫ược nhận dạng bằng chỉ số, chỉ số thường là tên biến tương ứng. $_SERVER : dãy các biến ₫ược thi ết lập bởi Web server hay ứng dụng nào ₫ó khởi ₫ông môi trường thực thi cho ₫oạn script hiện hành, biến này tương tự với biến dãy $HTTP_SERVER_VARS. $_GET : dãy các tham số ₫ược gởi tới script từ chuỗi query URL (từ Web browser), biến này tương tự với biến $HTTP_GET_VARS. Truy xuất tham số thông qua chỉ số, chỉ số thường là tên tham số ₫ó. Thí dụ : $_GET["txtDiachi"] sẽ truy xuất tham số trong chuỗi URL yêu cầu có tên là txtDiachi ₫ược gởi về dùng method GET. $_POST : dãy các tham số ₫ược g ởi tới script từ lệnh POST, biến này tương tự với biến $HTTP_POST_VARS. Truy xuất tham số thông qua chỉ số, chỉ số thường là tên tham số ₫ó, thí dụ : $_POST["txtDiachi"]. Thí dụ : $_POST["txtDiachi"] sẽ truy xuất tham số trong form yêu cầu có tên là txtDiachi ₫ược gởi về dùng method POST. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 365
  8. Các biến ₫ịnh sẵn của PHP (tt) $_COOKIE : dãy các biến ₫ược gởi tới script từ cơ chế cookie của giao thức HTTP, biến này tương tự với biến $HTTP_COOKIE_VARS. Truy xuất tham số thông qua chỉ số, ch ỉ số thường là tên của cookie ₫ó. $_FILES : dãy các biến ₫ượ c gở i tới script từ lệnh " HTTP post file uploads"," biến này tương tự với biến $HTTP_POST_FILES. Truy xuất tham số thông qua chỉ số, chỉ số thường là tên của file ₫ó. $_ENV : dãy các biến ₫ượ c gở i tới script từ môi trường, biến này tương tự với biến $HTTP_ENV_VARS. Truy xuất tham số thông qua chỉ số, chỉ số thường là tên của biến môi trường ₫ó. $_REQUEST : dãy các tham số ₫ược gởi tới script từ các cơ chế gởi tham số GET, POST và COOKIE. Truy xuất tham số thông qua chỉ số, chỉ số thườ ng là tên tham số ₫ó. $_SESSION : dãy các biến ₫ược ₫ăng ký cho session script hiện hành. Truy xuất tham số thông qua chỉ số, chỉ số thường là tên biến ₫ó. Biến này tương tự với biế n $HTTP_SESSION_VARS. Bộ môn : Công ngh ệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 366
  9. Các hàm API củaPHP Do khả năng của ngôn ngữ script PHP không ₫ủ mạnh như ngôn ngữ lập trình chính quy nên nó cần 1 "₫ại gia" phía sau hỗ trợ. "Đại gia" phía sau PHP là các hàm API PHP, rất nhiều và ₫a dạng về chức năng. Hiện có trên 100 nhóm hàm API PHP khác nhau, mỗi nhóm gồm nhiều hàm cung cấp các ch ức năng liên quan ₫ến nhóm tương ứng. Thí dụ ₫ể truy xuất database thông qua giao tiếp ODBC, ta sẽ dùng các hàm trong nhóm ODBC, các hàm trong nhóm này ₫ều có tên bắt ₫ầu bởi tiếp ₫ầu ngữ "obdc_" : odbc_autocommit, odbc_binmode, odbc_close, odbc_close_all, odbc_commit, odbc_connect, odbc_cursor, odbc_do, odbc_error, odbc_errormsg, odbc_exec, odbc_execute, odbc_fetch_into, odbc_fetch_row, odbc_field_name, odbc_field_num, odbc_field_type, odbc_field_len, odbc_field_precision, odbc_field_scale, odbc_free_result, odbc_longreadlen, odbc_num_fields, odbc_pconnect, odbc_prepare, odbc_num_rows, odbc_result, odbc_result_all, odbc_rollback, odbc_setoption, odbc_tables, odbc_tableprivileges, odbc_columns, odbc_columnprivileges, odbc_gettypeinfo, odbc_primarykeys, odbc_foreignkey, odbc_procedures, odbc_procedurecolumns, odbc_specialcolumns, odbc_statistics Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 367
  10. 9.3 Thí dụ xây dựng 1 webiste bằng PHP Yêu cầu : tạo 1 website dùng công nghệ PHP cho phép người dùng tra danh bạ ₫iện thoại bằng Web Browser. Phân tích : cần 2 module chức năng : ƒ module chứa form nhập thông tin về các account cần tra. module này có thể là 1 trang HTML thuần tứy. ƒ và module truy tìm trên database các account thỏa mãn tiêu chuẩn tìm kiếm, module này là 1 trang PHP theo yêu cầu. Qui trịnh thực hiện cụ thể : ở ₫ây ta dùng môi trường lập trình Web của Microsoft tên là Visual InterDev. Qui trình ₫iển hình cụ thể ₫ược liệt kê trong các slide kế tiếp. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 368
  11. 1. Chạy InterDev, chọn Location và nhập tên của Project quản lý, rồi Open Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 369
  12. 2. Nhập tên Web server, trả lời các cửa sổ Wizard Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 370
  13. 3. Tạo trang HTML tên PHPInForm.htm, tạo form nhập liệu, tạo các phần tử trong form Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 371
  14. 4. Nội dung tag Form nhập liệu trong trang Web Tên thuê bao : Số ₫iện thoại : Địa chỉ : Lưu ý : 3 textbox trong form có tên lần lượt là txtTenthuebao, txtSodienthoai và txtDiachi. Trang PHP xử lý form có tên là Tradienthoai.php. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 372
  15. 5. tạo trang PHP tên là Tradienthoai.php, nhập code PHP tra danh bạ ₫iện thoại. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Trường ĐH Bách Khoa Tp.HCM Chương 9 : Lập trình Web chạy ở serverSlide dùng 373 PHP
  16. 6. Source code cụ thể của trang PHP Tradienthoai.php Ket qua tra danh ba theo yeu cau cua ban : <?php # xac dinh cac du lieu nhap tu form $ttbao = $_POST["txtTenthuebao"]; $sodthoai = $_POST["txtSodienthoai"]; $diachi = $_POST["txtDiachi"]; # connect to a DSN "Danhbadienthoai" with a user and password "" $connect = odbc_connect("MyDatabase", "", ""); # xay dung lenh SQL tim kiem $fsqlstart = 1; $newSQL="SELECT * FROM danhbadienthoai"; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 374
  17. 6. Source code cụ thể của trang PHP Tradienthoai.php (tt) if ($ttbao != "") { $newSQL = "$newSQL where tenthuebao like '%$ttbao%'"; $fsqlstart = 0; } if ($sodthoai != "") { if ($fsqlstart == 1) $newSQL = "$newSQL where sodienthoai like '%$sodthoai%'"; else $newSQL = "$newSQL and sodienthoai like '%$sodthoai%'"; $fsqlstart = 0; } if ($diachi != "") { if ($fsqlstart == 1) $newSQL = "$newSQL where diachi like '%$diachi%'"; else $newSQL = "$newSQL and diachi like '%$diachi%'"; $fsqlstart = 0; } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 375
  18. 6. Source code cụ thể của trang PHP Tradienthoai.php (tt) # perform the query $result = odbc_exec($connect, $newSQL); # fetch the data from the database $i = 1; if (odbc_fetch_row($result)) { # tao table va xuat hang dau tien printf(" "); printf(" So thu tu Ten thue bao So dien thoai Dia chi "); $tentbao = odbc_result($result, 2); $sodthoai = odbc_result($result, 3); $diachi = odbc_result($result, 4); print(" $i $tentbao $sodthoai $diachi \n"); $i = $i+1; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 376
  19. 6. Source code cụ thể của trang PHP Tradienthoai.php (tt) while(odbc_fetch_row($result)) { $tentbao = odbc_result($result, 2); $sodthoai = odbc_result($result, 3); $diachi = odbc_result($result, 4); print(" $i $tentbao $sodthoai $diachi \n"); $i = $i+1; } printf(" \n"); } else printf(" Khong tim duoc account nao thoa tieu chuan cua ban ca!! "); # close the connection odbc_close($connect); ?> Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 9 : Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 377