You are on page 1of 25

Lp trnh v Thit k Web 1

Bai 9
PHP nng cao

Khoa CNTT H.KHTN


2007 Khoa Cng ngh thng tin

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Ni dung
K thut Upload File bng PHP
K thut gi mail bng PHP S dng Cookie trong PHP

S dng Session trong PHP

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Ni dung
K thut Upload File bng PHP
K thut gi mail bng PHP S dng Cookie trong PHP

S dng Session trong PHP

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

K thut Upload File bng PHP


C ch Upload File
Thit k Form Upload File Thit k trang x l File c upload trn server

Kim tra li, nh dng, kch thc File upload


Vn quyn truy cp file

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

C ch Upload File
Yu cu trang upload.php Webserver

file

Internet or Intranet

Disk driver

Upload.php $_FILES[file]["name"] $_FILES[file]["type"] $_FILES[file]["size"] $_FILES[file]["tmp_name"] $_FILES["file]["error"]

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Thit k Form Upload File


Thit lp thuc tnh Form
Method = POST Enctype = multipart/form-data

--- UploadForm.htm --<form method="POST" action=upload.php enctype=multipart/form-data> <input type=FILE name =ProductImg><br> <input type=submit value=Submit"> </form>

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Thit k trang x l File c upload trn server


move_uploaded_file(tmp_name, saved_name)
--- Upload.php --<?php
move_uploaded_file($_FILES["ProductImg"]["tmp_name"], "upload/" . $_FILES["ProductImg"]["name"]);

echo echo echo echo ?>

"Upload: " . $_FILES["ProductImg"]["name"] . <br>; "Type: " . $_FILES["ProductImg"]["type"] . <br>; "Size: " . ($_FILES["ProductImg"]["size]/1024) . Kb<br>; Temp. Stored in: " . $_FILES["ProductImg"]["tmp_name"];

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Kim tra li, nh dng, kch thc File upload


Lu :
$_FILES[][type] image/gif image/jpeg image/pjpeg Firefox nhn y l file jpeg IE nhn y l file jpeg

$_FILES[][size]

: Kch thc file tnh theo byte

$_FILES[][error] : M li khi upload File = 0 : Khng c li > 0 : C li


2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Vn v quyn truy cp File


Cp quyn cho th mc /upload

PHP Warning: move_uploaded_file(upload/14.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in.
Account IUSR_XXX

Lu : Ch cp quyn ghi cho th mc cn thit Khng cp quyn ghi cho th mc WebRoot

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Ni dung
K thut Upload File bng PHP
K thut gi mail bng PHP S dng Cookie trong PHP

S dng Session trong PHP

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

K thut gi Email bng PHP


S dng th vin open source: PHP Mailer http://phpmailer.sourceforge.net/
Chp 3 file: class.phpmailer.php, class.smtp.php, phpmailer.lang-en.php vo th mc web ca site

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

K thut gi Email bng PHP


Gi email s dng Mail Server ca GMail

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Ni dung
K thut Upload File bng PHP
K thut gi mail bng PHP S dng Cookie trong PHP

S dng Session trong PHP

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Cookie Gii thiu


cookie
$_COOKIE

setcookie
Client Webserver

L 1 tp tin c server lu xung my ca client Mi ln client gi request 1 trang web, ng thi s gi km file cookie lu ln trc ln server Vic x l thng tin (lu, ly) trong cookie do server thc hin Thng c s dng lu thng tin c nhn ca client
2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Cookie C php s dng


Lnh ghi cookie
setcookie(name, value, expire, path, domain); setrawcookie(name, value, expire, path, domain);

name : Tn cookie value : Gi tr cookie expire : Thi im m cookie ht hiu lc path : ng dn trn server m cookie c hiu lc domain : Xc nh tn min m cookie c gi i Bt buc phi xut hin trc th <html>

Ly gi tr cookie
echo $_COOKIE[cookieName"];

Xa cookie
setcookie(cookieName", "", time() -3600);

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Cookie V d

$_COOKIE[fieldName] cookie Lu username & password

setcookie
Client Webserver

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Ni dung
K thut Upload File bng PHP
K thut gi mail bng PHP S dng Cookie trong PHP

S dng Session trong PHP

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Session
$_SESSION[sessionVar] Cookie: PHPSESSID

session_start
Client Webserver

L thng tin v client c server lu trn my ca server

S dng session lu nh danh duy nht cho tng client


Mc ch lu bin d liu dng chung cho nhiu trang trong 1 phin lm vic ca client
2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Session C php s dng


Khi ng Session
session_start();

Bt buc phi xut hin trc th <html>

Ghi & c gi tr Session


$_SESSION[sessionVar] = $value ;

$_SESSION[sessionVar] = array(); $_SESSION[sessionVar][] = $value;


if (isset($_SESSION[sessionVar"]) echo $_SESSION[sessionVar"];

Hy Bin trong Session


unset($_SESSION[sessionVar]);

Hy c Session
session_destroy();
2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Session V d : m s ln duyt trang web


<?php session_start( ); if (isset($_SESSION["count"]))

$_SESSION["count"] = $_SESSION["count"] + 1;
else $_SESSION["count"] = 1;

print You've looked at this page . $_SESSION['count'] . times.;


?>

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Session - ng dng cho Login


Lm th no ngn khng cho ngi dng truy cp vo cc trang web nu cha ng nhp?
tng
Dng cc bin Session lu trng thi ng nhp ca ngi dng:
$_SESSION[IsLogin] = true/false

: Lu trng thi ng nhp

$_SESSION[Username]

: Lu Tn ng nhp
: Lu Loi quyn ng nhp

$_SESSION[Authentication]

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Session - ng dng cho Login Gm 4 bc


1. To trang login.htm yu cu ngi dng ng nhp. 2. To trang validateuser.php x l thng tin ng nhp t trang login.htm
Kt ni vi CSDL, kim tra thng tin ng nhp c hp l hay khng ?
Nu khng hp l th cho redirect v trang login.htm. Nu hp l th dng mt bin trong Session lu trng thi login thnh cng

V d: $_SESSION[IsLogin] = true. Lu : Phi t gi tr mc nh cho bin Session ny l false khi khi to mt Session.

3. To trang logout.php l trang x l khi ngi dng logout


Reset trng thi login l cha ng nhp ($_SESSION[IsLogin]
= false).

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Session - ng dng cho Login


4. Trong tt c cc trang mun bo mt, thm on m sau kim tra ngi dng ng nhp hay cha, nu cha th redirect li trang login.htm

<?php session_start(); if (!isset($_SESSION[IsLogin]) || $_SESSION[IsLogin] == false) header(Location: login.htm); ?>

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

Session - ng dng cho Gi hng (shopping cart)

{Book1, Book2, Book3}


Session : Array : Mathang [ ] Session : Array : Soluong[ ]

Xa bin trong Session Ghi xung CSDL

{13, 2, 7}

2007 Khoa CNTT - HKHTN

Lp trnh v Thit k Web 1 Bi 9 : PHP nng cao

So snh : Session Cookie Database


Cookie1 Session 1 Cookie2

Client 1
Session 2

Web Server
Session 3

Internet or Intranet
Client 2 Database Server

Cookie3

Client 3

Thng tin chia s Database/File Session Cookies

V tr lu tr Server Server Client

Thi gian tn ti Di Ngn Di

S client Nhiu 1 1

S trang web s dng Nhiu Nhiu Nhiu

2007 Khoa CNTT - HKHTN

You might also like