Ngôn ngữ PHP

Tổng quan về ứng dụng web

 Lập trình web với PHP

 Kết nối cơ sở dữ liệu MySQL bằng PHP

pdf85 trang | Chia sẻ: Mr Hưng | Lượt xem: 914 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Ngôn ngữ PHP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NGÔN NGỮ PHP Giảng viên: Hoàng Văn Hiệp Bộ môn Kỹ thuật Máy tính Viện CNTT – ĐH Bách Khoa Hà Nội NỘI DUNG BÀI GIẢNG  Tổng quan về ứng dụng web  Lập trình web với PHP  Kết nối cơ sở dữ liệu MySQL bằng PHP NỘI DUNG BÀI GIẢNG  Tổng quan về ứng dụng web  Lập trình web với PHP  Kết nối cơ sở dữ liệu MySQL bằng PHP TỔNG QUAN VỀ ỨNG DỤNG WEB  Các ứng dụng web chạy trên môi trƣờng web theo mô hình client / server.  Môi trƣờng web bao gồm các web server và các trình duyệt (client) đƣợc kết nối với nhau GIAO TIẾP GIỮA CLIENT VÀ SERVER  Server chờ và nhận các yêu cầu từ các client.  Server xử lý yêu cầu tƣơng ứng rồi gửi kết quả đến các client.  Client hiển thị kết quả trả về tùy chƣơng trình ứng dụng. WEB SERVER  Là các server đƣợc cài phần mềm web server.  Có nhiệm vụ chờ các yêu cầu, xử lý yêu cầu và gửi kết quả.  Các phần mềm web server thông dụng hiện nay  IIS  Apache WEB CLIENT  Là các trình duyệt  Gửi yêu cầu đến server  Hiển thị kết quả trả về CÁC CÔNG NGHỆ WEB ĐỘNG  Cho phép tƣơng tác với ngƣời sử dụng.  Kết nối với các hệ CSDL nhằm lƣu trữ, khai thác thông tin hiệu quả.  Kết nối với các hệ thống tài nguyên khác nhƣ âm thanh, hình ảnh, video  Một số công nghệ web động đang đƣợc sử dụng hiện nay  PHP  ASP  .NET  JSP NỘI DUNG BÀI GIẢNG  Tổng quan về ứng dụng web  Lập trình web với PHP  Kết nối cơ sở dữ liệu MySQL bằng PHP GIỚI THIỆU NGÔN NGỮ PHP  PHP là ngôn ngữ kịch bản phía server  Các kịch bản (lệnh) PHP đƣợc thực hiện trên server trƣớc khi trả về cho trình duyệt  PHP hỗ trợ nhiều hệ CSDL nhƣ MySQL, SQL Server, Oracle, Infomix, Sybase TẠI SAO LÀ PHP  PHP chạy trên nhiều hệ điều hành khác nhau nhƣ Windows, UNIX, Linux, Symbian,  Tƣơng thích với các phần mềm web server nhƣ Apache, IIS,  Là phần mềm mã nguồn mở, đƣợc cung cấp miễn phí. CÀI ĐẶT WEB SERVER  Cài đặt web server Apache  Cài đặt PHP  Cài đặt MySQL => Cài đặt XAMPP CẤU HÌNH WEB SERVER  Sử dụng công cụ cấu hình sẵn có của XAMPP  Cho phép bật tắt và cấu hình chi tiết các dịch vụ  Nội dung của các trang web đƣợc lƣu vào thƣ mục htdocs trong thƣ mục cài đặt xampp SẴN SÀNG LẬP TRÌNH WEB SO SÁNH PHP VÀ JAVASCRIPT  PHP là ngôn ngữ kịch bản phía server  JavaScript là ngôn ngữ kịch bản phía client.  Kịch bản PHP đƣợc thực hiện trên server. Một yêu cầu PHP luôn trả về client dƣới dạng HTML thuần túy.  Kịch bản JavaScript đƣợc thực hiện trên client. Mã nguồn JavaScipt đƣợc đƣa về client rồi mới thực hiện. CÚ PHÁP PHP CƠ BẢN  Một khối lệnh PHP bao giờ cũng đƣợc bắt đầu bằng <?php // các lệnh PHP ?>  Một file PHP có thể chứa các lệnh PHP, các thẻ HTML, các đoạn mã JavaScript. VÍ DỤ Demo 2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <?php // dong chu thich /* doan chu thich */ echo "Đoạn này viết bằng PHP!"; ?> Đoạn này viết bằng HTML. BIẾN TRONG PHP  Biến luôn luôn đi sau ký tự $  Đặt tên biến theo quy tắc đặt tên giống nhƣ các ngôn ngữ khác.  Không cần phải khai báo  Kiểu biến đƣợc xác định khi gán với giá trị tƣơng ứng. VÍ DỤ VỀ BIẾN <?php $x = 3; // bien kieu nguyen $y = 1.23; // bien kieu so thuc $s = "Chuoi ky tu"; // bien keu xau ky tu echo $x; echo ""; echo $y; echo ""; echo $s; echo ""; ?> KIỂU XÂU KÝ TỰ  Luôn đặt trong dấu “” hoặc dấu „‟  Hiển thị một chuỗi, một số, dùng lệnh echo hoặc lệnh print của PHP  Ghép các chuỗi với nhau sử dụng ký tự . Một số hàm xử lý chuỗi  strlen() độ dài chuỗi  strpos() tìm vị trí của chuỗi con. GIÁ TRỊ CỦA BIẾN TRONG CHUỖI  Lấy giá trị của biến chứ không phải là tên của biến VÍ DỤ - CHUỖI KÝ TỰ String <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <?php $s = "Hello world!"; echo $s . ""; echo "Độ dài chuỗi ký tự: " . strlen($s). ""; echo "Nội dung: $s"; ?> CÁC TOÁN TỬ - SỐ HỌC Phép toán Ý nghĩa + cộng - trừ * nhân / chia % lấy phần dư ++ tăng -- giảm CÁC TOÁN TỬ - GÁN Phép toán Ý nghĩa = gán += cộng rồi gán -= trừ rồi gán *= nhân rồi gán /= chia rồi gán %= lấy phần dư rồi gán CÁC TOÁN TỬ - SO SÁNH Phép toán Ý nghĩa == so sánh bằng != khác < nhỏ hơn > lớn hơn <= nhỏ hơn hoặc bằng >= lớn hơn hoặc bằng CÁC TOÁN TỬ - LOGIC Phép toán Ý nghĩa && và || hoặc ! đảo BIỂU THỨC IFELSE  Cú pháp – dạng 1 if điều_kiện lệnh thực hiện nếu điều kiện đúng  Cú pháp – dạng 2 if điều_kiện lệnh thực hiện nếu điều kiện đúng else lệnh thực hiện nếu điều kiện sai BIỂU THỨC ĐIỀU KIỆN IFELSE  Cú pháp – dạng 3 if điều_kiện_1 lệnh thực hiện nếu điều kiện 1 đúng elseif điều_kiện_2 lệnh thực hiện nếu điều kiện 2 đúng else lệnh thực hiện nếu điều kiện 2 sai VÍ DỤ - IF if statement <?php $d=date("D"); if ($d=="Fri") echo "Have a nice weekend!"; elseif ($d=="Sun") echo "Have a nice Sunday!"; else echo "Have a nice day!"; ?> BIỂU THỨC LỰA CHỌN SWITCH CASE  Cú pháp switch (biểu_thức) { case giá_trị_1: lệnh thực hiện nếu biểu_thức = giá_trị_1; break; case giá_trị_2: lệnh thực hiện nếu biểu_thức = giá_trị_2; break; default: lệnh thực hiện nếu biểu_thức khác các giá_trị_1 và giá_trị_2; } VÍ DỤ - SWITCH Switch Statement <?php switch ($x) { case 1: echo "Number 1"; break; case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default: echo "No number between 1 and 3"; } ?> KIỂU MẢNG  Lƣu trữ một hoặc nhiều giá trị trong một biến đơn (biến mảng)  Các kiểu mảng Mảng chỉ số – dùng chỉ số để phân biệt các thành phần mảng Mảng kết hợp – dùng một chuỗi ký tự (ID) để xác định các thành phần mảng KIỂU MẢNG – CHỈ SỐ  Khai báo $names = array(“An”, “Binh”, “Cuong”); hoặc $names[0] = “An”; $names[1] = “Binh”; $names[2] = “Cuong”;  Sử dụng echo $names[0] . $names[1] . $names[2]; KIỂU MẢNG – KẾT HỢP  Khai báo $ages = array("An"=>32, "Binh"=>30, "Cuong"=>34); hoặc $ages[“An”] = 32; $ages[“Binh”] = 30; $ages[“Cuong”] = 34;  Sử dụng echo “Tuổi của An là ” . $ages[„An‟]; VÍ DỤ - MẢNG Array <?php $names = array("An", "Binh", "Cuong"); $ages = array("An"=>32, "Binh"=>30, "Cuong"=>34); echo "Ten 3 nguoi: " . $names[0] . $names[1] . $names[2] . ""; echo "Tuoi cua An la ". $ages['An']; ?> VÒNG LẶP – XÁC ĐỊNH – FOR  Cú pháp for (khởi_tạo; điều_kiện; thay_đổi_biến) { Lệnh được lặp } VÍ DỤ - FOR For <?php for ($i = 0; $i < 5; $i++) { echo "Hello world $i"; } ?> VÒNG LĂP – KHÔNG XÁC ĐỊNH – WHILE  Cú pháp – dạng 1 while (điều_kiện) { lệnh đƣợc thực hiện khi nào điều kiện còn đúng; }  Cú pháp – dạng 2 do { lệnh đƣợc thực hiện khi nào điều kiện còn đúng; } while (điều_kiện); HÀM TRONG PHP  Tƣơng tự nhƣ trong JavaScript  Khai báo function tên_hàm(các_giá_trị_truyền) { // nội dung hàm return giá_trị_trả_về; } VÍ DỤ - HÀM Function <?php function add($x, $y) { $z = $x + $y; return $z; } echo add(1,4); ?> BÀI TẬP  Làm một số bài tập JavaScript bằng PHP. XỬ LÝ THÔNG TIN TỪ FORM  Form có tác dụng thu thập dữ liệu từ ngƣời sử dụng trên trình duyệt, sau đó đƣợc chuyển đến server.  Thông thƣờng ngƣời sử dụng nhập các thông tin vào form sau đó nhấn vào nút submit để chuyển các thông tin đó đến server THUỘC TÍNH ACTION  Là một thuộc tính của thẻ  Cho biết file kịch bản nào sẽ đƣợc tự động thực hiện khi thông tin chuyển đến server.  File kịch bản đó có nhiệm vụ xử lý thông tin đƣợc chuyển đến.  (chỉ xét file PHP) THUỘC TÍNH METHOD  Xác định phƣơng thức để truyền thông tin  Gồm 2 phƣơng thức GET  POST SO SÁNH 2 PHƢƠNG THỨC  Đều đƣợc sử dụng để truyền thông tin đến server bao gồm các trƣờng và giá trị của các trƣờng đó.  Thông tin gửi bằng phƣơng thức GET đƣợc hiển thị lên ô địa chỉ của trình duyệt, nhƣng bị hạn chế về độ dài (<100 ký tự) => Có thể trực tiếp gửi thông tin đến server mà không cần tạo form  Thông tin gửi bằng phƣơng thức POST không đƣợc hiển thị lên cửa sổ trình duyệt. => Sử dụng để gửi các thông tin quan trọng VÍ DỤ - FORM – PHƢƠNG THỨC GET <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Form 1 <form action="form1.php" method="get"> Tên của Tôi: <input name="Ten" type="text"><input name="Ho" type="text"> Giới tính: <input type="radio" name="GioiTinh" value="nam"> Nam <input type="radio" name="GioiTinh" value="nu"> Nữ Sở thích: <input type="checkbox" name="SoThich" value="docsach"> Đọc sách <input type="checkbox" name="SoThich" value="nghenhac"> Nghe nhạc <input type="checkbox" name="SoThich" value="xemphim"> Xem phim Tôi ở tại Việt Nam Lào Cam Pu Chia VÍ DỤ - PHƢƠNG THỨC GET nam&SoThich=docsach&SoThich=nghenhac&NoiO=vietnam VÍ DỤ - FORM – PHƢƠNG THỨC POST <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Form 2 <form action="form1.php" method=“post"> Tên của Tôi: <input name="Ten" type="text"><input name="Ho" type="text"> Giới tính: <input type="radio" name="GioiTinh" value="nam"> Nam <input type="radio" name="GioiTinh" value="nu"> Nữ Sở thích: <input type="checkbox" name="SoThich" value="docsach"> Đọc sách <input type="checkbox" name="SoThich" value="nghenhac"> Nghe nhạc <input type="checkbox" name="SoThich" value="xemphim"> Xem phim Tôi ở tại Việt Nam Lào Cam Pu Chia VÍ DỤ - PHƢƠNG THỨC POST XỬ LÝ FORM TRONG PHP  Thông tin đƣợc gửi bằng phƣơng thức GET đƣợc lƣu trong biến $_GET  Thông tin đƣợc gửi bằng phƣơng thức POST đƣợc lƣu trong biến $_POST  Có thể sử dụng biến $_REQUEST để lấy thông tin về form (trong trƣờng hợp không xác định phƣơng thức)  Thông tin đƣợc lƣu trong các biến dƣới dạng mảng kết hợp. VÍ DỤ - PHƢƠNG THỨC GET <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Form 2 <form action="form2get.php" method="get"> Họ tên: <input name="ten" type="text"> Tuổi:    <input name="tuoi" type="text"> <input type="submit" value="Send"> <meta http-equiv="Content-Type" content="text/html; charset=utf- 8" /> Xu ly form 2 <?php echo "Xin chào " . $_GET["ten"] . ""; echo "Bạn " . $_GET["tuoi"] . " tuổi." ?> VÍ DỤ - PHƢƠNG THỨC GET VÍ DỤ - PHƢƠNG THỨC POST <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Form 2 <form action="form2post.php" method=“post"> Họ tên: <input name="ten" type="text"> Tuổi:    <input name="tuoi" type="text"> <input type="submit" value="Send"> <meta http-equiv="Content-Type" content="text/html; charset=utf- 8" /> Xu ly form 2 <?php echo "Xin chào " . $_POST["ten"] . ""; echo "Bạn " . $_POST["tuoi"] . " tuổi." ?> VÍ DỤ - PHƢƠNG THỨC POST VÍ DỤ - SỬ DỤNG BIẾN REQUEST <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Form 2 <form action="form2request.php" method=“post"> Họ tên: <input name="ten" type="text"> Tuổi:    <input name="tuoi" type="text"> <input type="submit" value="Send"> <meta http-equiv="Content-Type" content="text/html; charset=utf- 8" /> Xu ly form 2 <?php echo "Xin chào " . $_REQUEST["ten"] . ""; echo "Bạn " . $_REQUEST["tuoi"] . " tuổi." ?> VÍ DỤ - SỬ DỤNG BIẾN REQUEST VÍ DỤ - FORM CÓ NHIỀU KIỂU INPUT KHÁC NHAU Form 3 <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0"> Họ tên Giới tính Nam Nữ Năm sinh for (i = 1900; i < 2008; i++) document.write("" + i + ""); Sở thích Nghe nhạc <input type="checkbox" name="xemphim" value="xemphim"> Xem phim <input type="checkbox" name="docsach" value="docsach"> Đọc sách Tự giới thiệu<textarea name="gioithieu"> Mật khẩu <input type="password" name="matkhau">     <input type="submit" name="Submit" value="Gửi thông tin"> VÍ DỤ - FORM CÓ NHIỀU KIỂU INPUT KHÁC NHAU Xu ly form 3 <?php echo "Họ tên: " . $_POST["hoten"] . ""; echo "Giới tính: " . $_POST[“gioitinh"] . ""; echo "Năm sinh: " . $_POST["namsinh"] . ""; echo "Nghe nhạc: " . $_POST["nghenhac"] . ""; echo "Xem phim: " . $_POST["xemphim"] . ""; echo "Đọc sách: " . $_POST["docsach"] . ""; echo "Tự giới thiệu: " . $_POST["gioithieu"] . ""; echo "Mật khẩu: " . $_POST["matkhau"] . ""; ?> VÍ DỤ - FORM CÓ NHIỀU KIỂU INPUT KHÁC NHAU VÍ DỤ - FORM CÓ NHIỀU KIỂU INPUT KHÁC NHAU KIỂM TRA SỰ THIẾT LẬP BIẾN  Để kiểm tra xem một biến đã đƣợc thiết lập hay chƣa.  Sử dụng hàm isset(tên_biến); Có giá trị true nếu biến đã đƣợc thiết lập Có giá trị false nếu biến đã đƣợc thiết lập VÍ DỤ - HÀM ISSET() PHP String <?php if (isset($var)) echo "Biến đã được thiết lập"; else echo "Biến chưa được thiết lập"; $var = 1; if (isset($var)) echo "Biến đã được thiết lập"; else echo "Biến chưa được thiết lập"; ?> BÀI TẬP 1. BÀI TẬP 2. THỜI GIAN TRONG PHP  PHP sử dụng hàm date() để định dạng thời gian dƣới các dạng khác nhau: thứ, ngày, tháng, năm, giờ, phút, giây.  Cú pháp date(định_dạng, mốc_thời_gian)  định_dạng chỉ ra dạng thức dữ liệu muốn lấy  mốc_thời_gian để lấy dữ liệu, nếu để trống thì mặc định là mốc thời gian hiện tại THỜI GIAN TRONG PHP  Mốc thời gian là khoảng thời gian đƣợc tính bằng giây từ thời điểm 00:00:00 giờ GMT ngày 1/1/1970.  Các định dạng ngày tháng  d – ngày (01 – 31)  m – tháng (01 – 12)  M – tháng (gồm 3 ký tự đầu)  F – tên tháng  Y – năm (gồm 4 chữ số)  l – thứ trong tuần (ký tự)  z – ngày trong năm (0 – 365)  THỜI GIAN TRONG PHP  Các định dạng thời gian  h – giờ (01 – 12) H – giờ (00 – 23)  i – phút (00 – 59)  s – giây (00 – 59)  a – am hoặc pm  VÍ DỤ - THỜI GIAN PHP date <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <?php echo "Today is " . date("l") . ", " . date("F") . " " . date("d") . " " . date("Y") . ""; echo "Time: " . date("h") . ":" . date("i") . ":" . date("s") . " " . date("a") . ""; ?> INCLUDE FILE  Chèn nội dung của 1 file vào các file khác tại vị trí gọi hàm.  Sử dụng lại những đoạn mã chƣơng trình có tính lặp lại trong nhiều trang ví dụ nhƣ header, footer, menu  Sử dụng hàm include() hoặc hàm require() với tham số là file cần chèn. INCLUDE() VÀ REQUIRE()  Mục đích đều là chèn nội dung của một file nào đó vào các file khác tại vị trí gọi hàm.  Nếu có lỗi, hàm include() tạo ra thông báo, các kịch bản PHP phía sau hàm tiếp tục đƣợc thực hiện.  Nếu có lỗi hàm require() tạo ra thông báo và các kịch bản PHP phía sau hàm không đƣợc thực hiện. VÍ DỤ - INCLUDE <meta http-equiv="Content-Type" content="text/html; charset=utf- 8" /> Include File Home Contact About <?php include("header.php"); ?> Đây là trang chủ <?php include("header.php"); ?> Giới thiệu VÍ DỤ - INCLUDE VÀ REQUIRE <?php include("head.php"); ?> Đây là trang chủ <?php require("head.php"); ?> Đây là trang chủ COOKIE  Đƣợc dùng để phân biệt ngƣời sử dụng.  Là một file chứa thông tin đƣợc server đặt trên máy của ngƣời sử dụng (client).  Mỗi khi client gửi yêu cầu tới server, thông tin cookie trên client cũng đồng thời đƣợc gửi. TẠO COOKIE  Sử dụng hàm setcookie()  Cú pháp setcookie(name, value, expire);  name – tên của cookie  value – giá trị cookie  expire – thời điểm cookie hết hạn sử dụng  Hàm setcookie() phải đặt trước thẻ  Ví dụ setcookie(“user”, “hello”, time() + 60);  Tạo cookie có tên là user với giá trị là hello, cookie tồn tại trong 60s tính từ thời điểm hiện tại ĐỌC GIÁ TRỊ COOKIE  Trong PHP, sử dụng biến $_COOKIE để đọc giá trị các cookie  Các cookie đƣợc lƣu dƣới dạng mảng kết hợp  Cú pháp $_COOKIE[tên_cookie]  Để kiểm tra xem cookie có tồn tại hay không, sử dụng hàm isset Ví dụ: isset($_COOKIE[“user”]) XÓA COOKIE  Để xóa cookie, sử dụng hàm setcookie() với thời điểm trong quá khứ  Ví dụ setcookie(“user”, “”, time() – 60); VÍ DỤ - COOKIE <?php // ccreate.php setcookie("user", "Hello", time() + 3600); ?> Read Cookie <?php if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!"; else echo "Welcome Guest!"; ?> SESSION - PHIÊN  Session đƣợc dùng để lƣu thông tin về ngƣời sử dụng trong quá trình truy nhập một ứng dụng web nào đó; ví dụ: forum, website mua bán trực tuyến,  Session đƣợc bắt đầu từ khi ngƣời sử dụng truy nhập ứng dụng (nhập địa chỉ), kết thúc khi thoát khỏi ứng dụng (đóng cửa sổ)  Session tồn tại đối với tất cả các trang của cùng một ứng dụng KHỞI TẠO SESSION  Khi sử dụng session bắt buộc khởi tạo đối với tất cả các trang muốn truy nhập thông tin trong session  Cú pháp session_start()  Chú ý: hàm session_start() phải đƣợc đặt trƣớc thẻ TRUY NHẬP NỘI DUNG SESSION  Thông tin trong session đƣợc lƣu trong biến $_SESSION dƣới dạng mảng kết hợp.  Đọc ghi session thông qua biến $_SESSION  Kết hợp với hàm isset() để kiểm tra 1 thông tin session nào đó đƣợc thiết lập hay chƣa. XÓA THÔNG TIN TRONG SESSION  Để xóa 1 thông tin nào đó trong session sử dụng hàm unset()  Ví dụ unset($_SESSION[“username”]);  Để xóa toàn bộ nội dung session, sử dụng hàm session_destroy() VÍ DỤ - SESSION – SLOGIN.PHP <?php session_start(); // Xu ly thong tin dang nhap $_SESSION["status"] = "login"; ?> Login Test Session VÍ DỤ - SESSION <?php session_start(); ?> Test Session <?php if (isset($_SESSION["status"]) && ($_SESSION["status"]=="login")) echo "Abc"; else echo "Đăng nhập để xem nội dung"; ?> TỰ ĐỌC  PHP File  PHP File Upload  PHP Mail  PHP Math  BÀI TẬP  Tạo website bao gồm 2 trang index.php và content.php.  Trang index.php  Nếu chƣa đăng nhập thì tạo form đăng nhập (gồm username và password)  Nếu đăng nhập rồi thì có link cho phép thoát và link đến trang content.php  Trang content.php  Nếu đăng nhập thì hiện nội dung nào đó  Nếu chƣa đăng nhập thì thông báo

Các file đính kèm theo tài liệu này:

  • pdfphp_9957.pdf
Tài liệu liên quan