Top Banner
Cơ chế lập trình WEB Cơ chế lập trình WEB Web tĩnh: Client (IE, Netscape, ..) Web server http://localho st http:// www.vnn.vn Trang HTML
53

PHP Presentation

Feb 05, 2016

Download

Documents

Chú Út

php cơ bản
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PHP Presentation

Cơ chế lập trình WEBCơ chế lập trình WEB

Web tĩnh:

Client

(IE, Netscape,..)

Web server

http://localhost

http://www.vnn.vn

Trang HTML

Page 2: PHP Presentation

Cơ chế lập trình WebCơ chế lập trình WebWeb động

Client

(IE, Netscape,..)

Web server

http://localhost

http://www.vnn.vnPHP, ASP,JSP,..

PHP, ASP,JSP,...biên dịch

Database

HTML

SQL Server, My SQL,..

Page 3: PHP Presentation

Cơ chế lập trình WebCơ chế lập trình WebServer SideSử dụng các NNLT để lập trình WEB ở

phía Server, nghĩa là trang web sẽ được biên dịch và xử lý từ phía Server rồi mới gửi về trình duyệt

PHP, ASP, JSP,. NET là các NNLT Server side– Kết nối CSDL trên Server– Tính toán trên dữ liệu– Tìm kiếm

Page 4: PHP Presentation

Cơ chế lập trình WebCơ chế lập trình Web

Client sideSử dụng các NNTL xử lý ở phía

Client rồi mới gửi yêu cầu đên ServerJavaScript là NNLT phổ biến

– Kiểm tra dữ liệu trên form– Tạo hiệu ứng trên hình ảnh– ...

Page 5: PHP Presentation

Web serverWeb serverLà phần mềm đảm nhiệm vai trò Server

cung cấp dịch vụ WEBHỗ trợ các công nghệ khác nhau

– IIS (Internet Information Service): Hỗ trợ ASP, mở rộng hỗ trợ PHP

– Apache: Hỗ trợ PHP– Tomcat: Hỗ trợ JSP (Java Servlet Page)

Page 6: PHP Presentation

Web ServerWeb Server

IP: 203.162.0.12

www.vnn.vn

C:\inetpub\www

Web Server

Client

-IE

-Netscape

-..

DNS

Database

Page 7: PHP Presentation

Web ServerWeb Server

-IIS-Apache

MySQL Database

Client

-IE

-Netscape

-Mozila,...

PHP

Page 8: PHP Presentation

Trang PHP là 1 trang HTML có nhúng mã PHPĐể minh hoạ cho điều này, ta hãy xem qua một số ví dụ sau:Ví dụ 1: lưu file sau lên đĩa với tên vd1.php và chạy thử:

<html><head><title>Testing page</title></head><body><?php echo "Hello, world!"; ?></body></html>

<html><head><title>Testing page</title></head><body>Hello, World!</body></html>

Page 9: PHP Presentation

Tiếng Việt trong WEBTiếng Việt trong WEB

Sử dụng Unikey chọn bộ gõ UTF-8

Page 10: PHP Presentation

<?php echo "<html><head><title>Testing page</title></head><body>Hello, world!</body></html>"; ?>

Bạn cũng nhận được 1 trang HTML có source là: <html><head><title>Testing page</title></head><body>Hello, World!</body></html

Page 11: PHP Presentation

Như vậy có thể nhận xét rằng 1 trang PHP cũng chính là 1 trang HTML có nhúng mã PHP ở bên trong và có phần mở rộng là .php. Phần mã PHP được đặt trong thẻ mở <?php và thẻ đóng ?>. Khi trình duyệt truy cập vào 1 trang PHP, server sẽ đọc nội dung file PHP lên, lọc ra các đoạn mã PHP, thực thi các đoạn mã đó, lấy kết quả xuất ra của các đoạn mã PHP thay thế vào chỗ ban đầu của chúng trong file PHP, cuối cùng server trả về kết quả cuối cùng là 1 trang nội dung HTML về cho trình duyệt.

Page 12: PHP Presentation

Lệnh echo dùng để xuất 1 chuỗi văn bản về trình duyệtỞ các ví dụ bên trên, ta đã dùng 1 lệnh của PHP là lệnh echo. Lệnh này dùng để xuất 1 chuỗi văn bản về cho trình duyệt.

Ví dụ câu lệnh echo "Hello, world!"; trình duyệt sẽ nhận được chỗi văn bản Hello, world!.Câu lệnh echo 1+2; sẽ trả về cho trình duyệt chỗi văn bản 3.Và câu lệnh echo 1+2, "Hello, world!"; sẽ trả về trình duyệt chỗi 3Hello, world!.

Page 13: PHP Presentation

Phân cách các lệnh bằng dấu chấm phảy (;)Tương tự như các ngôn ngữ lập trình C hoặc Pascal, 1 câu lệnh của PHP được kết thúc bằng dấu chấm phảy (;). Ví dụ:echo 1+2;echo "Hello, world!";

Chú thích trong chương trìnhChú thích 1 dòng được bắt đầu bằng // hoặc #, và những gì được ghi từ đó về sau là chú thích. Chú thích nhiều dòng được bắt đầu bằng /* và kết thúc bằng */, những gì ở giữa là chú thích.

Page 14: PHP Presentation

TRUYỀN TT QUA CÁC TRANGTRUYỀN TT QUA CÁC TRANG

Sử dụng FORMSử dụng SESSIONSử dụng URL

Page 15: PHP Presentation

<form action=“URL” method =“POST”> <input … name =“n1”> <input … name =“n1”> .. </form>

$v1= $_POST[“n1”] $v2= $_POST[“n2”]

Method =“POST”Method =“POST”

Chỉ truyền được thông tin qua FORM.

Page 16: PHP Presentation

<form action=“URL” method =“GET”> <input … name =“n1”> <input … name =“n1”> .. </form>

$v1= $_GET[“n1”] $v2= $_GET[“n2”]

Method=“GET”Method=“GET”

TT được truyền trên URLhttp://www.duylinhmobile.com/index.php?dl=detail&c=1&i=147

………..x.php?n1=Nam&n2=TPVinh

Page 17: PHP Presentation

SESIONSESIONKhởi động:

<?php

session_start();

?>

Đặt đầu tiên của trang PHP

Gán giá trị:khởi đầu.

if (!isset($_SESSION[“n1”])

{ $SESSION[“n1”]=giá trị;}

Gán giá trị cho biến SESSION đã tồn tại

$SESSION[“n1”]=giá trị;

Page 18: PHP Presentation

Truyền TT qua URL?http://www.duylinhmobile.com/index.php?dl=detail&c=1&i=147

Ứng dụng phương pháp GET để đưa thông tin lên URL

<a href =“x.php”? Id=1&name=Nokia > Chi tiet </a>

…x.php?id=1 & name=Nokia

$id=$_GET[“id”]

$name=$_GET[“name”]

Lấy thông tin từ URL?

Page 19: PHP Presentation

Ứng dụng của PP truyền TT trên URLỨng dụng của PP truyền TT trên URL

Trong một số trường hợp không thể sử dụng FORM để truyền thôn tin

Nhưng cũng không hiệu quả nếu dùng SESSION

Ví dụ: Xem chi tiết của một sản phẩm bằng cách nháy

chuột vào hình ảnh Xem chi tiết thông tin của một người bằng cách

nháy chuột vào tên

Page 20: PHP Presentation
Page 21: PHP Presentation
Page 22: PHP Presentation

Ví dụVí dụ$id=01;$name =“Nokia”; Echo “<a href=\“xem.php\”?id=$id&n=$name> Chi tiet </a>

Chi tiet

…xem.php?id=01&n=Nokia

Page 23: PHP Presentation

Tổ chức các tệp tin trong một Web siteTổ chức các tệp tin trong một Web site

includes

baitap

images

Các tệp thư viện

HTML

PHP

functions.phpconnect.phpconsts.php

logo.jpgnokia.jpg

index.phpleft.phpright.phptop.php

Page 24: PHP Presentation

Chèn tệp tinChèn tệp tin PHP cho phép chèn các tệp tin đã có vào một vị trí nào

đó trong tệp tin hiện tại Include “path/filename”; hoặc require “path/filename”;

Index.php trong thư mục baitap <?php include “./includes/functions.php”; include “./includes/connect.php”; include “./includes/consts.php”; …

Page 25: PHP Presentation

PHP và MySQLPHP và MySQL

Không có MySQL thì PHP không thể phổ biến như hiện nay??MySQL là hệ quản trị CSDL miễn phí rất

phù hợp với các ứng dụng trên InternetHầu hết các HOST đều hỗ trợ MySQL và

PHPPHP chứa các hàm hỗ trợ làm việc với

CSDL MySQLhttp://www.mysql.nethttp://www.php.net

Page 26: PHP Presentation

Web ServerWeb Server

-IIS-Apache

MySQL Database

Client

-IE

-Netscape

-Mozila,...

PHP

Page 27: PHP Presentation

My SQLMy SQL Là hệ quản trị CDSL miễn phí Đủ mạnh để quản lý dữ liệu Không có giao diện đồ hoạ Cần sử dụng Công cụ để làm giao diện hoặc

dùng công cụ PHP admin Tạo lập CSDL Tạo các bảngPhân quyền sử dụng (account): Sau khi cài đặt

thông thường: root là tài khoản quản trị và mật khẩu để trắng

Page 28: PHP Presentation

CSDL quan hệCSDL quan hệ

Quan hệ R với các thuộc tính a1,a2,..an được thể hiện là

R(a1,a2,…an)

Trong đó a1,a2,…an là các thuộc tính của R

Ví dụ: Quan hệ sinhvien

sinhvien(masv,tensv,ns,qq,magv)

Quan hệ monhoc

monhoc(mamon,tenmon,dvht,mgv)

Mỗi thuộc tính ai sẽ có miền giá trị (DOM(ai)): Đó là tập hợp những giá trị mà ai có thể chứa

Page 29: PHP Presentation

Các thuộc tính của R được gọi là Trường (field) Miền giá trị DOM(ai) của một thuộc tính ai gọi là kiểu

dữ liệu cho trường ai Một quan hệ có thể có rất nhiều phần tử. Mỗi phần tử

trong quan hệ R là một bộ r=(va1, va2,…,van) Trong đó va1, va2,..van là các giá trị cụ thể thoã mãn

va1 DOM(a1), va2 DOM(a2),… Vd: Xét quan hệ sinhvien r=(‘43B01’,’Tran Van An’,’10/02/1980’,’Tp Vinh’,’IT01’) hoặc r=(‘CS03’,’Lập trình PHP’,4,’IT03’)

CSDL quan hệCSDL quan hệ

Page 30: PHP Presentation

Ví dụ quan hệ Ví dụ quan hệ giaoviengiaovien

Magv Tengv CV

IT01 Lê Ngoc Xuân PCN khoa

IT02 Phạm Quang Trình PCN Khoa

IT03 Nguyễn Quang Ninh GV

IT04 Đặng Hồng Lĩnh GV

IT05 Trần Xuân Hào GV

Page 31: PHP Presentation

masv tensv ns qq magv

43B01 Trần Văn An 10/11/1980 Tp Vinh IT01

43B02 Nguyễn Văn Hùng 02/04/1981 Hà Tĩnh IT03

42B02 Hoàng Văn Nam 03/04/1980 Thanh Hoá IT01

43B01 Nguyễn Nam Anh 03/05/1982 Tp Vinh IT05

Tập hợp các phần tử của quan hệ SINHVIEN

Khoá chính: Primary Key của R(a1,a2,..an) là một hoặc một số trường sao cho giá trị của khoá chính sẽ xác định tính duy nhất của một phần tử

Bản ghi: Record: Là một phần tử của quan hệ R hay còn gọi là một hàng

Page 32: PHP Presentation

Mối quan hệ giữa các quan hệMối quan hệ giữa các quan hệ Thể hiện mối quan hệ thực sự giữa các phần tử của

hai quan hệ nào đó Ví dụ: Một sinh viên do một giáo viên hướng dẫn Một giáo viên có thể hưỡng dẫn nhiều sinh viên -Một môn do nhiều giáo viên giảng dạy -Một giáo viên có thể giảng dạy nhiều môn Khoá ngoại lai: (Foreign key): Là trường kết nối hai

quan hệ Vi dụ: Trong quan hệ sinhvien chúng ta có trường

magv

Page 33: PHP Presentation

Thể hiện mối quan hệThể hiện mối quan hệgiaovienSienvien

masv tensv qq magv

43B01 Trần Văn An Tp Vinh IT01

43B02 Nguyễn Văn Hùng Hà Tĩnh IT03

42B02 Hoàng Văn Nam Thanh Hoá IT01

43B01 Nguyễn Nam Anh Tp Vinh IT05

Magv Tengv CV

IT01 Lê Ngoc Xuân PCN khoa

IT02 Phạm Quang Trình

PCN Khoa

IT03 Nguyễn Quang Ninh

GV

IT04 Đặng Hồng Lĩnh GV

IT05 Trần Xuân Hào GV

Page 34: PHP Presentation

Cơ sở dữ liệuCơ sở dữ liệu

Là một tập hợp các quan hệ có mối quan hệ với nhau Có nhiều phần mềm chuyên hỗ trợ tạo và quản lý dữ

liệu: SQL Server, MySQL, Oracle,.. Ngôn ngữ xử lý trên CSDL điển hình là: SQL

Page 35: PHP Presentation

PHP với MySQL PHP với MySQL Kết nối đến MySSQL mysql_connect(sv,username,pass) cho kết quả là

một biến kiểu resource. Là một con trỏ kết nối đến MySQL hoặc trả về một lỗi kết nối

Vd: $link =mysql_connect(“localhost”,”root”,””)

or die(“Không kết noi được”.mysql_error());

Đóng kết nối: mysql_close(conn);

Vd: mysql_close($link);

Chọn CSDL đã có:mysql_select_db(db,conn) trong đó db là tên CSDL,

conn là biến kết nối

Vd: mysql_select_db(“sinhvien”,$link) ;

Page 36: PHP Presentation

Thực hiện câu lệnh SQL mysql_query(sql) trong đó sql là câu lệnh SQL

cần thực hiện. Kết quả trả về tuỳ thuộc vào câu lệnh SQL

Vd 1: sql =“SELECT * from SINHVIEN”; $rs= mysql_query(sql); $rs là tập các bản ghi của bảng sinhvien Vd2: sql= “CREATE DATABASE shop”; Mysql_query(sql) or die (“Loi”.mysql_error()); Một CSDL được tạo ra hoặc thong báo lỗi

PHP với MySQL PHP với MySQL

Page 37: PHP Presentation

$rows = mysql_num_rows($rs); cho kết quả là số dòng được trả về trong $rs

$r = mysql_fetch_row($rs); cho kết quả là một bản ghi hiện tạicủa $rs

Page 38: PHP Presentation

$rs= mysql_query(“SELECT * FROM PRODUCT”,$link);

while ($r = mysql_fetch_row($rs))

{print "<tr>";

print "\t<td><font face=arial size=1/> $r[0] </font></td>";

print "\t<td><font face=arial size=1/>

<a href =\"index.php\"?p=$r[0] > $r[1] </a></font></td>";

print "\t<td width =\"30%\"><font face=arial size=1/> $r[1] </font></td>";

print "\t<td width =\"60%\"><font face=arial size=1/> $r[2] </font></td>";

print "\t<td width =\"60%\"><font face=arial size=1/> $r[3] </font></td>";

print "</tr>\n";

}

Page 39: PHP Presentation

Câu lệnh SQLCâu lệnh SQLSELECT field1, field2,.. FROM table

WHERE ConditionVd: SELECT * FROM PRODUCTChọn tất cả các bản ghi trong bảng

PRODUCTVd2: SELECT id, name, des, pic

FROM PRODUCT WHERE id=‘mo01’

Page 40: PHP Presentation

INSERT INTO table VALUE(v1,v2,…,vn) Vd01: INSERT INTO PRODUCT VALUE ($id,$name,$des,$pic)

Vd2: INSERT INTO PRODUCT VALUE (3,’Nokia’,’Dien

Thoai’,’nokia.jpg’)

Câu lệnh SQLCâu lệnh SQL

Page 41: PHP Presentation

UPDATE table SET field1=v1, field2=v2,… WHERE Condition

Vd01: UPDATE PRODUCT SET PIC =$pic WHERE id=$id Vd02: UPDATE PRODUCT SET PIC =‘samsung.jpg’

WHERE id=‘mo01’

Câu lệnh SQLCâu lệnh SQL

Page 42: PHP Presentation

DELETE FROM table WHERE Condition

Vd01: DELETE FROM PRODUCT WHERE id=$id

Câu lệnh SQLCâu lệnh SQL

Page 43: PHP Presentation

Tạo CDSL CREATE DATABASE SHOP Tạo bảng CATE CREATE TABLE CATE(cateid varchar(5)

not null, catename varchar(60))

Tạo bản PRODUCT CREATE TABLE PRODUCT(id int not null,

name varchar(80), des varchar(100), pic varchar (50),cateid varchar(5), PRIMARY KEY (id))

Câu lệnh SQLCâu lệnh SQL

Page 44: PHP Presentation

Câu lệnh SQLCâu lệnh SQL

Xoa CSDL da co:

DROP DATABASE name

Vd: DROP DATABASE shop

Xoa bang

DROP TABLE name

Vd: DROP TABLE cate

Page 45: PHP Presentation

Bài tập:Bài tập:

Tọ một bài tập có tên là SHOPTrong đó có chứa:shop\imagesshop\includes

Page 46: PHP Presentation

Thư mục SHOP chứa các trang PHP và HTML chính

Thư mục Shop\Include thì chứa các thư viện kết nối, hàm, định nghĩa hằng

Thư mục Shop\Image chứa các tệp tin ảnh

Page 47: PHP Presentation

include "./includes/connect.php"; mysql_query("DROP DATABASE shop") or die

("Khong xoa duoc CSDL".mysql_error()); mysql_query("CREATE DATABASE shop",$link)

or die ("loi tao CSDL".mysql_error()); mysql_select_db("shop"); mysql_query("create table Cate(cateid varchar(5)

not null,catename varchar(60), PRIMARY Key (cateid))") or die ("Khong tao duoc bang".mysql_error());

mysql_query("Create table Product(id int not null, name varchar(50), des varchar(100),pic varchar(50), price int, PRIMARY KEY(id))") or die ("khong tao duoc bang".mysql_error());

?>

Page 48: PHP Presentation

Hàm mysql_num_rows($rs) cho kết quả là số bản ghi

Hàm mysql_result($rs,i,fieldname)cho kế quả là giá trị của trường

fieldname tại bản ghi thứ iVới i bắt đầu =0

Page 49: PHP Presentation

Trang Admin Trang Admin Yêu cầu của một hệ thống ứng dụng

WEB

+ Có thể phát triển theo hướng: Module cập nhật xây dựng trên các NNLT khác nhau có làm việc với CSDL: Visual Basic, Visual C, ...

+ Cập nhật bằng Web

Phân quyền sử dụng

Page 50: PHP Presentation

Phân quyền?Phân quyền?Cần có bảng quản lý người sử dụng

trong CSDL

uername quyen pass

admin f 12345

edit e 123r

Page 51: PHP Presentation

Truy cập trang AdminTruy cập trang Admin

Tên đăng nhập

mật khẩu

Truyền username và mật khẩu qua các trang bằng nhiều cơ chế khác nhau

- bằng dữ liệu ẩn

- Bằng session

Page 52: PHP Presentation

VD: Trang xử lý LoginVD: Trang xử lý Login

$u= $_POST[“u” ]; $p =$_POST[“p” ]; $_SESION[“u” ]=$u; $_SESION[“p” ]=$p Hoặc sử dụng Form để u và Pass qua các trang <input type =“Hidden” name =“u” value = <?

PHP echo $u ?> > <input type =“Hidden” name =“p” value = <?

PHP echo $p ?> >

Page 53: PHP Presentation

Thực hành: Tạo trang LoginThực hành: Tạo trang Login

- Mở tệp tin Install.php - Đóng những lệnh không càn thiết - Tạo thêm một bảng users có các trường:

– u Varchar (20)– p Varchar (20)– quyen int – Tạo trang nhập người dùng cho bảng này– Tạo trang Login