1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình Web GV. Trần Công Án

73 134 0

Đ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 73
Dung lượng 3,16 MB

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

Nội dung

Bài giảng Lập trình Web: Chương 5.2 do GV. Trần Công Án biên soạn cung cấp cho người đọc các kiến thức: PHP là gì, cú pháp cơ bản, hàm (Function), lập trình hướng đối tượng (OOP), PHP và Form, MySQL và PHP, cookie và session.

Trang 1

CT428 Lập Trình Web

Chương 5 PHP & MySQL (PHP)

Giảng viên: Trần Công Án (tcan@cit.ctu.edu.vn)

Bộ môn Mạng máy tính & Truyền thông

Khoa Công Nghệ Thông Tin & Truyền Thông

Đại học Cần Thơ

2013 – 2014

Trang 2

PHP

Trang 4

PHP là gì?

PHP Là Gì?

I PHP: Hypertext PreProcessor (trình tiền xử lý siêu văn bản).

I Là một ngôn ngữ script phía server : được thực thi phía server và trả kết quả ( là 1 trang web HTML ) về cho browser.

I Sự thực thi PHP script không phụ thuộc vào web browser.

I Trình thông dịch PHP là phần mềm mã nguồn mở, miễn phí

I Được hỗ trợ bởi hầu hết các web server (Apache, IIS, ) và hệ điều hành thông dụng (Windows, Linux, MacOS, ).

I Thường thực hiện các xử lý hướng nghiệp vụ.

I Một tập tin PHP có phần mở rộng là php

Trang 5

PHP là gì?

Cơ Chế Hoạt Động

database server web browser Internet/Intranet

web server (www.abc.com)

Request: www.abc.com/login.php (1)

(2)

(3) (3’)

(4) (5) Response: dynamic webpage

Trang 7

PHP là gì?

Cơ Chế Hoạt Động – Ví Dụ

Trang 8

PHP là gì?

Download Các Chương Trình Cần Thiết

I Apache (Web server):

Trang 9

PHP là gì?

Giao Diện Chương Trình XAMPP

I Giao diện chương trình XAMPP cho phép khởi động, dừng và cấu hình Apache và MySQL.

Trang 11

I Qui ước, cú pháp của PHP tương tự ngôn ngữ C và JavaScript.

I Một câu lệnh kết thúc bằng dấu ; và có thể nằm trên nhiều dòng.

I Các lệnh không phân biệt chữ hoa, chữ thường.

I Ghi chú cũng tương tự C và JS: gồm ghi chú 1 dòng ( // ) và nhiều dòng ( /* */ )

Trang 12

Cú pháp cơ bản

Biến và kiểu dữ liệu

Biến Và Kiểu Dữ Liệu

I Kiểu dữ liệu: boolean (bool), integer (int), float, double, string.

I Kiểu dữ liệu phức: array, Object.

I Các kiểu đặc biệt: resource (3rd-party resources, e.g DB), NULL.

I Chú ý: Các giá trị tương đương false: 0, 0.0, chuỗi rỗng, “0”,

mảng rỗng, NULL.

Trang 13

Cú pháp cơ bản

Biến và kiểu dữ liệu

Biến Và Kiểu Dữ Liệu

I Biến:

I Bắt đầu bằng $

I Không cần khai báo biến – biến sẽ được tạo ở lần đầu gán giá trị.

I Kiểu biến sẽ được tự động gán, tùy vào dữ liệu của nó.

I Phân biệt chữ hoa, chữ thường.

I Phạm vi biến:

I Cục bộ: khai báo trong một hàm, chỉ t/xuất được bên trong hàm đó.

I Toàn cục: khai báo bên ngoài các khối lệnh, có thể t/cập từ bất kỳ vị trí nào trong chương trình (trong hàm phải dùng từ khóa global ).

Trang 14

Cú pháp cơ bản

Biến và kiểu dữ liệu

Biến Và Kiểu Dữ Liệu

I Khai báo bên trong hàm (cục bộ)

I Giá trị sẽ được lưu lại cho những lần gọi tiếp theo.

I Truy vấn kiểu dữ liệu của một biến: gettype(var )

I Kiểm tra biến và kiểu dữ liệu của biến: is_bool(), is_int(), is_float(), is_double(), is_string(), is_object(),

is_array(), is_numeric(), is_resource(), is_null(), isset(), empty().

Trang 15

Cú pháp cơ bản

Biến và kiểu dữ liệu

Biến Và Kiểu Dữ Liệu – Ví Dụ

Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/datatype.php

Trang 16

Cú pháp cơ bản

Biến và kiểu dữ liệu

Biến Toàn Cục – Ví Dụ

Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/global-variable.php

Trang 17

Cú pháp cơ bản

Biến và kiểu dữ liệu

Biến Tĩnh – Ví Dụ

Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/static-variable.php

Trang 19

Cú pháp cơ bản

Chuỗi ký tự

Chuỗi Ký Tự

I Một chuỗi ký tự có thể đặt trong dấu nháy đơn, kép hoặc heredoc.

I Dấu nháy đơn và heredoc: các ký tự escape sẽ không được thông

dịch.

Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/string-specify.php

<html>

1

<body>

2 <?php /* string-specify.php */

3 $name = "An"; 4

$s1 = "My name is: \"$name\'"; 5

$s2 = 'My name is: \"$name"'; 6

$s3 = <<<_END 7

My name is: \"$name"

8_END; 9 echo $s1, "<br>"; //My name is: "An\' 10

echo($s2 "<br>"); //My name is: \"$name"

11 echo($s3 "<br>"); //My name is: \"An"

12 ?>

Trang 20

I Mảng + kích thước: $arr_name = array(n );

I Khai báo và khởi tạo: $arr_name = array(val1, val2, )

I Gán giá trị trực tiếp cho các phần tử của mảng:

$arr_name [] = value ;

$arr_name [] = value ;

.

$arr_name [index ] = value ;

$arr_name [index ] = value ;

Trang 22

Cú pháp cơ bản

Mảng (Array)

Duyệt Mảng Bằng Lệnh foreach

/Users/tcan/Dropbox/Bo mon/Lap t…N/Ch5.1 - PHP/src/test-array.php

foreach ($array as $value) {

foreach ($array as $key => value) { 23

statements;

24 } 25

/Users/tcan/Dropbox/Bo mon/Lap t…N/Ch5.1 - PHP/src/test-array.php

$arr = array('a'=>4, 'c'=> 6, 'b'=>8);

10 foreach($arr as $key => $val ) { 11

echo $key ":" $val "; "; 12

} //output: a:4; c:6; b:8;

13

I Ngoài ra, ta có thể duyệt các phần tử của mảng dùng vòng lặp

thông qua chỉ số của các phần tử.

Trang 23

I array_push($arr, $element ): thêm p/tử vào cuối mảng.

I array_pop($arr ): xóa phần tử ở cuối mảng.

I array_shift($arr ): xóa phần tử ở đầu mảng.

Sinh viên tự xem thêm: mảng nhiều chiều và con trỏ mảng

Trang 24

Cú pháp cơ bản

Lệnh echo và hàm print

Lệnh echo và Hàm print

I Cả hai đều được sử dụng để xuất 1 chuỗi về cho browser

I Lệnh echo: echo (str ); hoặc echo str [, str ];

echo ( "Hello " $name); hoặc echo "Hello " ,$name;

I Hàm print: print(str ); hoặc print str ;

print ( "Hello " $name); hoặc print "Hello " $name;

I Vì echo là một lệnh nên sẽ thực hiện nhanh hơn hàm print

I Hàm print trả về true còn lệnh echo không có kết quả trả về.

($grade > 5) ? print ( "pass" ) : print ( "fail" );

echo ($grade > 5) ? "pass" : "fail" ;

Trang 25

Cú pháp cơ bản

Cấu trúc điều khiển

Cấu Trúc Điều Khiển

I Cấu trúc điều khiển của PHP gần như tương tự JS (xem Ch4):

I Rẽ nhánh: if, if else, if elseif, ?,

switch case

I Lặp: while, do while, for, foreach

I Các chỉ thị break và continue

Trang 26

I Tên hàm không phân biệt chữ hoa, chữ thường.

I Hàm có thể có giá trị trả về (dùng lệnh return ) hay không có.

Trang 27

Hàm (Function)

Cú pháp

Ví Dụ – Hàm Giải Phương Trình Bậc 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/function-ptb1.php Page 1 of 1

Trang 28

Hàm (Function)

Truyền đối số cho hàm

Hàm – Truyền Tham Chiếu

I Truyền tham số bằng giá trị: hàm không

thay đổi được giá trị của đối số.

I Truyền tham số bằng tham chiếu: hàm có

thể thay đổi giá trị của đối số. Page 1 of 1

/Users/tcan/Dropbox/Bo mon/Lap t…PHP/src/function-pass-by-ref.php

<?php 1 function &func() { 2

static $count = 0; 3

$count++;

4 return $count; 5

} 6 7 $var1 =& func();

8 echo $var1; //output: 1 9

$var2 = func();

10 echo $var2; //output: 2 11

echo $var1; //output: 2 12

13 func();

14 func();

15 echo $var1; //output: 4 16

echo $var2; //output: 2 17

?>

18

Trang 29

Hàm (Function)

Gán giá trị mặc nhiên cho đối số của hàm

Hàm – Gán Giá Trị Mặc Nhiên Cho Đối Số

I Đối số của hàm có thể được gán giá trị mặc nhiên: Nếu lời gọi hàm không truyền giá trị cho đối số thì đối số sẽ nhận giá trị mặc nhiên.

Page 1 of 1/Users/tcan/Dropbox/Bo mon/Lap t…PHP/src/function-text-color.php

Trang 30

Hàm (Function)

Thao tác với các đối số

Hàm – Thao Tác Với Các Đối Số

I Một số hàm thao tác trên các đối số:

danh sách các đối số.

Page 1 of 1/Users/tcan/Dropbox/Bo mon/Lap t…- PHP/src/function-args-task.php

<?php 1

function foo() { 2

echo func_get_arg($i) ", "; 6

} 7

8

foo(); //output: Number of arguments: 0;

Trang 31

Hàm (Function)

Thư viện hàm PHP

Hàm Xử Lý Chuỗi

I [l|r]trim ($str [,$ch ]), addslashes ($str ),

stripslashes ($str ), ucfirst ($str ), ucwords ($str ),

strtolower ($str ), strtoupper ($str ), strlen ($str ),

strcmp ($str1 ,$str2 ), strpos ($str1 ,$str2 ),

str_replace ($oldStr ,$newStr, $str ) strrev ($str ),

explode ($ch [,$str ]), implode ($str [,$ch ])

Page 1 of 1/Users/tcan/Dropbox/Bo mon/Lap t….1 - PHP/src/string-function.php

Trang 32

Hàm (Function)

Thư viện hàm PHP

Hàm Toán Học

I abs ($n ), sqrt ($n ), pow ($a, $b ), exp ($x ),

range ($start, $end ), floor ($n ), ceil ($n ),

is_nan ($n ), number_format ($n, $decimal=0,

$dec_point=’.’, $thou_sep =’,’)

Page 1 of 1/Users/tcan/Dropbox/Bo mon/Lap t…- TCAN/Ch5.1 - PHP/src/test.php

Trang 33

Hàm (Function)

Thư viện hàm PHP

Hàm Ngày Giờ

I getdate (), date ($format_str ), checkdate ($m, $d, $y ),

time (), date_add ($date, $interval ), date_diff ($date1,

Page 1 of 1/Users/tcan/Dropbox/Bo mon/Lap t…HP/src/function-date-example.php

Trang 34

Lập trình Hướng đối tượng (OOP)

Khai báo lớp

OOP – Khai Báo Lớp

I Khai báo lớp:

Page 1 of 1/Users/tcan/Dropbox/Bo mon/Lap t…- PHP/src/class-declaration.php

<?php 1 class <classname> { 2

/* property + method declaration */

3 };

4

?>

5

I Khai báo thuộc tính (properties) tương tự như khai báo biến.

I Khai báo phương thức (methods) tương tự khai báo hàm.

I Thuộc tính truy cập: public | protected | private

I Phương thức/thuộc tính tĩnh (static): static

I Truy xuất p/thức bên trong p/thức: $this ->method ();

I Truy xuất t/tính bên trong p/thức: $this ->property ;

Trang 35

Lập trình Hướng đối tượng (OOP)

Khai báo lớp

OOP – Ví Dụ Khai Báo Lớp/Users/tcan/Dropbox/Bo mon/Lap t…TCAN/Ch5.1 - PHP/src/Person.php Page 1 of 1

Trang 36

[CT428] Chương 5.1 – PHP

Lập trình Hướng đối tượng (OOP)

Tạo đối tượng

OOP – Tạo Đối Tượng

I Cú pháp: $<object_name> = new <class_name>;

I Truy xuất t/tính của 1 đối tượng: $object_name ->property ;

I Truy xuất p/thức của 1 đối tượng: $object_name ->method() ;

Page 1 of 1/Users/tcan/Dropbox/Bo mon/Lap t…lass-obj-declaration-example.php

Trang 37

Lập trình Hướng đối tượng (OOP)

Tạo đối tượng

OOP – Các Thành Phần Tĩnh

I Là “thành phần chung” của tất cả các đối tượng của một lớp.

I Có thể truy xuất thông qua lớp (không cần tạo đối tượng).

I Truy xuất các thành phần tĩnh:

I Bên trong lớp:

I Thuộc tính: self:: $property ;

I Phương thức: self:: method() ;

I Bên ngoài lớp:

I Thuộc tính: class_name ::$property ;

I Phương thức: class_name ::method() ;

Trang 38

Lập trình Hướng đối tượng (OOP)

Trang 39

<?php 1 class Person { 2

public $id; 3

public $name; 4

public $dob; 5

6 protected static$count = 0; 7

8 function construct($name) { 9

$this->id = ++self::$count; 10

$this->name = $name; 11

$this->dob = @date("d/m/Y");

12 } 13

14 function displayInfo() { 15

echo $this->id " - " $this->name " - " $this->dob; 16

} 17

18 function set($id, $name, $dob) { 19

$this->id = $id; 20

$this->name = $name; 21

$this->dob = $dob; 22

} 23

} 24 25 $tom = new Person("Mr Tom");

26 $tom->displayInfo();

27 //output: 1 - Mr Tom - 07/03/2014 28

29 $jerry = new Person("Ms Jerry");

30 $jerry->dob = "01/01/2002"; 31

$jerry->displayInfo();

32 //output: 2 - Ms Jerry - 01/01/2002 33

34 $test = @new Person(); //warning 35

$test->displayInfo();

36 //output: 3 - - 07/03/2014 37

38

?>

39

Trang 40

Lập trình Hướng đối tượng (OOP)

Thừa kế

Thừa kế

I Khai báo thừa kế: dùng từ khóa extends

I Lớp con sẽ “thừa kế” tất cả các thành phần của lớp cha Tuy nhiên,

nó chỉ được truy xuất đến các thành phần public và protected

I Truy cập đến các thành phần của lớp cha từ lớp con:

parent:: property hoặc parent:: method()

I Lớp con có thể “khai báo chồng” (cùng tên) các thành phần của lớp cha.

Trang 41

Lập trình Hướng đối tượng (OOP)

Thừa kế

/Users/tcan/Dropbox/Bo mon/Lap t…TCAN/Ch5.1 - PHP/src/Student.php

<?php 1 require 'Student.php'; 2

3 $tom = new Student("Mr Tom");

4 $tom->displayInfo();

5 //output:

6 // 1 - Mr Tom - 07/03/2014 - 07/03/2014 7

8 $tom->set(, $tom->name, "01/02/2002");

9 $tom->displayInfo();

10 //output:

11 // 7 - Mr Tom - 01/02/2002 - 07/03/2014 12

?>

13

Trang 42

Lập trình Hướng đối tượng (OOP)

Một số vấn đề khác trong OOP

Một Số Vấn Đề Khác Trong OOP

I Lớp ảo (abstract class).

I Ngăn chặn đè phương thức (final method).

I Giao diện (interface) và cài đặt giao diện (implementation).

I Xuất thông tin tự động cho đối tượng ( toString()).

I Các cách chèn đoạn mã trong các tập tin khác vào.

Trang 43

<form action=" " method=" ">

1 <! form controls >

I method: POST | GET

I POST: dữ liệu của form chèn bên trong yêu cầu HTTP.

I GET: dữ liệu của form kèm theo URL (max 255B – 8K).

Trang 44

PHP và Form

Lấy dữ liệu gửi về từ form

Lấy Dữ Liệu Gửi Về Từ Form

$_REQUEST (cả hai p/thức). Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/login.html

Trang 45

PHP và Form

Lấy dữ liệu gửi về từ form

Lấy Dữ Liệu Gửi Về Từ Form

Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/ck_login.php

Trang 46

PHP và Form

Lấy dữ liệu gửi về từ form

Kiểm Tra Sự Tồn Tại Của Dữ Liệu

I Kiểm tra sự tồn tại của một dữ liệu gửi từ form: hàm isset()

Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/ck_login.php

Trang 47

MySQL và PHP

Truy Xuất Dữ Liệu MySQL Trong PHP

I Việc truy xuất dữ liệu MySQL từ PHP bao gồm các bước:

1 Tạo nối kết đến MySQL.

2 Chọn CSDL.

3 Tạo câu truy vấn (DDL hoặc DML).

4 Thực thi câu truy vấn.

5 Nhận dữ liệu, xử lý dữ liệu và xuất ra trang web.

6 Lặp lại các bước 4 và 6 cho đến khi truy cập hết các dữ liệu cần thiết.

7 Đóng nối kết.

Trang 48

MySQL và PHP

Tạo nối kết

Tạo Nối Kết

I Tạo nối kết:

resource mysql_connect ( "host_name" , "username" , "password" )

I host_name: địa chỉ của MySQL server.

I username: tên người dùng CSDL.

I password: mật khẩu người dùng CSDL.

I Thông thường, các thông số nối kết CSDL được lưu trong 1 tập tin riêng (.inc hoặc php) và được chèn vào tập tin PHP cần truy xuất

Trang 49

MySQL và PHP

Tạo nối kết

Tạo Nối Kết

Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/mysql-connect.php

<?php 1 /* connection.inc */

2 $hostname = "localhost"; 3

$username = "root"; 4

$password = ""; 5

$database = "ltweb"

6

?>

7

Trang 50

MySQL và PHP

Tạo nối kết

Kiểm Tra Và Xử Lý Lỗi

I Các cách kiểm tra và xử lý lỗi:

Trang 52

MySQL và PHP

Tạo và thực thi câu truy vấn CSDL

Tạo Và Thực Thi Câu Truy Vấn

I Truy vấn CSDL: resource mysql_query ( "query" [,$connection])

I query: câu truy vấn.

I $connection: đối tượng connection.

Page 1 of 1/Applications/XAMPP/xamppfiles/h…LTW428/select-classics-table.php

Trang 53

MySQL và PHP

Truy xuất dữ liệu trả về từ câu truy vấn

Truy Xuất Dữ Liệu Của Câu Truy Vấn

I Các hàm sử dụng để truy xuất dữ liệu trả về trong câu truy vấn:

I mysql_num_rows ($q_result) : đếm số mẩu tin trong $q_result.

I mysql_fetch_fields ($q_result) : đếm số lượng trường.

I mysql_result ($q_result, $row_index, "col_name" ) : lấy giá trị 1 trường.

I mysql_fetch_row ($q_result) : trả về 1 mảng với giá trị các phần tử

là giá trị của các trường trong bảng.

I mysql_fetch_array ($q_result) : tương tự hàm mysql_fetch_row với chỉ số mảng là tên trường.

Trang 54

MySQL và PHP

Truy xuất dữ liệu trả về từ câu truy vấn

Truy Xuất Dữ Liệu Của Câu Truy Vấn – VD

Page 1 of 1/Applications/XAMPP/xamppfiles/h…ocs/LTW428/connect-select-db.php

Trang 55

MySQL và PHP

Truy xuất dữ liệu trả về từ câu truy vấn

mysql_result() – Ví Dụ

Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/mysql-result.php

Trang 56

MySQL và PHP

Truy xuất dữ liệu trả về từ câu truy vấn

mysql_fetch_row() – Ví Dụ

Page 1 of 1/Applications/XAMPP/xamppfiles/htdocs/LTW428/mysql-fetch-row.php

Trang 57

MySQL và PHP

Truy xuất dữ liệu trả về từ câu truy vấn

mysql_fetch_array() – Ví Dụ

Page 1 of 1/Applications/XAMPP/xamppfiles/h…ocs/LTW428/mysql-fetch-array.php

Ngày đăng: 23/12/2017, 13:51

TỪ KHÓA LIÊN QUAN

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