Bài giảng lập trình wep PHP

83 393 0
Bài giảng lập trình wep PHP

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình – Website để làm gì? Ai dùng? Trình độ người – Viết mã lệnh, xây dựng các module, các lớp dùng dùng? Bố cục? Nội dung? Hình ảnh? v.v… chung,…  Phân tích  Kiểm thử – Mối liên hệ giữa các nội dung? Thứ tự các nội – Kiểm tra các liên kết dung (kịch bản website) – Kiểm tra các lỗi bảo mật  Thiết kế – Kiểm tra hiển thị trên các trình duyệt phổ biến – Sơ đồ cấu trúc website, giao diện, CSDL, nội – Kiểm tra tốc độ tải trang trên các loại mạng, các dung từng trang, liên kết các trang,v.v… loại dường truyền khác nhau,v.v…

Học phần  Thời lượng – 30 lý thuyết + 15 thực hành Lập trình ứng dụng web Nguyễn Thanh Bình Khoa Công nghệ thông tin Đại học Quy Nhơn Email: thanhbinh@qnu.edu.vn Phone: 098.333.1601  Đánh giá – Tiểu luận – Bài tập lớn  Môi trường – PHP 5.4 & MySQL – WampServer – Notepad++, Eclipse for PHP developers (Helios) Mục tiêu Nội dung  Nắm vững khái niệm sở ngôn ngữ lập trình PHP  Tổng quan thiết kế web  Sử dụng điều khiển thiết kế web với PHP  PHP MySQL  Xây dựng xử lý thành phần giao diện ứng dụng  Ngôn ngữ PHP  Lập trình hướng đối tượng với PHP Tài liệu tham khảo Hỏi đáp  PHP 5.4 manual  Murach’s PHP and MySQL  www.w3schools.com  www.qhonline.info Nội dung  Nhắc lại số khái niệm Tổng quan thiết kế web Nguyễn Thanh Bình  Phân loại website  Một số bước phát triển website  Giới thiệu hướng dẫn cài đặt phần mềm hỗ trợ xây dựng website Khoa Công nghệ thông tin Đại học Quy Nhơn Email: thanhbinh@qnu.edu.vn Nội dung Một số khái niệm  Domain Name (tên miền)  Nhắc lại số khái niệm – Là tên máy chủ gắn với địa IP  Phân loại website  Một số bước phát triển website  Giới thiệu hướng dẫn cài đặt phần mềm hỗ trợ xây dựng website – Máy chủ DNS thực việc ánh xạ có yêu cầu truy cập – Được chia thành nhiều cấp, cấp ngăn cách dấu chấm – Ví dụ: qnu.edu.vn gắn với 203.162.31.116 • vn: Việt Nam (cấp 1) • edu: tổ chức giáo dục (cấp 2) • qnu: tên quan (cấp 3) – Chú ý: tên localhost gắn với IP 127.0.0.1 Một số khái niệm (tiếp)  Server (máy chủ) 10 Một số khái niệm (tiếp)  Client (máy khách) – Là máy tính có cấu hình cao, hoạt động ổn định, chuyên cung cấp tài nguyên, dịch vụ cho máy tính khác – Máy khai thác dịch vụ máy chủ – Một máy chủ dùng cho hay nhiều mục đích Tên máy chủ thường gắn với mục đích sử dụng, ví dụ: – Một máy tính vừa client vừa server • File server – Với dịch vụ thường có phần mềm riêng để khai thác – Một máy tính khai thác dịch vụ • Mail server • Web server 11 12 Một số khái niệm (tiếp)  Protocol (giao thức) Một số khái niệm (tiếp)  Port (cổng dịch vụ) – Là tập hợp quy định phải tuân theo để truyền tải thông tin mạng – Là số nguyên nằm khoảng 0-65535 – Mỗi dịch vụ thường có giao thức riêng, ví dụ: • HTTP: giao thức truyền siêu văn – Hai dịch vụ khác phải chiếm cổng khác nhau, dịch vụ chiếm nhiều cổng • FTP: giao thức truyền file – Một số cổng mặc định – Dùng để xác định dịch vụ máy chủ • SMTP: giao thức gửi email • HTTP: 80 DNS: 53 • POP3: giao thức lấy email client • FTP: 21 SSH: 22 • SMTP: 25 POP3: 110 13 Một số khái niệm (tiếp) 14 Một số khái niệm (tiếp)  Web page:  URL () – Là chuỗi dùng để xác định vị trí cách khai thác tài nguyên (file mạng) – Cấu trúc: giao_thức://địa_chỉ_server(hoặc IP_server)/đường_dẫn/tên_file • Ví dụ: http://itqnu.vn/tin tuc/index.html – Mặc định, số thành phần URL bỏ qua • Giao thức, cổng: trình duyệt mặc định – trang nội dung viết nhiều ngôn ngữ khác trả kết client định dạng ngôn ngữ đánh dấu siêu văn HTML  Website: – tập hợp web page (trang web) có nội dung thống phục vụ cho mục đích  Web browser: – Là phần mềm chạy client để khai thác dịch vụ web – Ví dụ: Chrome, Firefox, Internet Explorer, Opera, • Tên file: server mặc định 15 16 Nội dung  Nhắc lại số khái niệm Phân loại website  Dựa vào công nghệ phát triển, có loại – Web tĩnh (static web)  Phân loại website • Viết HTML (kết hợp CSS, JS)  Một số bước phát triển website • Dễ phát triển, chi phí xây dựng thấp, chạy nhanh  Giới thiệu hướng dẫn cài đặt phần mềm hỗ trợ xây dựng website • Tương tác yếu – Web động (dynamic web) • Viết nhiều ngôn ngữ (PHP, ASP, JSP,…) • Phát triển phức tạp • Tương tác mạnh 17 18 Web tĩnh Web động URL yêu cầu URL yêu cầu Web Server URL yêu cầu HTML Client Network HTML Web Server URL yêu cầu  Mọi người sử dụng nhận kết giống  Trang web viết HTML, thay đổi có thay đổi người xây dựng  Khả tương tác yếu  Webserver hoạt động giống file server 19 Network HTML Biên dịch, Thực thi Trang web động HTML Client  Mỗi người sử dụng nhận nội dung khác phụ thuộc vào kết chạy chương trình  Trang web viết HTML + Ngôn ngữ lập trình phía server Có thể thay đổi người sử dụng  Khả tương tác mạnh 20 Web động  Một số công nghệ xây dựng web động – Client side Nội dung  Nhắc lại số khái niệm  Phân loại website • Flash, JavaScript, Applet, VBScript chạy client – Server side  Một số bước phát triển website  Giới thiệu hướng dẫn cài đặt phần mềm hỗ trợ xây dựng website • Common Gateway Interface (CGI) • Java Server Pages (JSP) • Access Server Pages (ASP, ASP.Net) • Pert • Personal Home Page Tools (PHP) – Mã nguồn mở 21 Một số bước phát triển website  Đặc tả 22 Một số bước phát triển website  Lập trình – Website để làm gì? Ai dùng? Trình độ người dùng? Bố cục? Nội dung? Hình ảnh? v.v…  Phân tích – Viết mã lệnh, xây dựng module, lớp dùng chung,…  Kiểm thử – Mối liên hệ nội dung? Thứ tự nội dung (kịch website)  Thiết kế – Kiểm tra liên kết – Kiểm tra lỗi bảo mật – Kiểm tra hiển thị trình duyệt phổ biến – Sơ đồ cấu trúc website, giao diện, CSDL, nội dung trang, liên kết trang,v.v… 23 – Kiểm tra tốc độ tải trang loại mạng, loại dường truyền khác nhau,v.v… 24 Nội dung Các phần mềm hỗ trợ  Nhắc lại số khái niệm  Ngôn ngữ sử dụng: PHP 5.3  Phân loại website  Web server & DBMS: Apache & MySQL  Một số bước phát triển website – WAMP (for Windows), LAMP (for Linux)  Giới thiệu hướng dẫn cài đặt phần mềm hỗ trợ xây dựng website – MAMP (for Mac), SAMP (for Solaris) – XAMPP (cross-platform)  IDE: – Eclipse, NetBean,… – Dreamweaver, MS Expression,… 25 WAMP – Windows, Apache, MySQL, PHP – Notepad++,… 26 Hỏi đáp  Download: – http://www.wampserver.com 27 Nội dung  Giới thiệu PHP  PHP Ngôn ngữ PHP – Cách chèn mã PHP vào mã HTML – Trang PHP Nguyễn Thanh Bình Khoa Công nghệ thông tin Đại học Quy Nhơn Email: thanhbinh@qnu.edu.vn – Quy tắc viết mã lệnh PHP – Biến, hằng, kiểu liệu, toán tử, thích – Các cấu trúc điều khiển – Mảng – Chuỗi Nội dung  PHP (tiếp) – Hàm – Sử dụng lại mã – Xử lý file – Xử lý liệu Form – Cookie, session Giới thiệu PHP  Lịch sử  Ưu điểm  Đặc điểm Giới thiệu  PHP (PHP: Hypertext Preprocessor) – Là ngôn ngữ script server – Là ngôn ngữ để viết trang web động • Ảnh hưởng từ: C, C++, Java, Perl, Tcl – Ra đời năm 1994 • Rasmus Lerdorf (1968, GreenLand) • Tên gốc Personal Home Page Tools – Các phiên bản: • 1.0, 2.0, 3.0, 4.0, 4.1,… (nhiều người phát triển) Ưu điểm PHP  Ngôn ngữ dễ học, dễ viết  Mã nguồn mở (open source code) – Miễn phí, download dễ dàng từ Internet – Có thể làm việc mã nguồn, thêm, sửa, sử dụng phân phối  Mã nguồn không cần sửa lại nhiều triển khai hệ điều hành khác (Windows, Linux, Unix,…) • Dùng phổ biến nay: PHP 5.0 (7/2004) • Phiên nhất: PHP 5.4.4 (6/2012) Ưu điểm PHP  Có thể chạy nhiều web server khác (Apache, IIS,…) Đặc điểm PHP  Có khả hướng đối tượng  Thông dịch  Có thể kết nối với nhiều loại DBMS khác nhau: – SQL Server, Oracle, DB2, PostgreSQL, Adabas, dBase, Empress, FilePro, mSQL, Solid,… – Phổ biến nhất: MySQL Nhúng PHP vào HTML  Có thể nhúng mã PHP vào vị trí trang HTML Nhúng PHP vào HTML & Trang PHP  Đoạn mã PHP đặt giữa: :  Ta sử dụng dạng rút gọn sau (không khuyến khích): Trang PHP Nhúng PHP vào HTML  Một cấu trúc lệnh thông thường PHP tách làm nhiều phần, phần đặt  Kết đoạn lệnh PHP đưa đưa vào vị trí mà đoạn lệnh PHP chiếm chỗ Trang PHP dau tien Day la noi dung HTML 10 Kết nối MySQL từ PHP  Thiết lập php.ini PHP script – extension=php_mysqli.dll Thư viện chuẩn Thư viện cải tiến mysql mysqli Sử dụng lớp Sử dụng hàm mysql Thư viện mysql cải tiến PHP5  mysqli  mysqli_stmt  mysqli_result  Ưu điểm – Hỗ trợ lập trình hướng đối tượng – Hỗ trợ nhân phân tán CSDL Sử dụng hàm mysqli – Nén mã hóa liệu kết nối – Tối ưu hiệu mã Các bước truy cập CSDL MySQL Tạo kết nối đến database server Lựa chọn CSDL Chọn bảng mã (nếu cần) Xây dựng truy vấn Thực truy vấn Xử lý kết trả Dọn dẹp tài nguyên Bước - Tạo kết nối  Dùng hàm mysql: $biến_kết_nối = mysql_connect(“máy_chủ”, “tên”, “mật_khẩu”);  Dùng hàm mysqli: $biến_kết_nối = mysqli_connect(“máy_chủ”, “tên”, “mật_khẩu”, “CSDL_chọn”);  Dùng đối tượng mysqli (OOP): $biến_kết_nối = new mysqli(“máy_chủ”, “tên”, “mật_khẩu”, “CSDL_chọn”); Đóng kết nối đến server 69 Bước - Tạo kết nối (tiếp)  Để tránh lỗi ta kết hợp thêm hàm die: $biến_kết_nối = mysql_connect(“máy_chủ”,“tên”,“mật_khẩu”) or die(“Không kết nối được”);  Chú ý: – Hàm die(“Chuỗi”): Đưa thông báo kết thúc – Với cách viết lệnh die() thực lệnh trước không thành công Bước – Chọn bảng mã (nếu cần)  Dùng hàm mysql: Bước - Lựa chọn CSDL  Dùng hàm mysql: mysql_select_db(“Tên CSDL”,$biến_kết_nối) or die (“Chưa có CSDL”);  Dùng hàm mysqli: mysqli_select_db($biến_kết_nối,“Tên CSDL”) or die (“Chưa có CSDL”);  Dùng đối tượng mysqli (OOP): $biến_kết_nối->select_db(“Tên CSDL”) or die (“Chưa có CSDL”); Bước – Xây dựng truy vấn  Xây dựng truy vấn: mysql_query ("SET NAMES ‘character set’“ [,$biến_kết_nối]);  Dùng hàm mysqli: $sql = “Câu lệnh SQL”; – Câu truy vấn SELECT, UPDATE, DELETE, CREATE, ALTER, mysqli_query ([$biến_kết_nối,] "SET NAMES ‘character set’");  Dùng đối tượng mysqli (OOP): $biến_kết_nối->query ( "SET NAMES ‘character set’"); 70 Bước - Thực truy vấn  Dùng hàm mysql: $kqua = mysql_query($sql[,$biến_kết_nối]) or die(“Không thực SQL”);  Dùng hàm mysqli: $kqua = mysqli_query([$biến_kết_nối,]$sql) or die(“Không thực SQL”);  Dùng đối tượng mysqli (OOP): $kqua = $biến_kết_nối->query($sql) or die(“Không thực SQL”); Bước 6: Xử lý kết trả  Một số hàm cần thiết: – mysql_fetch_array($kqua[,kiểu_kquả]): • Trả dòng liệu $kqua dạng mảng giá trị • Trả false dòng lấy ($kqua rỗng duyệt hết dòng $kqua) • Kiểu_kquả nhận giá trị: – MYSQL_ASSOC: giá trị mảng trả truy cập qua $key tên trường “bảng” – MYSQL_NUM: giá trị mảng trả truy cập qua $key số thứ tự trường bảng – MYSQL_BOTH: dùng cách Bước 6: Xử lý kết trả (tiếp)  Một số hàm cần thiết: – mysql_fetch_row($kqua): có chức tương tự sử dụng hàm mysql_fetch_array($kqua, MYSQL_NUM) – mysql_fetch_assoc($kqua): có chức tương tự sử dụng hàm mysql_fetch_array($kqua, MYSQL_ASSOC) Bước 6: Xử lý kết trả (tiếp)  Một số hàm cần thiết: – mysql_num_rows($kquả): trả số lượng ghi $kquả – mysql_affected_rows(): trả số ghi bị tác động lệnh mysql_query liền trước – mysql_error(): thông báo lỗi (nếu có) – mysql_errno(): mã lỗi  Hàm mysql_fetch_array có tốc độ chậm không đáng kể so với hàm mysql_fetch_row, mysql_fetch_assoc lại tiện lợi nên ta nên sử dụng hàm 71 Bước 6: Xử lý kết trả (tiếp)  Dùng hàm mysql: $row = mysql_fetch_row($kqua); $row = mysql_fetch_assoc($kqua); Bước 6: Xử lý kết trả (tiếp)  Ví dụ: [...]... chuyển sang vòng lặp tiếp } ?> 26 Bài tập cấu trúc điều khiển  Bài tập 1: Cho một mảng 10 phần tử chứa các giá trị từ 1>20 Hãy xuất ra trình duyệt những số chẵn, số lẻ có trong mảng đã cho đó (kết hợp với phần mảng phía sau)  Bài tập 2: Xuất ra trình duyệt bảng cửu chương từ 2->10 Mảng trong PHP  Khái niệm mảng trong PHP  Khai báo mảng  Bài tập 3: Viết chương trình nhận vào 1 số tự nhiên N, tìm... (tiếp)  Chú ý: – Biến trong PHP phân biệt chữ hoa, chữ thường – Biến trong PHP không bắt buộc phải khai báo trước khi sử dụng • Được tự động khai báo vào lần gán giá trị đầu tiên • Tuy nhiên nếu sử dụng biến chưa khởi tạo có thể gây lỗi (có khai báo nhưng không khởi tạo) – Kiểu dữ liệu lưu trong biến có thể thay đổi trong quá trình lập trình 12 Ví dụ sử dụng biến  Ví dụ 1 < ?php $a = 10; //bien a co gia...Trang PHP đầu tiên (tiếp) Quy tắc viết mã PHP Quy tắc viết mã lệnh trong PHP Chú thích trong PHP  Phân biệt chữ hoa/chữ thường  //Dòng chú thích  Mỗi lệnh kết thúc bởi chấm phẩy (;)  #Dòng chú thích – Trừ lệnh cuối trước khóa ?> có thể bỏ qua ;  /*  Khối (nhiều) lệnh được đặt trong cặp { } Đoạn chú thích trên nhiều dòng  Xem thêm tại: */ – https://sites.google.com/site/pcdinh2/phpvietna... $GLOBALS[‘tên_biến_toàn_cục’] = &$biến_toàn_cục Sử dụng biến toàn cục trong hàm (tiếp) Sử dụng biến toàn cục trong hàm (tiếp)  Thảo luận: cho biết kết quả của đoạn chương trình sau  Thảo luận: cho biết kết quả của đoạn chương trình sau < ?php $a = 1; $b = 10; < ?php $b = 10; function tang() { global $a; $a = $a + 1; $b = $b + 1; echo “(trong)a=$a b=$b”; } tang(); echo “(ngoai)a=$a b=$b”; ?> function tang() { global... (tiếp)  Thảo luận: cho biết kết quả của đoạn chương trình sau < ?php $a = 1; $b = 10; function tang() { $a = $a + 1; $GLOBALS['b'] = $GLOBALS['b'] + 1; echo “(trong)a=$a b=$b”; } Biến tĩnh  Biến tĩnh: – Là biến cục bộ mà giá trị của nó được lưu trữ qua nhiều lần gọi hàm – Chỉ được khởi tạo một lần duy nhất tại thời điểm khai báo lần đầu tiên trong suốt quá trình thực thi script tang(); echo “(ngoai)a=$a... //lỗi Biến tĩnh (tiếp)  Thảo luận: cho biết kết quả của đoạn chương trình sau < ?php function bienTinh(){ static $dem = 1; echo "Bien tinh: $dem "; $dem++; } function bienThuong(){ $dem = 10; echo "Bien thuong: $dem "; $dem++; } bienTinh(); bienThuong(); bienTinh(); bienThuong(); bienTinh(); bienThuong(); ?> 16 Kiểu dữ liệu  PHP hỗ trợ 4 loại kiểu dữ liệu Kiểu dữ liệu & Chuyển đổi kiểu dữ liệu... duy nhất 1 lần – Giá trị của hằng chỉ thuộc các kiểu cơ bản – Hằng có thể được truy cập tại bất cứ vị trí nào trong mã lệnh của chương trình Hằng (tiếp)  Hằng trong PHP được định nghĩa bởi hàm define theo cú pháp: define (string tên_hằng, giá_trị_hằng)  Ví dụ : < ?php define(‘PI’,3.14); $r=4; echo “Diện tích hình tròn: ”.$r*$r*PI; ?> 22 Hằng (tiếp)  Kiểm tra sự tồn tại của hằng bằng lệnh: defined(“tên_hằng”)... nhánh if (tiếp)  Ví dụ: < ?php $a = 2; $b = 3; if ($a > $b){ echo ‘$a co gia tri lon hon $b’; } else { echo ‘$b co gia tri lon hon $a’; } ?> < ?php $a = 10; if ($a % echo } elseif echo } elseif echo } else { echo } ?> 4 == 0){ ‘$a chia het cho 4’; ($a % 4 == 1) { ‘$a chia 4 du 1’; ($a % 4 == 2) { ‘$a chia 4 du 2’; ‘$a chia 4 du 3’; Rẽ nhánh if (tiếp)  Ví dụ: toán tử tam phân < ?php $a = 10; $thongBao =... mcodingstandards – http://framework.zend.com/manual/en/codingstandard.coding-style.html 11 Biến  Biến là vùng nhớ lưu giá trị có thể thay đổi được trong chương trình Biến  Khai báo biến trong PHP: $tên_biến  Khai báo  Biến động, biến tĩnh  Biến trong PHP có tính định kiểu thấp  Tham trị, tham chiếu – Không chỉ định kiểu dữ liệu khi khai báo biến  Phạm vi sử dụng biến Biến (tiếp)  Một số quy định khi... in mảng 10 phần tử có giá trị ngẫu nhiên từ 0-100 < ?php < ?php $arr = array(10); $arr = array(10); for($i = 1; $i Thao tác mảng (tiếp)  Ví dụ list: tạo và in TKB < ?php $arr = ('thứ hai'=>'Đi học', ‘thứ ba'=>'Thực hành', ... tiếp ?> 40 Bài tập (tiếp)  Bài 2: Bài tập (tiếp)  Bài 3: Bài tập (tiếp)  Bài 4: Bài tập (tiếp)  Bài 5: 41 Session  Session đối tượng cho phép truyền giá trị từ trang PHP sang trang PHP khác... lệnh PHP ?> Trang PHP Nhúng PHP vào HTML  Một cấu trúc lệnh thông thường PHP tách làm nhiều phần, phần đặt < ?php … ?>  Kết đoạn lệnh PHP đưa đưa vào vị trí mà đoạn lệnh PHP. .. Phổ biến nhất: MySQL Nhúng PHP vào HTML  Có thể nhúng mã PHP vào vị trí trang HTML Nhúng PHP vào HTML & Trang PHP  Đoạn mã PHP đặt giữa: < ?php … ?>: < ?php //Đoạn lệnh PHP ?>  Ta sử dụng dạng

Ngày đăng: 28/03/2016, 22:34

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan