1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng xây dựng ứng dụng web với PHP và MySQL TN411

293 373 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 293
Dung lượng 10,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Biến Variable Chứa dữ liệu  Tên b iến được bắt đầu bởi dấu $  Tên biến bắt đầu bằng một ký tự chữ cái hoặc _  Phân biệt giữa ký tự thường và HOA  Kiểu được xác định tại thời điểm gá

Trang 2

Nội dung

Giới thiệu PHP Cài đặt và cấu hình Web server

Trang 3

Web tĩnh vs Web động

Static website vs Dynamic website

Trang 4

Hỗ trợ làm việc với nhiều hệ QTCSDL

khác nhau MySQL, MSSQL, Oracle, DB2, Sybase, Firebird, PostgreSQL ,…

Trang 5

Là ngôn ngữ phát triển ứng dụng web phổ biến nhất thế giới hiện nay

Trang 6

Giới thiệu PHP

Lịch sử phát triển:

 Được tạo ra bởi Rasmus Lerdorf năm 1994 dưới dạng kịch bản Perl/CGI

 Được đặt tên là “Personal Home Page Tool”

 Sau đó được viết lại bằng ngôn ngữ C, hỗ trợ

truy xuất cơ sở dữ liệu

 Phiên bản đầu tiên được công bố năm 1997 với tên gọi PHP/FI 2.0 (Personal Home Pape / Forms Interpreter”)

 Phiên bản 3.0 được Andi và Zeev cải tiến có khả năng mở rộng mạnh mẽ, hỗ trợ OOP

Trang 7

Giới thiệu PHP

Lịch sử phát triển:

 Chính thức được đổi tên thành PHP từ v3.0

 Năm 1999 phiên bản thử nghiệm v4.0 được công

bố cho các nhà phát triển

 Phần lõi được thiết kế lại hoàn toàn mới có tên Zend engine nhằm cải tiến tốc độ xử lý, cải tiến các mô- đun

 Chính thức được phát hành năm 2000, hỗ trợ

khả năng truy xuất nhiều hệ QTCSDL, xử lý

mạnh mẽ, bổ sung hàng loạt các tính năng mới

và những cải tiến so với phiên bản cũ

Trang 8

Giới thiệu MySQL

Là một hệ quản trị Cơ sở dữ liệu quan hệ

Được phát triển bởi Michael Widenius

Được dùng cho các ứng dụng vừa và nhỏ, phổ biến là ứng dụng web

Hỗ trợ chuẩn SQL

Chạy trên nhiều platforms

Trang 9

 Cài hệ quản trị CSDL được hỗ trợ (MySQL,…)

• Xem thêm: http://php.net/manual/en/pdo.drivers.php

 Cài PHP

 Hoặc cài đặt các gói tích hợp (Apache + PHP +

Trang 10

Cài đặt và cấu hình

Kiểm tra cấu hình webserver

 Mở trình duyệt gõ localhost

Trang 11

Cài đặt và cấu hình

Tạo thư mục ảo

 Mặc định khi gõ localhost trên trình duyệt, web server (apache) sẽ trỏ vào thư mục htdocs trong

thư mục cài đặt trên máy cục bộ

• Ví dụ: localhost  D:\xampp\htdocs

localhost/ mywebsite  D:\xampp\htdocs\ mywebsite

 Chỉnh sửa lại thư mục mặc định:

• Mở tập tin httpd.conf trong thư mục cài đặt apache

• Chỉnh sửa dòng DocumentRoot chỉ đến thư mục trênmáy cục bộ

• Ví dụ: "D:/xampp/htdocs/mywebsite"

Trang 12

Công cụ phát triển ứng dụng Web

Trang 13

C l i c k t o e d i t c o m p a n y s l o g a n

Trang 17

Biến (Variable)

 Chứa dữ liệu

 Tên b iến được bắt đầu bởi dấu $

 Tên biến bắt đầu bằng một ký tự chữ cái hoặc _

 Phân biệt giữa ký tự thường và HOA

 Kiểu được xác định tại thời điểm gán giá trị

 Gán giá trị với dấu =

 Sử dụng & như tham chiếu

Trang 18

Biến (Variable)

 Khai báo biến

Trang 19

Biến (Variable)

 Khai báo biến

Trang 20

Biến (Variable)

 Các biến có sẵn trong PHP

 $GLOBALS: tất cả các biến trong phạm vi toàn cục của một script

 $_SERVER: tập hợp biến môi trường của Web server

 $_GET, $_POST: biến chứa các giá trị client gởi đến

 $_COOKIE: Đọc các giá trị cookie đã được ghi

 $_FILES : Chứa toàn bộ thông tin về tập tin upload

 $_REQUEST: chứa toàn bộ giá trị của $_GET,

$_POST, $_COOKIE

Trang 21

Biến (Variable)

 Phạm vi biến

 Sử dụng từ khóa global hoặc biến $GLOBALS để truy cập biến toàn cục

Trang 22

Biến (Variable)

 Phạm vi biến

 Sử dụng từ khóa global hoặc biến $GLOBALS để truy cập biến toàn cục

Trang 23

Biến (Variable)

 Phạm vi biến

 Sử dụng từ khóa global hoặc biến $GLOBALS để truy cập biến toàn cục

Trang 24

Biến (Variable)

 Phạm vi biến

 Biến tĩnh: sử dụng từ khóa Static

Trang 25

Biến (Variable)

 Phạm vi biến

 Biến tĩnh: sử dụng từ khóa Static

Trang 26

Biến (Variable)

 Các hàm xử lý trên các biến

 gettype(): kiểm tra kiểu dữ liệu của biến

• kiểu kiểm tra: “integer”, “double”, “string”,”array”,

“object”, “class”, “unknown type”

Trang 27

Biến (Variable)

 Các hàm xử lý trên các biến

 isset(): kiểm tra biến đã được gán giá trị chưa

 unset(): hủy bỏ biến đã khai báo trước đó

Trang 28

Biến (Variable)

 Các hàm xử lý trên các biến

 empty(): trả về true nếu biến chưa gán giá trị, bằng 0 hoặc chuỗi rỗng (empty string)

Trang 29

Kiểu dữ liệu (Data types)

 Kiểu dữ liệu cơ bản

 Số nguyên : Integer 4 bytes, số có dấu

Trang 30

Kiểu dữ liệu (Data types)

 Kiểu Boolean

 Chứa giá trị True/False

• False = 0

• True != 0

Trang 31

Kiểu dữ liệu (Data types)

 Kiểu số nguyên và số thực

Trang 32

Kiểu dữ liệu (Data types)

bindec($str) Chuyển chuỗi nhị phân $str

sang kiểu decimal Bindec(“1100”); // 12.0ceil($x) Trả về giá trị là số nguyên

lớn hơn $x ceil(4.3);ceil(9.999); // 10// 5

ceil(-3.14); // -3

floor($x) Trả về số nguyên nhỏ hơn

$x floor(4.3); // 4

floor(9.999); // 9 floor(-3.14); // -4

round($x) Làm tròn số $x round(4.3); // 4

round(9.999); // 10 round(-3.5); // -4 rand($a,$b) Trả về số ngẫu nhiên trong

khoản $a -> $b Rand();// 0 ~ 32767Rand(1,10); // ? exp($x,$y) Hàm tính x^y exp(2,8) ; // 256

Trang 33

Kiểu dữ liệu (Data types)

 Kiểu String: chuỗi được đặt trong cặp dấu ‘’ hoặc “”

Trang 34

Kiểu dữ liệu (Data types)

 Một số hàm xử lý chuỗi thông dụng

Tên hàm Ý nghĩa Ví dụ

addslashes($str) thêm dấu \ vào trước các ký

tự đặc biệt trong chuỗi $str = "What's your real name?";echo addslashes($str);

//What\'s your real name?

stripslashes($str) loại bỏ ký tự \ trong chuỗi

$str

stripslashes($str) // What's your real name?

explode($str,$string) Tách chuỗi $string dựa vào

mẫu $str $string = "item1;item2;item3";$items = explode(";",$string );

// $items[0] = “item1”

// $items[1] = “item2”

implode($str,$arry) nối các phần tử trong mảng

thành chuỗi, phần tử ngăn cách bởi $str

$items = array(“item1”,”item2”);

$string = implode(“;”,$string); //$string = “item1;item2”

ltrim($str),rtrim($str),

trim($str)

cắt bỏ khoảng trắng ở trước, sau, trước và sau chuỗi

md5($str), sha1($str) dùng để băm chuỗi $str echo md5(“mypassword");

//34819d7beeabb9260a5c854bc85b3e44 strlen(),strupper(),

Trang 35

Kiểu dữ liệu (Data types)

 Kiểu mảng - Array

 Khai báo: $a = array(value1,value2,value3,…);

 $a = array("Samsung", "Nokia" ,"iPhone");

•echo $a[0]; // Samsung

•echo $a[2]; // iPhone

•echo $a[3]; // ???

 Hoặc $a = array($key => $value);

 $a=array("Samsung","n"=>"Nokia","iPhone");

•echo $a[0]; // Samsung

•echo $a[1]; // iPhone

•echo $a["n"]; // Nokia

• print_r($a); //Array([0]=>Samsung [n]=>Nokia [1]=>iPhone)

Trang 36

Kiểu dữ liệu (Data types)

Trang 37

Kiểu dữ liệu (Data types)

• $countries["uk"] = "United Kingdom";

• $countries["us"] = "United States";

• echo $countries["nl"]; // Netherlands

 Hoặc

• $countries = array ( "ca" => "Canada" ,

"nl" => "Netherlands" ,

"de" => "Germany" ,

"uk" => "United Kingdom" ,

"us" => "United States" ) ;

Trang 38

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Mảng nhiều chiều

0 Samsung Galaxy Note 950

1 Apple iPhone 5s 1100

2 Nokia Lumia 920 980

Trang 39

Kiểu dữ liệu (Data types)

Trang 40

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Duyệt mảng với chỉ số có thứ tự

Trang 41

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Duyệt mảng với chỉ số có thứ tự

Trang 42

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Duyệt mảng với chỉ số không thứ tự

Trang 43

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Duyệt mảng với chỉ số không thứ tự

Trang 44

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

Loại bỏ các giá trị trùng lắp: array_unique($a)

Trang 45

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 “Độn” các phần tử vào mảng: array_pad($a,n,val)

– $a: mảng được “độn”

– n: số phần tử tối đa của mảng $a sau khi “độn”

– val: giá trị cho phần tử mới

Trang 46

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Nối các mảng thành một mảng: array_merge()

Trang 47

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Tìm giá trị duy nhất: array_diff($a,$b,$c)

– Tìm các giá trị có trong mảng $a nhưng không có trong $b,$c – Có thể có nhiều tham số sau mảng $a

Trang 48

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Tìm phần tử giao nhau: array_intersect()

Trang 49

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Sắp xếp mảng sort(): sắp xếp tăng dần theo thứ

tự ưu tiên: số > ký hiệu > chữ cái

Trang 50

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Sắp xếp mảng sort(): sắp xếp tăng dần dựa vào

$value theo thứ tự ưu tiên: số > ký hiệu > chữ cái

Các $key sẽ bị gán lại

theo số thứ tự

Trang 51

Kiểu dữ liệu (Data types)

 Kiểu mảng (tt)

 Sắp xếp mảng ksort(): sắp xếp tăng dần dựa vào

$key của mảng, không dựa vào $value

Trang 52

Kiểu dữ liệu (Data types)

 Kiểu ngày tháng – Date & Tine

 checkdate($m,$d,$y): kiểm tra ngày tháng có hợp lệ hay không

Trang 53

Kiểu dữ liệu (Data types)

 Kiểu ngày tháng (tt)

 time(): trả về một số là số giây tính từ ngày

1-1-1970 đến thời điểm hiện tại

Trang 54

Kiểu dữ liệu (Data types)

“W” 1 -> 53 Trả về tuần thứ mấy của năm

“F” January -> December Trả về tên đầy đủ của tháng

Trang 55

Kiểu dữ liệu (Data types)

 Kiểu ngày tháng (tt)

 date():ví dụ

Trang 56

Kiểu dữ liệu (Data types)

"yday" 0 -> 365 Ngày thứ mấy của năm

"weekday" Sunday -> Saturday Thứ trong tuần, dạng full text

"month" January -> December Tháng trong năm, dạng full text

0 1358547614 ?? Số giây tính từ 1-1-1970

Trang 57

Kiểu dữ liệu (Data types)

 Kiểu ngày tháng (tt)

 getdate(): ví dụ

Trang 58

Kiểu dữ liệu (Data types)

 Kiểu ngày tháng (tt)

 mktime($h,$m,$s,$mo,$d,$y): tạo giá trị kiểu ngày tháng hợp lệ trong PHP

Trang 59

Kiểu dữ liệu (Data types)

 Kiểu ngày tháng (tt)

 strtotime($str): chuyển chuỗi $str sang kiểu thời gian, nếuchuyển đổi không thành công sẽ trả về 01-01-1970

Trang 60

Hằng (Constants)

 Giá trị không bao giờ thay đổi

 Khai báo: define(“CONTS”,”value”);

Trang 61

Hằng (Constants)

 Kiểm tra hằng đã được khai báo: defined();

 Nếu hằng đã được khai báo kết quả trả về 1, ngược lại trả về 0

Trang 62

% chia lấy phần

dư $x = $y % $z; // 1

Trang 63

Phép toán (Operators)

 Phép toán so sánh – Comparison operators

Phép toán Ý nghĩa $y = 10; $z = 3; Ví dụ

== bằng $x = ($y == $z); // false

< nhỏ hơn $x = ($y < $z); // false

> lớn hơn $x = ($y > $z); // true

<= nhỏ hơn hoặc bằng $x = ($y <= $z); // false

>= lớn hơn hoặc bằng $x = ($y >= $z); // true

<> khác nhau $x = ($y <> $z); // true

!= khác nhau $x = ($y <> $z); // true

Trang 64

Phép toán (Operators)

 Phép toán Lô-gíc – Logical Operators

Phép toán Ý nghĩa $y = 10; $z = 3; Ví dụ

&& AND $x = (($y>0) && ($z>0)); //true

and // $x = (($y>0) and ($z>0)); //true

|| OR $x = (($y>5) || ($z>5)); //true

or // $x = (($y>5) or ($z>5)); //true

xor

loại trừ, chỉ 1 trong

2 là true

$x = (($y>0) xor ($z>0)); //false

! NOT $x = !(($y>0) xor ($z>0)); //true

Trang 65

Phép toán (Operators)

 Toán tử gán – Assignment operators

Phép toán Tương đương $x= 10; $y = 3; Ví dụ

Trang 66

Lệnh cấu trúc (Control structures)

Trang 67

Lệnh cấu trúc (Control structures)

Trang 68

Lệnh cấu trúc (Control structures)

Trang 69

Lệnh cấu trúc (Control structures)

Trang 70

Hàm (Functions)

 Hàm do người dùng định nghĩa

• Có tham số hoặc không có tham số

• Có kết quả quả trả về hoặc không có kết quả trả về

function fn_name ($args){

// function body

return $results;

}

Trang 71

Hàm (Functions)

 Tham số mặc định của hàm

Trang 72

Hàm (Functions)

 Truyền tham số tham chiếu: & $var

Trang 73

Hàm (Functions)

 Gán hàm cho biến

– PHP hỗ trợ gán hàm cho biến để có thể load các hàm trong lúc thực thi

Trang 74

 Require: sẽ ngưng thực thi kể từ dòng

require nếu tập tin không tìm thấy

 Include và require sẽ tự động cập nhật các giá trị, các hàm trong tập tin nếu bị thay đổi trong quá trình thực thi

 Requre_once(), include_once(): chỉ chèn

tập tin một lần duy nhất

Trang 75

Include(), Require()

Trang 76

Biểu thức chính qui (Regular Expressions)

 Là các mẫu (patterns) dùng để so khớp chuỗi

 ^ xyz: chuỗi phải bắt đầu bằng xyz

 xyz $ : chuỗi phải kết thúc bằng xyz

 [a-z]: khớp với các chữ cái thường

 [A-Z]: khớp với các chữ cái in HOA

 [a-zA-Z]: khớp với mọi chữ cái

 [0-9 \ \ -]: khớp với số 09, dấu chấm và dấu trừ

 ^[ ^ a-z]: không được bắt đầu với ký tự thường

• ^[^0-9][a-z]$: khớp với 2 ký tự, không bắt đầu bằng số,

ký tự 2 thuộc chữ cái thường az

^[^0-9][0-9]$: khớp với chuỗi dạng a5, %6, Z9, F1,

nhưng không khớp với 55,F12, …

Trang 77

Biểu thức chính qui (Regular Expressions)

• [^\\\/\^]: khớp với bất kỳ ký tự nào ngoại trừ ký tự \, ký

tự / và ký tự ^

 ^[a-z]{ n,m }$: lặp lại tối thiểu n lần và tối đa m lần

ký tự thường

• ^a{3}$: khớp với aaa

• ^a{2,4}: khớp với aa,aaa và aaaa

• ^a{2,}: khớp với ít nhất 2 chữ a, độ dài không giới hạn

 ^(x | y | z)[a-z]: bắt đầu bằng x hoặc y hoặc z

• ^(a|b)9$: khớp với a9, b9

• ^(a|b)[0-9]$: khớp với a0  a9, b0b9

• ^([wx])([yz])$: khớp với wy, wz, xy hoặc xz

• ^0(90|91|93|95|97|98|99|122|166)[0-9]{7}$: khớp vớicác số điện thoại di động

Trang 78

Biểu thức chính qui (Regular Expressions)

 [a-z] * : lặp lại 0 hoặc nhiều lần a hoặc b

• ^r[o]*m: khớp với rm, rom, room, rooom,…

• ^i*you$: i love you, i’m looking forward to seeing you

 [a-z] + : lặp lại ít nhất một lần

• ^r[o]+m: khớp với rom, room, roooom,… nhưng khôngkhớp với rm

 [a-z]?: kiểm tra xem mẫu có xuất hiện hay không

• 9{3}?: Khớp với chuỗi có chứa 999

• 9{2}?|a{3}?: có chứa 99 hoặc aaa

 ( dấu chấm): ký tự bất kỳ

 *: ký tự bất kỳ, lặp lại 0 hoặc nhiều lần

+: lặp lại ít nhất 1 lần với bất kỳ ký tự nào

Trang 79

Biểu thức chính qui (Regular Expressions)

 ?= : kiểm tra điều kiện

• (?=.*{6,20}): kiểm tra độ dài chuỗi, tối thiểu 6, tối đa 20

• (?=.*[0-9]): kiểm tra chuỗi có chứa ít nhất 1 chữ số

• (?=.*[a-z]): kiểm tra có chứa ít nhất 1 chữ cái thường

• (?=.*[A-Z]): kiểm tra có chứa ít nhất 1 chữ HOA

• (?=.*\W): kiểm tra có chứa ký tự đặc biệt

  K iểm tra độ mạnh của mật khẩu:

Trang 80

Biểu thức chính qui (Regular Expressions)

 Hàm preg_match($ptrn, $str) : so khớp chuỗi với mẫu, mẫu phải được đặt trong cặp dấu / /

• trả về true nếu hợp lệ ngược lại trả về false

Trang 81

Biểu thức chính qui (Regular Expressions)

 Hàm preg_replace($ptrn, $str_rep,$str) : tìm mẫu, thay thế bằng $str_rep trong chuỗi $str

Trang 82

Biểu thức chính qui (Regular Expressions)

 Hàm preg_split($ptrn, $str) dùng để tách chuỗi dựa vào pattern, kết quả trả về một mảng

Trang 83

C l i c k t o e d i t c o m p a n y s l o g a n

Trang 86

 Các máy tính muốn giao tiếp với nhau phải có một giao th c

để “bắt tay” nhau để truyền/nhận dữ liệu

 Các chương trình ng dụng cần chia sẻ dữ liệu cũng phải

“bắt tay” bằng một giao th c nào đó

 HTTP (HyperText Transfer Protocol) là giao th c giao tiếpgiữa các chương trình máy tính thông qua mạng internet

 ng dụng web thuộc dạng client-server, các trình duyệt web đóng vai trò là các clients gởi yêu cầu đến các server

(apache, IIS,…)

 Sau khi server nhận được yêu cầu sẽ tìm kiếm trang và xử

lý, gởi trả kết quả về cho trình duyệt

Trang 87

 Thông điệp yêu cầu có 2 phần header và body (tùy chọn)

 Server trả lời cho trình duyệt bằng một thông điệp đáp ng(http response message)

Trang 88

- Dòng đầu tiên là một lệnh HTTP gọi là method, sử dụng phương th GET

để yêu cầu trang login.php, sử dụng tài liệu HTTP phiên bản 1.1

- User-agent: thông tin về trình duyệt gởi yêu cầu

- Tiếp đến là các thông tin trong phần header

Trang 89

Date: Mon, 25 Jan 2013 17:41:30 GMT

Keep-Alive: timeout=5, max=100

Server: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7

X-Powered-By: PHP/5.4.7

Trang 90

Thông tin Server

 Biến $_SERVER ch a đầy đ các thông tin về server

 SERVER_NAME: tên c a host, ví dụ www.ctu.edu.vn

 SERVER_SOFTWARE: phần mềm máy ch đang sử dụng, ví

dụ “Apache/1.3.22 (Unix) mod_perl/1.26 PHP/4.1.0”)

 SCRIPT_FILENAME: đường dẫn đầy đ c a tập tin hiện hành,

ví dụ E:/xampp/htdocs/mywebsite/index.php

 SCRIPT_NAME: đường dẫn URL đến trang hiện tại, ví dụ

~/mywebsite/index.php

 QUERY_STRING: chuỗi query, theo sau dấu ? trong URL, ví

dụ user=admin & action=edit & return=index

 Sử dụng lệnh print_r($_SERVER); để hiển thị tất cả các

thông tin có ch a trong biến $_SERVER

Ngày đăng: 14/12/2016, 23:12

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w