50

Giao trinh thiet ke web bai 4 - php

Embed Size (px)

Citation preview

Page 1: Giao trinh thiet ke web   bai 4 - php
Page 2: Giao trinh thiet ke web   bai 4 - php

1. GIỚI THIỆU PHP

PHP viết tắt của chữ Personal Home Page, được cho ra đời năm 1994 do phát minh của Rasmus Lerdorf, và nó tiếp tục được phát triển bởi nhiều cá nhân và tập thể khác, do đó PHP được xem như một sản phẩm của mã nguồn mở.

PHP là kịch bản cho phép chúng ta xây dựng ứng dụng web trên mạng internet hay intranet tương tác với mọi cơ sở dữ liệu như mySQL, PostgreSQL, Oracle, SQL Server và Access.

Page 3: Giao trinh thiet ke web   bai 4 - php

2. CÀI ĐẶT PHP

I. Cài đặt theo từng package:

- Apache, PHP, MySQL, phpMyadmin, CGI

- Kết hợp IIS với PHP

II. Bộ cài đặt tổng hợp:

- XAMPP (http://www.apachefriends.org)

- WAMP (http://www.wampserver.com)

- EasyPHP (http://www.easyphp.org)

- Microsoft Web Platform Installer (http://www.microsoft.com/web/downloads/platform.aspx)

Page 4: Giao trinh thiet ke web   bai 4 - php

3. TỔNG QUAN VỀ PHP

3.1 PHP dựa trên cú pháp của ngôn ngữ lập trình C/C++ và làm việc với CSDL MySQL, SQL Server, Oracle…

3.2 PHP là ngôn ngữ kịch bản máy chủ (server script) chạy trên phía server (server side) như cách server script khác (asp, jsp, cold fusion). Server side thường là máy chủ Apache, IIS

3.3 Thông dịch PHP

Khi người sử dụng gọi trang PHP, Web Server gọi PHP Engine

để thông dịch và dịch trang PHP và trả về kết quả cho người sử

dụng

Page 5: Giao trinh thiet ke web   bai 4 - php

3. TỔNG QUAN VỀ PHP

3.4 Ngôn ngữ kịch bản (script)

Nội dung của PHP có thể khai báo lẫn lộn với HTML, ta có thể chèn script của PHP vào nội dung của phần HTML, ví dụ:

<HTML>

<HEAD>

<TITLE>::Welcome to PHP</TITLE>

</HEAD>

<BODY> <?php

$soA = 5; $soB = 6; $tong = $soA + $soB;

?>

Giá trị của tổng: <?= $tong ?> //echo $tong;

</BODY>

</HTML>

Page 6: Giao trinh thiet ke web   bai 4 - php

3. TỔNG QUAN VỀ PHP

3.5 Ghi chú trong PHPGhi chú trong kịch bản PHP tương tự ngôn ngữ lập trình C, để ghi chú một dòng thì bạn sử dụng //hoặc # hoặc là /* code */

<HTML>

<HEAD>

<TITLE>::Welcome to PHP</TITLE>

</HEAD>

<BODY> <?php # Khai giá trị cho A và B

$soA = 5; $soB = 6; $tong = $soA + $soB;

// echo $tong;?>

Giá trị của tổng: <?= $tong ?> /* In ra giá trị của tổng A+B */

</BODY>

</HTML>

Page 7: Giao trinh thiet ke web   bai 4 - php

3. TỔNG QUAN VỀ PHP

3.6 In kết quả bằng PHP bằng echo

<HTML>

<HEAD>

<TITLE>::Welcome to PHP</TITLE>

</HEAD>

<BODY> <?php # Khai giá trị cho A và B

$soA = 5; $soB = 6; $tong = $soA + $soB;echo "A = ".$soA;echo "<br />B = ".$soB;echo "<br />Tong A + B = ".$soA." + ".$soB." = ".$tong;

?>

</BODY>

</HTML>

Page 8: Giao trinh thiet ke web   bai 4 - php
Page 9: Giao trinh thiet ke web   bai 4 - php

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

1. Vài điểm chú ý:

Cuối câu lệnh có dấu ;

Biến trong PHP có tiền tố là $

Mỗi phương thức đều bắt đầu { và đóng bằng dấu }

Khi khai báo biến thì không có kiểu dữ liệu

Nên có giá trị khởi đầu cho biến khai báo

Phải có chi chú (comment) cho mỗi feature mới

Sử dụng dấu // hoặc # để giải thích cho mỗi câu ghi chú

Sử dụng /* và */ cho mỗi đoạn ghi chú

Khai báo biến có phân biệt chữ hoa hay thường

Page 10: Giao trinh thiet ke web   bai 4 - php

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

2. Khai báo biến:

Khi thực hiện khai báo biến trong C, bạn cần phải biết tuân thủ

quy định như: kiểu dữ liệu trước tên biến và có giá trị khởi đầu,

tuy nhiên khi làm việc với PHP thì không cần khai báo kiểu dữ

liệu nhưng sử dụng tiền tố $ trước biến.

Page 11: Giao trinh thiet ke web   bai 4 - php

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

3. Kiểu dữ liệu:

Bảng các kiểu dữ liệu thông thường

Boolean True hay false

Integer giá trị lớn nhất xấp xỉ 2 tỷ

Float ~1.8e308 gồm 14 số lẻ

String Lưu chuỗi ký tự chiều dài vô hạn

Object Kiểu đối tượng

Array Mảng với nhiều kiểu dữ liệu

Page 12: Giao trinh thiet ke web   bai 4 - php

3.1 Thay đổi kiểu dữ liệu Để thay đổi kiểu dữ liệu, bạn có thể sử dụng cách

ép kiểu như trong các ngôn ngữ lập trình C hay Java

Page 13: Giao trinh thiet ke web   bai 4 - php

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

3.2 Kiểm tra kiểu dữ liệu của biến :

Để kiểm tra kiểu dữ liệu của biến, bạn sử dụng các hàm

như sau:

is_int để kiểm tra biến có kiểu integer, nếu biến có kiểu

integer thì hàm sẽ trả về giá trị là true (1).

Tương tự:

is_array, is_bool, is_callable, is_double, is_float,

is_int, is_integer, is_long, is_null, is_numeric,

is_object, is_real, is_string

Page 14: Giao trinh thiet ke web   bai 4 - php

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

3.3 Thay đổi kiểu dữ liệu biến

Khi khai báo biến và khởi tạo giá trị cho biến với kiểu dữ liệu,

sau đó bạn muốn sử dụng giá trị của biến đó thành tên biến

và có giá trị chính là giá trị của biến trước đó thì sử dụng cặp

dấu $$. Ví dụ, biến $sinhvien có giá trị là “ptithcm", sau đó

muốn sử dụng biến là ptithcm thì khai báo:

<?php

//Thay doi kieu du lieu cua bien

$sinhvien="ptithcm";

echo $sinhvien;

echo "<br>";

$$sinhvien = 9999;

echo $ptithcm;

?>

Page 15: Giao trinh thiet ke web   bai 4 - php

3.4 Kiểu mảng (array)

Là một mảng số liệu do người dùng định nghĩa, cú pháp:

$myhocvien = array(“PTITHCM”, “Sinh Vien, “Hoc vien”);

Hoặc là:

$myarrs[] = (4);

$myarrs[0]="Nguyen Van A";

$myarrs[1]="Tran Van B";

$myarrs[2]="Do Van C";

$myarrs[3]=“Nguyen Thi D";

Mảng 2 chiều thì:

$myarrs[][]=array(2,3);

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

Page 16: Giao trinh thiet ke web   bai 4 - php

3.5 Kiểu đối tượng

Để khai báo đối tượng, bạn sử dụng khái niệm class,

function như trong C/C++:

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

Page 17: Giao trinh thiet ke web   bai 4 - php

3.6 Tầm vực của biến

Biến toàn cục, biến cục bộ:

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

Page 18: Giao trinh thiet ke web   bai 4 - php

4. Hằng trong PHP

4.1 Khai báo:

Hằng là giá trị không thay đổi kể từ sau khi khai báo,

bạn có thể sử dụng phát biểu define để khai báo

hằng như sau:

define("MAXSIZE", 10);

define(“pi", 3.14);

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

Page 19: Giao trinh thiet ke web   bai 4 - php

4. Hằng trong PHP

4.2 Kiểm tra hằng:

Khi sử dụng hằng, mà hằng chưa tồn tại thì bạn sử

dụng hàm defined

II. CÂU LỆNH, KIỂU DỮ LIỆU, BIẾN, HẰNG, MẢNG

Page 20: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨCPHP cũng có những kiến trúc cơ bản như một ngôn ngữ lập trình thông thường.

A - Toán tử trong PHP:

1 - Toán tử gán:

Chúng ta đã từng tiếp xúc với toán tử này bởi việc khởi tạo 1 biến. Nó gồm ký

tự đơn sử dụng dấu =

Toán tử gán lấy giá trị của toán hạng bên phải gán nó vào toán hạng bên trái.

Ví dụ:

$name = “Nguyen Van An"; $diemthi = “7”; $lophoc = “C09THA1”;

2 - Toán tử số học:

Là dạng phép tính giản đơn cộng, trừ, nhân, chia trong số học. Ngoài ra còn có

phép chia lấy dư (%) để lấy ra đơn vị dư của 1 phép toán.

Page 21: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨC

3 - Toán tử so sánh:

Là toán tử được sử dụng để thực hiện các phép toán so sánh giữa

hai số hạng.

Page 22: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨC

4 - Toán tử logic:

Toán tử logic là các tổ hợp các giá trị boolean.

Page 23: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨC

5 - Toán tử kết hợp:

Khi tạo mã PHP, chúng ta sẽ thường nhận thấy cần phải tăng

hoặc giảm lượng biến một số nguyên nào đó. Thường thực hiện

điều này khi chúng ta đếm 1 giá trị nào đó trong vòng lặp.

Page 24: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨC

B - Các biểu thức cơ bản trong PHP:

1 - Biểu thức điều kiện:

Là biểu thức dùng kiểm tra 1 sự kiện. Nếu chúng thỏa điều kiện đó thì

sẽ thực thi một hành động. Ngược lại sẽ là một hành động khác.

Cú pháp:

if (Điều kiện)

{

hành động;

}

Page 25: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨC

2 - Vòng lặp trong PHP:

A - While()

Phép lặp này yêu cầu phải thỏa mãn điều kiện thì mới thực thi được vòng

lặp

Cú pháp:

while (điều kiện)

{

Hành động – thực thi;

}

Page 26: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨC

B – do while()

Phép lặp này sẽ thực thi hành động ít nhất là một lần. Sau đó mới tiến

hành kiểm tra điều kiện

Cú pháp:

do

{

Hành động thực thi;

}

while (điều kiện);

Page 27: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨC

C - For()

Phép lặp này là phép toán gộp các tham số. Giúp người lập trình giảm

thiểu thời gian phải khai báo biến và các tham số khi thực thi việc lặp dữ

liệu.

Cú pháp:

for (giá trị; điều kiện; biến tăng hoặc giảm)

{

Hành động;

}

Page 28: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨC

3 - Biểu thức switch case

Là biểu thức sử dụng để giảm thiểu quá trình xử lý dữ liệu nếu có quá

nhiều phép toán if else.

Cú pháp:

Switch (biến)

{Case giá trị 1: Hành động; Break;

…………

Case giá trị N: Hành động; Break;

Default: Hành động; Break;

}

Page 29: Giao trinh thiet ke web   bai 4 - php

III. TOÁN TỬ VÀ BIỂU THỨC

Bài tập 1:

• Viết 1 trang web in một dãy giá trị từ 1->20. Hãy xuất ra trình duyệt những số

chẵn nằm trong đoạn 1->20 đó.

Bài tập 2:

• Xây dựng 1 website thỏa yêu cầu xuất ra bảng cửu chương từ 2 ->10

Page 30: Giao trinh thiet ke web   bai 4 - php

IV. XỬ LÝ GIÁ TRỊ TRONG FORM

Form giúp tương tác xử lý dữ liệu trên form của người sử dụng nhằm mục

đích giúp cập nhật thông tin một cách linh động và dễ dàng quản lý.

Phương pháp:

Chúng ta thấy rằng 1 form phải bao gồm:

- Tên form: để phân biệt với giá trị các form khác trong trang

- Action: chuyển tiếp đến link xử lý

- Method: Là phương thức truyền bao gồm POST và GET.

Page 31: Giao trinh thiet ke web   bai 4 - php

IV. XỬ LÝ GIÁ TRỊ TRONG FORM

Ví dụ:

Đầu tiên khi khách nhập liệu user vào thì chúng sẽ chuyển tới trang check.php để tiến hành xử lý thông tin.

Trên phương thức POST, với tên form là register. Giá trị mà chúng ta gởi là user vừa nhập liệu.

PHP cho phép ta lấy giá trị dựa vào 2 phương thức POST và GET.

Đối với POST ta có : $_POST[‘Giá trị’]

Đối với GET ta có : $_GET[‘Giá trị’]

Vậy với đoạn code trên có thể lấy được biến xử lý là : $_POST[„user‟];

user là tên của field mà người sử dụng nhập liệu vào.

Page 32: Giao trinh thiet ke web   bai 4 - php

IV. XỬ LÝ GIÁ TRỊ TRONG FORM

1 - Phương thức GET:

Phương thức này cũng được dùng để lấy dữ liệu từ form nhập liệu. Tuy

nhiên nhiệm vụ chính của nó vẫn là lấy nội dung trang dữ liệu từ web

server.

Ví dụ: Với url sau: shownews.php?id=20

Vậy với trang shownews ta dùng hàm $_GET[‘id’] sẽ được giá trị là 20.

2 - Phương thức POST:

Phương thức này được sử dụng để lấy dữ liệu từ form nhập liệu. Và

chuyển chúng lên trình chủ webserver.

Ví dụ: Xây dựng 1 trang HTML với nội dung gồm form nhập liệu username

và password, sau đó kiểm tra xác thực tài khoản này.

Page 33: Giao trinh thiet ke web   bai 4 - php

IV. XỬ LÝ GIÁ TRỊ TRONG FORM

Page 34: Giao trinh thiet ke web   bai 4 - php

V. COOKIE VÀ SESSIONCookie và session là hai phương pháp sử dụng để quản lý các phiên làm

việc giữa người sử dụng (client) và hệ thống (server).

1. Cookie: là 1 đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ máy của

người dùng (client), nó được trình duyệt gởi ngược lên lại server mỗi khi

client browser tải 1 trang web từ server.

Những thông tin được lưu trữ trong cookie hoàn toàn phụ thuộc vào

website trên server. Mỗi website có thể lưu trữ những thông tin khác

nhau trong cookie, ví dụ thời điểm lần cuối ta ghé thăm website, đánh

dấu ta đã login hay chưa, v.v...

2. Session: Một cách khác để quản lý người sử dụng là session.

Session được hiểu là khoảng thời gian người sử dụng giao tiếp với 1

ứng dụng. Một session được bắt đầu khi người sử dụng truy cập vào

ứng dụng lần đầu tiên, và kết thúc khi người sử dụng thoát khỏi ứng

dụng.

Page 35: Giao trinh thiet ke web   bai 4 - php

V. COOKIE VÀ SESSION

1-a) Thiết lập cookie

Cú pháp: setcookie("tên cookie","giá trị", thời gian sống)

Tên cookie là tên mà chúng ta đặt cho phiên làm việc.

Giá trị là thông số của tên cookie.

Ví dụ: setcookie("username","admin", time() +3600);

Ta thấy với tên cookie là username và giá trị là admin, có thời gian sống

là 3600s = 1 giờ tính từ thời điểm thiết lập.

1-b) Sử dụng cookie

Cú pháp: $_COOKIE["tên cookie"]

Tên cookie là tên mà chúng ta thiết lập phía trên //username

Page 36: Giao trinh thiet ke web   bai 4 - php

V. COOKIE VÀ SESSION

Trang cookie.php

Trang cookie2.php

Page 37: Giao trinh thiet ke web   bai 4 - php

V. COOKIE VÀ SESSION

1-c) Hủy cookie

Để hủy 1 cookie đã được tạo ta có thể dùng 1 trong 2 cách sau:

• Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi

Cú pháp: setcookie("Tên cookie");

• Dùng thời gian hết hạn cookie là thời điểm trong quá khứ.

Ví dụ: setcookie("name",“Administrator",time()-3600);

Trang cookie3.php

Page 38: Giao trinh thiet ke web   bai 4 - php

V. COOKIE VÀ SESSION

2-a) Thiết lập session

Cú pháp:

session_start();

session_register(“tên session");

Ví dụ:

<?php

session_start();

session_register(“name");

?>

2-b) Sử dụng giá trị session

Cú pháp: $_SESSION[“tên session”]

“tên session” là tên mà chung ta sử dụng hàm session_register(“name”) để

khai báo lúc đầu.

Page 39: Giao trinh thiet ke web   bai 4 - php

V. COOKIE VÀ SESSION

Trang session.php

Trang session2.php

Page 40: Giao trinh thiet ke web   bai 4 - php

V. COOKIE VÀ SESSION

1-c) Hủy session

Để hủy 1 cookie đã được tạo ta có thể dùng 1 trong 2 cách sau:

session_destroy(); //Cho phép hủy bỏ toàn bộ giá trị của session

session_unset(); //Cho phép hủy bỏ session

Trang session3.php

Page 41: Giao trinh thiet ke web   bai 4 - php

VI. HÀM VÀ GỌI LẠI HÀM TRONG PHP

1. Hàm tự định nghĩa:function abcxyz()

{

//Lệnh thực thi

}

2. Hàm tự định nghĩa với các tham số đi kèmfunction qwerty($gt1,$gt2,$gt3)

{

//Lệnh thực thi

}

3. Hàm tự định nghĩa với giá trị trả vềfunction total($a,$b)

{

$total = $a+$b;

return $total;

}

Page 42: Giao trinh thiet ke web   bai 4 - php

VI. HÀM VÀ GỌI LẠI HÀM TRONG PHP

4. Gọi lại hàm:

Cú pháp: include("URL đến file");

require("URL đến file");

Ngoài ra còn có: include_once(), require_once()

Page 43: Giao trinh thiet ke web   bai 4 - php

VI. HÀM VÀ GỌI LẠI HÀM TRONG PHP

Ứng dụng bằng một trang homepage.php đơn giản có 5 phần: header,

footer, left, main và right như hình dưới

Page 44: Giao trinh thiet ke web   bai 4 - php

VI. HÀM VÀ GỌI LẠI HÀM TRONG PHP

Page 45: Giao trinh thiet ke web   bai 4 - php

VII. NGÔN NGỮ SQL VÀ MYSQL

Cơ sở dữ liệu MySQL đã trở thành cơ sở dữ liệu mã nguồn mở phổ biến

nhất trên thế giới vì cơ chế xử lý nhanh và ổn định của nó cùng với sự

đáng tin cậy cao và dễ sử dụng.

Page 46: Giao trinh thiet ke web   bai 4 - php

VII. NGÔN NGỮ SQL VÀ MYSQL

1. Bảng và cột

USER

UserID 123

First_name Nguyen

Last_name Van An

Username nguyenvanan

Password 123456

Email [email protected]

Class_name C09THA1

Date 2011-21-10 15:30:30

Subject1 7

Subject2 8

Subject3 5

Subject4 9

Page 47: Giao trinh thiet ke web   bai 4 - php

VII. NGÔN NGỮ SQL VÀ MYSQL

1. Bảng và cột

Page 48: Giao trinh thiet ke web   bai 4 - php

VII. NGÔN NGỮ SQL VÀ MYSQL

2. Loại dữ liệu

KIỂU DỮ LIỆU MÔ TẢ

Char Text 0 -> 255

Varchar Text 0 ->255

Text Text 0 -> 65535

Longtext Text 0 -> 4294967215

INT Number 0 -> 4294967215

Float Số thập phân

Double Số thập phân

Date Date YYYY-MM-DD

DateTime YYYY-MM-DD HH:MM:SS

Page 49: Giao trinh thiet ke web   bai 4 - php

V. COOKIE VÀ SESSION

Cookie và session là hai phương pháp sử dụng để quản lý các phiên làm

việc giữa người sử dụng (client) và hệ thống (server).

Cookie: là 1 đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ máy của

người dùng (client), nó được trình duyệt gởi ngược lên lại server mỗi khi

client browser tải 1 trang web từ server.

Những thông tin được lưu trữ trong cookie hoàn toàn phụ thuộc vào

website trên server. Mỗi website có thể lưu trữ những thông tin khác nhau

trong cookie, ví dụ thời điểm lần cuối ta ghé thăm website, đánh dấu ta đã

login hay chưa, v.v...

Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác

nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới

browser. Ngoài ra, mỗi browser quản lý và lưu trữ cookie theo cách riêng

của mình, cho nên 2 browser cùng truy cập vào 1 website sẽ nhận được 2

cookie khác nhau.

Page 50: Giao trinh thiet ke web   bai 4 - php

V. COOKIE VÀ SESSION

Cookie và session là hai phương pháp sử dụng để quản lý các phiên làm

việc giữa người sử dụng (client) và hệ thống (server).

Cookie: là 1 đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ máy của

người dùng (client), nó được trình duyệt gởi ngược lên lại server mỗi khi

client browser tải 1 trang web từ server.

Những thông tin được lưu trữ trong cookie hoàn toàn phụ thuộc vào

website trên server. Mỗi website có thể lưu trữ những thông tin khác nhau

trong cookie, ví dụ thời điểm lần cuối ta ghé thăm website, đánh dấu ta đã

login hay chưa, v.v...

Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác

nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới

browser. Ngoài ra, mỗi browser quản lý và lưu trữ cookie theo cách riêng

của mình, cho nên 2 browser cùng truy cập vào 1 website sẽ nhận được 2

cookie khác nhau.