phpmy sql information technology

167 4 0
phpmy sql information technology

Đ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

– Là một trang nội dung, có thể được viết bằng nhiều ngôn ngữ khác nhau nhưng có kết quả trả về client là HTML..  Website.[r]

(1)

PHP The First Day

Đào Quang Minh Trung tâm Tính tốn Hiệu cao – ĐHBK Hà Nội

minh0302@gmail.com

(2)

Chương 1: Tổng quan thiết kế Web

 Nhắc lại số khái niệm  Phân loại website

 Một số bước phát triển website  Giới thiệu hướng dẫn cài đặt phần

mềm hỗ trợ xây dựng website

(3)(4)

Một số khái niệm cần thiết

Domain Name

– Là tên gắn với địa IP

– Máy chủ DNS thực việc gắn (ánh xạ) có yêu cầu truy cập

– Được chia làm nhiều cấp, phân biệt dấu chấm – Ví dụ: hpcc.hut.edu.vn gắn với 202.191.56.49

• vn: Việt Nam (cấp 1)

• edu: Tổ chức giáo dục (cấp 2) • hut: Tên quan (cấp 3)

• hpcc: Đơn vị quan (cấp 4)

(5)

(tiếp)

Máy chủ

– Là máy chuyên cung cấp tài nguyên, dịch vụ cho máy tính khác

– Thường cài đặt phần mềm chuyên dụng để có khả cung cấp

– Một máy chủ dùng cho hay nhiều mục đích Tên máy chủ thường gắn với mục đích sử dụng Ví dụ:

• File server

• Application server • Mail server

Web server

(6)

(tiếp)

Máy khách

– Máy khai thác dịch vụ máy chủ

– Với dịch vụ thường có phần mềm chuyên biệt để khai thác

– Một máy tính vừa client vừa server – Một máy tính khai thác dịch vụ

(7)

(tiếp)

Cổng dịch vụ

– Là số thuộc vào khoảng 0-65535, dùng để xác định dịch vụ máy chủ

– Hai dịch vụ khác chiếm cổng khác

– Mỗi dịch vụ thường chiếm cổng xác định Ví dụ theo mặc định là:

(8)

(tiếp)

Chuỗi định vị tài nguyên (URL – Uniform

Resource Locator)

– Tài nguyên: file mạng

– Xác định vị trí cách khai thác file – Cấu trúc: giao_thức://địa_chỉ_máy (hoặc

IP)/đường_dẫn/tên_file

– VD: http://www.hut.edu.vn/content/index.php

– Trong trường hợp mặc định, nhiều thành phần bỏ qua:

(9)

(tiếp)

 Web page

– Là trang nội dung, viết nhiều ngơn ngữ khác có kết trả client HTML

 Website

– Tập hợp web page có nội dung thống phục vụ cho mục đích

 WWW (World Wide Web)

– Tập hợp website mạng Internet

 Web Server

– Là máy phục vụ web (chạy máy chủ)

– Một số phần mềm web server chuyên dụng như: Apache (open source) Internet Information Services – IIS (Microsoft)

 Web Browser

(10)(11)

Phân loại website

 Dựa vào cơng nghệ phát triển, có loại:

– Web tĩnh:

• Dễ phát triển • Tương tác yếu • Sử dụng HTML

• Cơng cụ trực quan

– Web động:

• Khó phát triển • Tương tác mạnh

• Sử dụng nhiều ngôn ngữ khác

(12)

(tiếp)

– Mọi người sử dụng nhận kết giống

– Trang web viết HTML, thay đổi có thay đổi người xây dựng

– Khả tương tác yếu

– Webserver hoạt động giống file server

Web Server

URL yêu cầu

URL yêu cầu

HTML

HTML

Client

Network

(13)

(tiếp)

– Mỗi người sử dụng nhận nội dung khác phụ thuộc vào kết chạy chương trình

– Trang web viết HTML + Ngơn ngữ lập trình phía server Có thể thay đổi người sử dụng

– Khả tương tác mạnh

Web Server

URL yêu cầu

URL yêu cầu

HTML

HTML

Client

Network Biên dịch,

Thực thi Trang web động

(14)

(tiếp)

Một số công nghệ viết web động

– Động phía Client:

• JavaScript, VBScript chạy client • Applet

• Flash

– Động phía Server:

• Common Gateway Interface (CGI) • Java Server Pages (JSP)

• ASP: Microsoft

– Viết VBScript, JavaScript chạy phía server – Sử dụng web server IIS

PHP: Mã nguồn mở

– Ngơn ngữ lập trình PHP, chạy phía server – Webserver: Apache, IIS

– Bộ biên dịch: PHP

(15)(16)

Một số bước phát triển website

Phân tích thiết kế hệ thống

(17)

(tiếp)

Một số ý

– Đặc tả: Website để làm gì? Ai dùng? Trình độ người dùng? Bố cục? Nội dung? Hình ảnh? v.v – Phân tích: Mối liệ quan nội dung? Thứ

tự nội dung? (kịch website)

– Thiết kế: Sơ đồ cấu trúc website, giao diện, tĩnh hay động, CSDL, nội dung trang, liên kết trang v.v

(18)

(tiếp)

Kiểm thử

– Kiểm tra nhiều trình duyệt – Kiểm tra nhiều loại mạng

– Kiểm tra tốc độ loại đường truyền – Kiểm tra liên kết

(19)(20)

Các phần mềm tảng xây dựng website

Operating System: LinuxWeb Server: Apache

(21)

Các phần mềm hỗ trợ

Server Suites: LAMPP,XAMPP, EasyPHP

Integrated Development Environment

– NetBean, Eclipse, Dreamweaver

Database

(22)

(tiếp)

XAMPP

– Download từ website:

http://www.apachefriends.org/en/xampp-linux.html

hoặc:

http://hpcc.hut.edu.vn/coursesk51/setups/ xampp-win32-1.7.1-installer.exe

– Cài đặt XAMPP: vào Terminal, gõ: tar xvfz

xampp-linux-1.7.1.tar.gz -C /opt

– Chú ý:

(23)

(tiếp)

NetBean

– Download từ website:

http://dlc.sun.com/netbeans/6.5/beta/

hoặc:

http://hpcc.hut.edu.vn/coursesk51/setu ps/netbeans-6.5-ml-linux.sh

– Cài đặt: mở Terminal, gõ sh netbeans-6.5beta-linux.sh

(24)

(tiếp)

MySQL

– Download từ website:

http://dev.mysql.com/downloads/gui-tools/5.0.html

– Tiến hành cài đặt thơng qua cửa sổ dịng lệnh Terminal

– Truy cập sở liệu thông qua MySQL

(25)(26)

Viết chương trình PHP đầu tiên  Cài đặt Xampp:

– Download gói cài đặt theo đường dẫn (ở phần trước)

– Khởi động xampp quyền root – Chuyển sang người dùng Root:

#sudo su

– Khởi động Xampp:

(27)

(tiếp)

 Sử dụng Nano Gedit để viết file php với dòng

lệnh sau:

<?php

$a = “PHP is so easy !”; echo $a;

?>

 Lưu lại file vừa viết thành: index.php

 Copy vào thư mục /opt/lampp/htdoc/coursek51/  Chạy PHP từ web browser:

(28)

Chương 2: Làm quen với PHP

 Tổng quan

 Cú pháp ngôn ngữ  Cấu trúc điều khiển

(29)(30)

Tổng quan PHP

 PHP: viết tắt hồi quy “PHP: Hypertext

Preprocessor”

 Là ngơn ngữ lập trình để viết trang

web động chạy server

 Bộ biên dịch PHP phần mềm mã nguồn

mở, chạy với web server như Apache, IIS,…

 Thường kết hợp với hệ quản trị CSDL

(31)

(tiếp) Có khả hướng đối tượng

Thông dịch

Phân biệt chữ hoa chữ thường

(32)(33)

Cú pháp ngơn ngữ PHP

Chú thích PHP

– // # để bắt đầu dòng thích – /* … */ để bắt đầu đoạn thích

<?php

#Đây thích //Đây thích /*Đây thích Đây thích /*

(34)

(tiếp)

Biến

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

– Bắt đầu dấu $, tiếp sau $ tên biến $a = 5; $A = 10;

– Tên biến bao gồm chữ cái, chữ số, dấu gạch nối (_) phải bắt đầu chữ (_) $a_1 = “Hello”; //hợp lệ

$5b = 10; //không hợp lệ

(35)

(tiếp)

– Không cần khai báo trước (được tự động khai báo vào lần gán giá trị

– Việc sử dụng biến chưa khởi tạo gây lỗi

– Cho phép sử dụng giá trị biến làm tên biến khác

if($a<10) //không hợp lệ chưa khởi tạo $a

$a = “temp”;

(36)

(tiếp)

PHP hỗ trợ kiểu liệu

– Số:

• Số nguyên: -231 đến 231 – 1

+ Hệ thập phân: $a = 16; + Hệ 16 (hexa): $a=0x10;

• Số thực: từ 1.7E-308 đến 1.7E+308

+ Biểu diễn: $a = 0.017;

+ Dạng khoa học: $a = 17.0E-03

– Chuỗi:

• Giới hạn nháy đơn („) kép (“)

• Chuỗi đặt dấu nháy kép bị thay xử ký ký tự cịn nháy đơn khơng VD:

$a = “Hello”;

$b = “$a World” //tương đương $b = “Hello World”

(37)

(tiếp)

 Chuỗi (tiếp)

– Để làm rõ biến chuỗi, cần bao biến vào cặp ngoặc nhọn { }

– Biến mảng, biến biến, biến tên có dấu gạch nối dấu chấm viết chuỗi bắt buộc phải bao lại

$a = “He”;

(38)

(tiếp)

 Chuỗi (tiếp)

– Ký tự thoát (\): sử dụng để viết ký tự đặc biệt chuỗi

Cần có chuỗi: He said:”PHP is good”!

$a = “He said: \“PHP is good\”!”;

– Một số ký tự buộc phải sử dụng ký tự thoát $,\, “,… ngồi cịn:

• \n: xuống dịng

(39)

(tiếp)

 Kiểu logic

– Có hai trạng thái true false function status ($in)

{

if ($in<5) return true; else return false;

}

(40)

(tiếp)

 Kiểu mảng

– Cho phép chứa nhiều giá trị liệu đánh mục số hay chuỗi

– Để truy cập vào phần tử, đặt số [ ] – Có thể sử dụng số khơng liên tiếp

– Có thể thêm phần tử vào cuối mảng cách bỏ số

$a[0] = “Xin”;

(41)

(tiếp)

 Kiểu mảng (tiếp)

– Chỉ số chuỗi

$a [“ho”] = “Nguyen”; $a [“ten”] = “Mai”;

– Mảng nhiều chiều (so phan tu cua mang)

• Được coi mảng mảng

$a[0][0] = “STT”; $a[0][1] = “1”;

$a[1][0] = “Ho ten”;

(42)

(tiếp)

 Kiểu mảng (tiếp)

– Khởi tạo mảng hàm array()

• Chỉ số mặc định

$a=array(“xin”, “chào”, “bạn”); /*tương đương với

$a[]=“xin”; $a[]=“chào”; $a[]=“bạn”;*/

• Chỉ số mặc định với số đầu khác

$a=array(5=>“xin”, “chào”, “bạn”); //phantu 5,6,7

/*tương đương với $a[5]=“xin”;

(43)

(tiếp)

 Khởi tạo mảng hàm array()(tiếp) – Chỉ số chuỗi:

$a=array(“ten”=>”Hồng”, “mau”=>”Đỏ”); /*Tương đương với:

$a[“ten”] = “Hồng”; $a[“mau”] = “Đỏ”;*/

– Mảng nhiều chiều:

$a = array(

array(“TT”, “Họ tên”), array(1,”Nguyễn Văn A”)

(44)

(tiếp)

 Ép kiểu kiểm tra kiểu

– Sử dụng cú pháp tương tự C/C++

$a = “123abc”; $so = (int) $a;

$kytu = (string) $a;

– Kiểm tra kiểu:

Gettype(),is_bool(),is _long(),

Ký hiệu Ý nghĩa kiểu (int), (integer) Số nguyên (real), (double),

(float) Số thập phân (string) Chuỗi

(array) Mảng

(object) Đối tượng

(bool), (boolean) Logic

(unset) NULL, tương tự

(45)

(tiếp)

Toán tử

– Kiểu số:

• Kết hợp: +, -, *, /, % • Tăng giảm: ++,

VD: $a++; $a ; ++$a; $a;

– Chuỗi: Toán tử chấm (.)

– Logic: AND (&&), OR (||), XOR, !

– Gán: =, +=, -=, *=, /=, %=, &=,^=,.= – So sánh: ==, !=, <, >, <=, >=

(46)(47)(48)

switch

switch ($biến){

case (giá_trị1): các_lệnh1;

case (giá_trị2): các_lệnh2;

default:

các_lệnh_khác;

(49)

Lặp không xác định While do

while (BTLG) {

các lệnh; }

do {

các_lệnh

(50)

Lặp xác định for

for (lệnh_khởi_tạo; BTLG; lệnh2){ các_lệnh;

}

foreach ($biến_mảng as $giá_trị){ lệnh;

}

foreach ($biến_mảng as $khoá=>$giá_trị){ lệnh;

(51)

Break Continue

Break: Kết thúc khối lệnh for, while, do-while hoặc switch

Continue: bỏ qua phần sau continue

(52)

Hàm tự tạo function

 Khái báo hàm

 Để trả giá trị cho hàm ta sử dụng lệnh return biểu_thức;

 Để thoát khỏi hàm:

– sử dụng return

– exit;

function tên_hàm(ts1, ts2,…, tsn) { //các lệnh thân hàm

(53)

Hàm tự tạo (tt)

 Gọi hàm:

tên_hàm(gt1,gt2,…,gtn);  Chú ý:

– Nếu hàm khơng có tham số, khai báo hàm, gọi hàm phải giữ lại ()

– Để khai báo hàm với tham số mặc định, khai báo ta đưa giá trị tham số vào

(54)

Phạm vi biến

 Phạm vi biến phạm vi biến xác định

Trong PHP, biến có phạm vi:

– Local variables - Biến cục bộ:

• Khởi tạo hàm

• Có tác dụng từ khởi tạo đến hết hàm

– Global variables - Biến tồn cục:

• Khởi tạo ngồi hàm

• Có tác dụng từ khởi tạo đến hết file trừ hàm • Để đưa biến toàn cục vào hàm, sử dụng khai báo

global $biến1, $biến2,…; $_GLOBAL[’biến’]=“giá trị”

(55)

Biến tĩnh

 Khai báo hàm

 Giá trị lưu trữ qua nhiều lần gọi hàm  Chỉ khởi tạo lần khai báo đầu tiên  Để khai báo:

(56)

Hằng số

 Khai báo: define (“tên_biến”,giá_trị)  Kiểm tra tồn số cú pháp:

(57)

Chèn file

include(“địa_chỉ_file”);  require(“địa_chỉ_file”);

(58)(59)

PHP The Second Day

Đào Quang Minh Trung tâm Tính tốn Hiệu cao – ĐHBK Hà Nội

minh0302@gmail.com

(60)

Chương 2: Làm quen với PHP (tiếp)

 Lập trình hướng đối tượng PHP

(61)(62)

Khai báo thể lớp PHP

 Các lớp khai báo thơng qua từ khóa class,

thuộc tính khai báo dạng biến phương thức khai báo dạng hàm

class tên_lớp {

//danh_sách_các biến, hằng, lớp //danh_sách_các_hàm

(63)

(tiếp)

 Khởi tạo đối tượng thuộc lớp với từ khóa

new

$tên_đối_tượng = new tên_lớp();

 Để gọi hàm lớp ta sử dụng toán tử ->

$tên_đối_tượng->tên_hàm();

 Hoặc dùng toán tử :: để gọi đến hàm hay

một biến (biến phải khai báo static)

(64)

Hàm tự động gọi autoload

 Trong trường hợp sử dụng lớp chưa

được định nghĩa hàm autoload tự động

được gọi

function autoload($class_name) {

require_once $class_name.‟.php‟; }

 Điều chưa có phiên

(65)

Hàm tạo construct

 Cho phép bạn khai báo hàm tạo theo phương

thức

class A {

function construct(){ //dòng lệnh

} }

 Nếu khơng tìm thấy hàm tạo theo phương thức

(66)

Hàm hủy destruct

 Ngược lại với hàm tạo, hàm hủy triệu gọi

khi đối tượng bị hủy

 Được gọi hai tình

– Trong lúc thực thi mã lệnh, mà tất liên quan đến đối tượng bị khơng cịn

– Hoặc đến cuối mã lệnh PHP kết thúc truy vấn

function destruct() {

}

(67)

Truy cập phương thức thuộc tính sử dụng trỏ $this

 Public, protected, private với thuộc tính

– Public: truy xuất từ bên ngồi từ bên phương thức thông qua trỏ đặc biệt $this

class A {

public $a = “public_member”; function printHello()

{

(68)

(tiếp) – Protected: truy xuất từ bên phương thức

của lớp từ lớp kế thừa từ lớp class A {

protected $a = “protected_member”; function printHello()

{

print $this->a; }

}

class B extends class A {

protected $a = “new protected_member”; function subprintHello()

{

print $this->a; }

(69)

(tiếp) – Private: truy xuất từ bên lớp đó,

cũng sử dụng trỏ $this protected

class A {

private $a = “private_member”; function printHello()

{

print $this->a; }

(70)

(tiếp)

 Public, protected, private với phương thức

– Cũng tương tự với thuộc tính với định nghĩa ràng buộc cho kiểu public, protected private – Cách khai báo tương tự khai báo thuộc

tính class A {

public function printHello() {

(71)

Static

 Biến static coi biến toàn cục

đặt lớp truy xuất từ đâu qua lớp đó, sử dụng tốn tử ::

 Khi gọi biến static hàm ta sử dụng toán tử

self thay cho trỏ this

class A {

static $a = 5;

function printHello(){ print self::$a;} }

(72)

(tiếp)

 Phương thức static: tương tự biến static

nhưng việc gọi tốn tử self truy xuất trỏ this hàm

class A {

static function printHello() { print “Xin chao”;

}

function show () {

self::printHello();//hoặc $this->printHello(); }

}

A::printHello();//A::show(); lỗi dùng $this $obj = new A();

(73)

(tiếp)

 Chú ý để tránh không rõ ràng toán tử

this self hay -> :: người ta thường quy ước sau:

– Khi gọi đến thuộc tính hay đối tượng kiểu static lớp hay từ lớp gọi đến hàm hay thuộc tính lớp nên dùng tốn tử self ::

(74)

Hằng số lớp

 Có thể định nghĩa lớp

 Nó có giá trị khơng đổi khai báo khơng có $

 Tên không trùng với tên biến, lớp,

hàm hay kết phép toán hay hàm

const myConst = “Const_Value”;

 Để lấy giá trị ta dùng tốn

(75)

Đa hình

 Đa hình PHP sử dụng lớp thừa kế

giữa chúng, làm cho việc miêu tả tình sống thực dễ dàng

 Nó làm cho dễ dàng với lập trình viên

khi phát triển dự án cách sử dụng lại mã lệnh thơng qua thừa kế

(76)

(tiếp)

 PHP không hỗ trợ đa thừa kế C++

 PHP cung cấp giải pháp khác cho việc tạo

nhiều quan hệ lớp cách sử dụng

(77)

parent:: self::

 PHP hỗ trợ lớp dành riêng để dễ dàng

việc viết ứng dụng hướng đối tượng

Self:: thường dùng để truy cập đến đối tượng, phương thức kiểu static hay số lớp

(78)

Toán tử instanceof

 Có giá trị trả kiểu logic (true hay false)

function checkifClass ($shape) {

if ($shape instanceof Rectangle) { print $shape->name;

print “ is a Class A <br />”; }

}

(79)

(tiếp)

 Dùng để kiểm tra xem đối tượng có phải

thuộc lớp hay khơng?

 Tốn tử dùng để kiểm trả xem đối

(80)

Interfaces

 Là lớp cho phép định phương thức

của lớp thực thi mà khơng phải định nghĩa phương thức làm việc

 Nếu lớp khai báo implements từ lớp

interfaces mà khơng có phương thức lớp interfaces khai báo chương trình báo lỗi

interface A {

//các_phương_thức (*) }

(81)

(tiếp)

 Một lớp thực thi nhiều interfaces

nhưng phải đảm bảo phương thức

(82)

(tiếp)

 Mọi phương thức mô tả Interfaces phải

được mô tả public

Interfaces thừa kế từ

interfaces khác (cho phép đa thừa kế)

(83)

Final

Final Method: giống Java, Final

(84)

(tiếp)

Final Class: tương tự Final Method,

(85)

Overloading

 Trong PHP định nghĩa lại hàm

trong lớp cha hàm tên lớp với chức hồn tồn khác

 Có thể tham chiếu xác phương thức

hay phương thức bị overload cách dùng

(86)

Exception Handling

 Các mã lệnh bắt exception khối try

{ }

 Khi exception ném vào catch bắt

lần lượt qua khối catch () { }

 Khi catch bắt catch sau

(87)

(tiếp)

 Throw <object>: ném object

chứ loại liệu strings hay integers

 Có lớp exception định nghĩa trước

tồn gọi Exception, tất lớp phải thừa kế từ

 Việc ném đối tượng mà không thừa kế

(88)(89)

Các đối tượng nhập liệu

 Cho phép người sử dụng nhập liệu trang web Dữ

liệu gửi server để xử lý

 Người sử dụng nhập liệu thơng qua điều khiển

(controls) Có nhiều loại control:

1 Form

2 Oneline Textbox Checkbox

4 Radio Button Button

6 Combo box (drop-down menu) Listbox

(90)

Phương thức truyền liệu

 PHP xử lý liệu qua khái niệm form HTML  Form có hai thuộc tính quan trọng:

action=“ ”: Địa trang web nhận liệu form submit (thường địa tương đối)

method=“ ”; Có hai phương thức Get (mặc định) Post

<form name=“” action=“index.php” method = “post”> <input type=“text” name=“user”>

(91)

(tiếp)

 Truyền liệu (biến) qua URL:

– Các biến truyền thành cặp

biến=giá_trị phân cách dấu &

– Phân cách với địa trang ban đầu dấu hỏi chấm (?)

Ví dụ: Truyền biến a, b, c có giá trị 1, 2, -3 vào trang http://localhost/index.php qua URL:

(92)

(tiếp)

 Khi ta Submit form sử dụng phương thức GET,

dữ liệu truyền qua URL:

– Tên biến tên đối tượng form

– Giá trị biến giá trị NSD nhập vào đối tượng

– Để đọc giá trị biến PHP: Sử dụng mảng $_GET,

các số tên biến

Ví dụ: Trong trang index.php đọc biến a, b, c:

(93)

(tiếp)

 Truyền liệu qua phương thức Post

– Dữ liệu Form post truyền thân yêu cầu HTTP

– Để đọc liệu sử dụng mảng $_POST với

(94)(95)

Cookie

 Là đoạn liệu truyền đến browser từ

server

 Được gửi ngược lại server browser tải

website từ server

 Hàm tạo Cookie:

function create_cookie ($name,$value) { $expires = time() + 60*60*24*365;

(96)

(tiếp)

 Hàm lấy Cookie

function get_cookie ($name) {

if (isset($_COOKIE[$name])) {

return urldecode($_COOKIE[$name]); }

else {

return FALSE; }

(97)

(tiếp)

 Xóa cookie tương tự tạo

cookie thay giá trị khởi tạo

create_cookie(„tên_cookie‟,0);

 Cookie từ động xóa sau khoảng thời gian

(98)

Session

 Là khoảng thời gian người dùng giao tiếp

với ứng dụng

 Bắt đầu từ người sử dụng truy cập vào

ứng dụng lần thoát khỏi ứng dụng

(99)

(tiếp)

 Khởi tạo giá trị cho session

$_SESSION[“tên_session”] = “giá_trị”;

 Mỗi session có định danh (ID)

tạo server khởi tạo Để lấy giá trị session_id

$id = session_id();

 Khởi tạo giá trị cho session

(100)

(tiếp)

 Hủy session

session_unset(“tên_session”);  Hủy session

(101)

PHP The Third Day

Đào Quang Minh Trung tâm Tính tốn Hiệu cao – ĐHBK Hà Nội

minh0302@gmail.com

(102)

Chương 3: PHP HTML, CSS, JavaScript

 PHP HTML

(103)(104)

HTML Form <form name="myform" method="post"

action="process.php">

<p>Name <input type="text" name="txtname“ /></p>

<p>Job <input type="text" name="txtjob“ /></p>

<p>Giới tính <input type="radio" name="rdbsex“ value="Nam”/>Nam

(105)

(tiếp) <p>Quê quán</p>

<select name="selhomeland“> <option value="Hà Nội"

selected="selected">Hà Nội</option> <option value="Huế">Huế</option>

<option value="Hồ Chí Minh">Hồ Chí Minh</option>

(106)

(tiếp)

<p>Học vị</p>

<input type="checkbox" name="ckb[]" value="Thạc sĩ” />Thạc sĩ

<input type="checkbox" name="ckb[]" value="Tiến sĩ” />Tiến sĩ

(107)

(tiếp)

<p>Mô tả thêm thân</p>

<textarea name="txtdetail" cols="45" rows="5" tabindex="9"></textarea>

<p><input type="submit" value="Cập nhật" tabindex="10" /></p>

(108)

PHP HTML Form $name = $_POST["txtname"];

$job = $_POST["txtjob"]; $sex = $_POST["rdbsex"];

$homeland = $_POST["selhomeland"]; $level = "";

foreach ($_POST["ckb"] as $value) {

$level = $value."<br />"; }

(109)

HTML File Browse

<form action="upload.php" method="post" enctype="multipart/form-data“>

File <input name="myfile” type="file" size="30" />

(110)

upload.php

<?php

$destination_path = getcwd().DIRECTORY_SEPARATOR; $target_path = $destination_path basename(

$_FILES['myfile']['name']);

if (($_FILES["myfile"]["type"] == "image/gif") || ($_FILES["myfile"]["type"] == "image/jpeg") && ($_FILES["myfile"]["size"] < 5120000) )

{

if(move_uploaded_file($_FILES['myfile']['tmp_name' ], $target_path))

$result = 1; }

(111)

(tiếp)

 Ngoài PHP cịn chèn vào

vị trí file HTML

<?php

if (điều kiện) {

?>

<form name=“” action=“” method=“”> </form>

<?php }

(112)(113)

HTML

 HTML – Hyper Text Markup Language sử dụng

thẻ (tag) < > để định dạng liệu

 HTML không phân biệt chữ hoa hay chữ thường

khơng trình duyệt báo lỗi cú pháp

 Cấu trúc file html thường có dạng:

<html>

(114)

Thẻ (tag)

 Có nhiều thẻ, thẻ có tên mang ý nghĩa

khác

 Có loại thẻ: thẻ đóng thẻ mở  Cách viết thẻ:

– Thẻ mở: <tên_thẻ>

Ví dụ: <u>, <p>, <img>…

– Thẻ đóng tương ứng: </tên_thẻ>

Ví dụ: </u>, </p>

(115)

Thuộc tính thẻ

 Một thẻ có thuộc tính nhằm bổ sung

tác dụng cho thẻ

 Mỗi thuộc tính có tên thuộc tính (tên_TT)  Viết thẻ có thuộc tính:

<tên_thẻ tên_TT1=“giá_trị1” tên_TT2=“giá_trị2”…>

 Chú ý:

– Có thể thay đổi thứ tự, số lượng thuộc tính mà khơng gây lỗi cú pháp

– Sự hỗ trợ thẻ, thuộc tính trình duyệt khác Chỉ giống thẻ, thuộc tính

– Thẻ đóng thẻ có thuộc tính viết bình thường

(116)

Soạn thảo văn bản

 Văn soạn thảo bình thường

các file HTML

 Lưu ý:

– Mọi khoảng trống, dấu xuống dòng HTML thể trang web khoảng trống

– Để gõ số ký tự đặc biệt ta phải sử dụng mã:

• Khoảng trống (trong trường hợp muốn có nhiều ký tự trống): &nbsp;

• Dấu nhỏ (<) lớn (>): &lt; &gt;

• Dấu ngoặc kép (“): &quot;

• Ký hiệu : &copy;

 Ghi HTML:

(117)

(tiếp) <head></head>: phần đầu 1 văn html, định nghĩa thông tin tài liệu, bao gồm thẻ như <title>,<meta>,<script>, v.v

(118)

Các thẻ thông dụng

 <table></table>: dùng để tạo bảng  <form></form>: dùng để tạo form  <img>: dùng để chèn ảnh

(119)

CSS

 CSS - Cascading Style Sheet: Mẫu quy

định cách thức thể thẻ HTML

 Các đặc điểm kỹ thuật CSS duy

trì W3C

 Giúp tiết kiệm nhiều thời gian và

công sức cho việc thiết kế web.

 Có thể định nghĩa nhiều style vào thẻ

(120)

Các loại style

 Có loại style:

Inline Style (Style qui định thẻ HTML cụ thể)

Internal Style (Style qui định phần <HEAD> trang HTML )

External Style (style qui định file CSS ngoài)

Browser Default (thiết lập mặc định trình duyệt)

 Thứ tự ưu tiên: Mức ưu tiên giảm dần từ

(121)

Cách chèn CSS

 Đặt <head>…</head>  Với Internal style:

<style type=“text/css”>

<! Nội dung định nghĩa style

>

(122)

Cách chèn CSS (tt)

 Với External style:

– Định nghĩa style file riêng (thường có CSS)

– Nhúng file CSS định nghĩa vào trang web:

<link href=“địa file"

rel="stylesheet" type="text/css">

 Với Inline style:

(123)

Chú ý CSS phân biệt chữ hoa chữ thường

Để ghi style sử dụng

/*

(124)

Khai báo CSS

selector {

(125)

Áp dụng cho thẻ cụ thể

 Trường hợp thẻ

p {

color: red; }

 Trường hợp nhiều thẻ

h1,h2,h3,h4,h5,h6{

font-family:arial;

(126)

Tạo lớp

 Gắn với thẻ cụ thể: Đặt selector

tên_thẻ.tên_lớp p.loai1{ color:red; } p.loai2{ color:blue; }

 Không gắn với thẻ cụ thể: bỏ phần tên_thẻ đi,

giữ lại dấu chấm:

.loai3{

color:green;

(127)

Sử dụng lớp

 Đặt thuộc tính class của thẻ = “tên_lớp”

<tên_thẻ class=“tên_lớp”>

 Ví dụ:

<p class=“loai1”>Đoạn màu đỏ</p> <h1 class=“loai2”>Style hiệu lực</h1>

(128)

Tạo định danh

 Tương tự class Thay dấu chấm (.) thành dấu

thăng (#)

 Cho thẻ cụ thể: tên_thẻ#định_danh{…}

 Tổng quát: #định_danh{…}

p#doan1{

color:red;

}

#loai2{

color:blue;

(129)

Sử dụng định danh

 Mỗi định danh trang

 Đặt thuộc tính id của thẻ = định_danh

<tên_thẻ id=“định_danh”>

(130)(131)

JavaScript

 JS ngơn ngữ kịch bản, nhúng

tích hợp vào tệp tin HTML

 Nếu trình duyệt hỗ trợ, JS

thực thi

 JS thông dịch trang HTML sau

khi toàn trang load trước khi trang hiển thị

 JavaScript hãng Sun Microsystems

(132)

Chèn Javascript vào HTML

 Sử dụng thẻ SCRIPT:

<script language="JavaScript">

<! JavaScript statements; // >

</script>

 Sử dụng file JavaScript

<script language="JavaScript" src="filename.js"> </script>

 Sử dụng biểu thức JavaScript giá trị

(133)

Các kiện JS hỗ trợ HTML

 Đặt lắng nghe kiện

<tên_thẻ tên_sự_kiện=“tên_lệnh;”>

• onClick • onChange • onFocus • onBlur

• onMouseOver

• onMouseOut • onLoad

• onSubmit

(134)

Các đối tượng trình duyệt

 Trình duyệt đưa số đối tượng có

(135)

HTML DOM

 Là chuẩn đưa W3C, định

nghĩa truy xuất đến văn HTML

 Tài liệu tra cứu HTML DOM xem

rất chi tiết địa sau:

(136)

Website hỗ trợ CSS, HMTL PHP

 http://www.w3schools.com/

 http://vn.php.net

 http://www.javascriptkit.com

 http://www.dynamicdrive.com

 http://www.javascriptbank.com

(137)(138)

PHP The Fourth Day PHP The Fourth Day

Đào Quang Minh Đào Quang Minh Trung tâm Tính tốn Hiệu cao

Trung tâm Tính tốn Hiệu cao –– ĐHBK Hà NộiĐHBK Hà Nội minh0302@gmail.com minh0302@gmail.com

(139)

Chương 3: PHP MySQL Chương 3: PHP MySQL

1. Các bước truy cập CSDL

(140)(141)

To kết ni đến Database Server To kết ni đến Database Server $biến_kết_nối =

mysql_connect(“máy_chủ”,“tên”,“mật_khẩu”) or die(“Không kết nối được”);

Hàm die(“Chuỗi”): ðưa thông báo kết thúc

thúc

Với cách viết trên, die thực lệnh

trước khơng thành cơng

$cnn =

(142)

La chn cơ s d liu La chn cơ s d liu

mysql_select_db(“Tên CSDL”) or die (“Chưa có CSDL”);

(143)

Viết truy vn Viết truy vn

$biến = mysql_query(“Lệnh SQL”) or die(“Không thực SQL”);

$sql = mysql_query(“Select * From $sql = mysql_query(“Select * From

(144)

Các hàm h tr

Các hàm h tr mysql_affected_rows(): Số ghi bị tác

động lệnh mysql_query liền trước

mysql_num_rows(): Kết số ghi của câu lệnh mysql_query

(145)

Các hàm x lý kết qu

Các hàm x lý kết qu mysql_fetch_array($sql): trả dòng

bản ghi dạng mảng với mục dạng số tên trường.

mysql_fetch_row($sql): trả kết một mảng có thứ tự (bắt đầu từ 0)

mysql_fetch_assoc($sql): trả kết một mảng đánh số tên

(146)(147)

Thế SQL Injection Thế SQL Injection

Là kỹ thuật cho phép kẻ công thi hành câu lệnh truy vấn SQL bất hợp pháp

Bằng cách lợi dụng lỗ hổng việc

(148)

Ví d

Ví d

$sql=mysql_query(“Select * From

account Where username = ‘$user’ And password = ‘$pass’”)

Nếu User nhập biến User là: “OR OR user=“ câu lệnh SQL là:

SELECT * FROM users WHERE user = "" OR OR user="" AND password = "$password“

(149)

(tiếp) (tiếp)

$sql=“Insert Into table_name

Values(‘$val1’,’$val2’,’$val3’)”;

Nếu biến val1 thành sau:

‘ + (Select Top Fieldname From ‘ + (Select Top Fieldname From TableName) +’

Insert Into TableName Values(‘’ + Select Top FieldName From

(150)

Cách phòng tránh Cách phòng tránh

SQL Injection khai thác bất cẩn các lập trình viên phát triển ứng dụng web khi xử lý liệu nhập vào

(151)

(tiếp) (tiếp)

Kiểm soát chặt chẽ liệu nhập vào

– Giới hạn chiều dài chuỗi nhập liệu

– Xây dựng hàm thay dấu nháy đơn dấu nháy đơn

– Xây dựng hàm loại bỏ số kí tự từ khóa – Xây dựng hàm loại bỏ số kí tự từ khóa

nguy hiểm

(152)

Ví d

Ví d Hàm length để giới hạn độ dài

Hàm thay ‘ thành ‘‘

function replace($input) {

$output = str_replace("'","''",$input); return $output;

(153)

(tiếp) (tiếp)

Hàm loại bỏ kí tự khơng mong muốn

function killchar($input) {

$len = strlen($input); $len = strlen($input);

$char = array("select","drop",";"," ","insert","delete","xp_");

$output = str_replace($char,"",$input); return $output;

(154)

Lp trình AJAX

(155)

Gii thiu Gii thiu

AJAX = Asynchronous JavaScript And XML AJAX ngôn ngữ mà

một cách sử dụng ngơn ngữ có.

AJAX giúp ta tạo trang web nhanh hơn, tiện lợi hơn, thân thiện sử AJAX giúp ta tạo trang web nhanh

hơn, tiện lợi hơn, thân thiện sử dụng.

(156)

Đặc đim AJAX

Đặc đim AJAX

Là công nghệ web browser ðộc lập với web server.

Sử dụng JavaScript để gửi nhận liệu giữa client server.

AJAX dựa trên: AJAX dựa trên:

– JavaScript – XML

– HTML – CSS

(157)

So sánh So sánh

Click –Wait-And-Refresh

(158)

Truy xut d liu t server JavaScript Truy xut d liu t server JavaScript

Với IE6: sử dụng Msxml2.XMLHTTP:

XMLHttp =

new ActiveXObject("Msxml2.XMLHTTP")

Với IE5.6: sử dụng Microsoft.XMLHTTP

XMLHttp =

new ActiveXObject("Microsoft.XMLHTTP")

Với trình duyệt khác: XMLHttpRequest

(159)

Mã lnh tng quát Mã lnh tng quát

(160)

Đối tượng XMLHttpRequest

Đối tượng XMLHttpRequest

Các phương thức

– open(“method,”url”): Thiết lập yêu cầu đến

server (địa trang cần kết nối đến)

– send(content): Gửi yêu cầu đến server

– abort(): Hủy yêu cầu

– abort(): Hủy yêu cầu

Các thuộc tính

– readyState: Trạng thái đối tượng

– onreadystatechange: Bộ xử lý kiện cho

sự kiện phát sinh có thay đổi trạng thái

(161)

(tiếp) (tiếp)

responseXML Response trả từ server

dưới dạng XML ðối tượng phân tách khảo sát đối tượng tài liệu DOM.

status Mã trạng thái HTTP từ server

(chẳng hạn 200 khơng có lỗi, 404 cho lỗi Not Found, …).

statusText Thông điệp mã trạng thái

(162)

Thuc tính readyState Thuc tính readyState

readyState=0: Chưa khởi tạo: sau tạo đối

tượng XMLHttpRequest chưa gọi open()

readyState=1: Vừa khởi tạo: sau gọi open()

nhưng chưa gọi send()

readyState=2: Vừa gửi đi: sau gọi

readyState=2: Vừa gửi đi: sau gọi

send()

readyState=3: ðang xử lý: sau kết nối đến

server server chưa trả lời

readyState=4: Xong: sau server tính tốn

(163)

Q trình tương tác Quá trình tương tác

1. Một event client-side gây kiện – Ajax event Bất kỳ tác động cũng gây Ajax event

<input type="text" id="email" name="email" onblur =

(164)

(tiếp) (tiếp)

2. Một thể XMLHttpRequest tạo ra:

– dùng phương thức open() – tạo lời gọi hàm

– địa URL thiết lập với phương thức Http yêu cầu

(165)

(tiếp) (tiếp)

var xmlHttp;

function validateEmail() {

var email = document.getElementById("email");

var url = "validate?email=" + escape(email.value); if (window.ActiveXObject) {

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }

else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); }

xmlHttp.open("GET", url);

xmlHttp.onreadystatechange = callback; xmlHttp.send(null);

(166)

(tiếp) (tiếp)

3. Một request tạo gửi đến server

4. Server xử lý yêu cầu (truy cập sở liệu, tác vụ hệ thống )

5. Response trả cho trình duyệt (xử

5. Response trả cho trình duyệt (xử lý dạng text/xml)

(167)

(tiếp) (tiếp)

6. Cấu hình XMLHttpRequest để gọi hàm callback() kết xử lý trả về

function callback() {

if (xmlHttp.readyState == 4) { if (xmlHttp.readyState == 4) {

if (xmlHttp.status == 200) { //do something interesting here

} }

ỗi định vị tài nguyên (URL – Unifor Truyền liệu (biến) qua URL: Là chuẩn đưa W3C, định http://www.w3schools.com/

Ngày đăng: 28/04/2021, 00:29