Tổng Hợp Mọi Thứ Về PHP (TEST)

download Tổng Hợp Mọi Thứ Về PHP (TEST)

of 413

Transcript of Tổng Hợp Mọi Thứ Về PHP (TEST)

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    1/412

    Page 1 of 413

    Tng Hp Mi Th V

    PHP ( TEST )Mc LcChapter 1 : Gii Thiu PHPChapter 2 : Bt u Vi PHPChapter 3 : Ci t PHPChapter 4 : C Php PHPChapter 5 : Bin PHPChapter 6 : Chui Bin PHP

    Chapter 7 : Ton T PHPChapter 8 : Cu lnh if else trong PHP .Chapter 9 : Cu lnh Switch trong PHPChapter 10 : Arrays ( Mng )Chapter 11 : Looping While LoopsChapter 12 : Looping For LoopsChapter 13 : Functions ( Hm Chc Nng )Chapter 14 : PHP Forms and User InputChapter 15 : PHP $_GET VariableChapter 16 : PHP $_POST FunctionChapter 17 : Date() Function

    Chapter 18 : File HandingChapter 19 : File UploadChapter 20 : PHP CookiesChapter 21 : PHP SessionsChapter 22 : Sending EmailsChapter 23 : Secure E-mailsChapter 24 : Error HandingChapter 25 : Exception HandingChapter 26 : PHP FilterChapter 27 : PHP MySQLChapter 28 : PHP XML Expat Parser

    Chapter 29 : Gii thiu AJAXChapter Ngoi : Bi Tp-Bi 11: Vit ng dng ng nhp bng PHP v MYSQL-Bi 12: Vit ng dng thm thnh vin bng PHP v MYSQL-Bi 13: Vit ng dng qun l thnh vin bng PHP v MYSQL-Bi 14: vit ng dng sa xa thnh vin bng PHP v MYSQL-Bi 15: Vit ng dng to m xc nhn bng PHP-Bi 16: Vit ng dng m s ngi online bng php

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    2/412

    Page 2 of 413

    -Bi 17: Xy dng h thng bnh chn bng PHP v MYSQL-Bi 18: Xy dng ng dng to trang upload nhiu hnh nh-Bi 19: Vit ng dng to gi hng - shopping cart - phn 1-Bi 20: Vit ng dng to gi hng - shopping cart - phn 2Chapter 30 : Cc hm

    Chapter 31 : Linh Tinh Cc Th Bn Ngoi Tng Hp c+Code style theo chun Zend-Nhng iu cn bit v PHP 5.4-Cc hm rt hu ch trong PHP bn cn bit !-iu g khin bn l 1 coder ti ?-Cc li c bn trong lp trnh PHP-Code gi mail trong PHP-T lm menu 2 cp n gin vi php v javascript-T lm im sng vi javascript-Gii thiu - Ci t Smarty-Smarty c bn [ Phn 1 ]

    -Smarty c bn [ Phn 2 ]-K thut s dng lazy loading trong hng i tng-Regular Expressions-Gii thiu Regular Expression Nng cao- quy vi menu khng gii hn s cp (N cp)-Upload file trong php-Class support Mutil Language cho c bn v nng cao v cho c cc framework khc!!!!-Hng dn CSS Framework 960 cho mi ngi-Nhp d liu t file excel s dng cng ngh XML...-M hnh VMC auto load Controller v model-Th Thut Tng Tc PHP-Code phn trang theo kiu Google-Phn trang c bn, c phn on khng OOP-Hng dn s dng jquery ajax lng nhau trong ng dng-Code phn trang bng Ajax n gin-S dng JqGrid PHP-K thut seo website-Phn trang n gin vi Jquery-Performance Tips trong PHP - Part 1-Nhng lp v phng thc tru tng trong PHP 5.-M hnh Multi Modules , Multi Templates v Multi Database-Tm hiu th vin Php_filter-Vit Class Database c chng SQL Injection-Cch ly rss v tin tc T VnExPress-Cch dng hm ereg, preg trong php-Khi dng ajax khi nhn enter s t ng gi hm ging khi dng form-[TUT] Add d liu t form vo database hin th ting vit c du.-Tn mn v ECHO-Code xem th mc con .-STRING trong PHP [PART1]

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    3/412

    Page 3 of 413

    -STRING trong PHP [PART2]-STRING trong PHP [PART3]-STRING trong PHP [PART4]-Mng trong PHP [Part1]-Mng trong PHP [Part2]

    -Hng dn code trang news c bn-HNG DN CODE TRANG BN SCH-Hng dn chi tit code trang bn schAbout Author of this bookAuthor : Siverdragon12

    - V l do ngu hng v trong lc hc lp trnh php nn mun vit liquyn sch ny dnh cho ngi mi nhp mn hoc a phn cc bnkhng bit ting anh v 1 tng lai ai cng gii CNTT nh khng c ngha ai khng bit ting anh th khng th lp trnh .

    - Have A Nice Day , everybody !!!

    Ch : Sch Cha c hon thin . ang c b sung v chnh sanhiu th gip sch ngy mt hon thin hn v vy sch hin ang l bntest , s sm public bn hon thin v thm nhiu chapter mi , bi tp mi ,training mi cho cc bn v thm phn nng cao PHP gip cc bn hiuhn v lp trnh tt hn vi PHP . Share To Be Shared . Cm n .

    Chapter 1 : Gii Thiu PHP

    PHP l mt ngn ng kch bn my ch, v l mt cng c mnh lm cho cc trangWeb ng v tng tc.

    PHP l mt thay th c s dng rng ri, min ph, v hiu qu vi cc i th cnhtranh nh ASP ca Microsoft.

    "Show PHP" cng c ca chng ti lm cho n d dng tm hiu PHP, n cho thy cm ngun PHP v u ra ca m HTML.

    V D 1 on Code PHP n gin kt hp HTML

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    4/412

    Page 4 of 413

    Phn m l ngn ng PHP , cn li l HTML

    Chapter 2 : Bt u vi PHP

    Nhng g bn nn bit !!!

    Trc khi tip tc, bn cn phi c mt s hiu bit c bn sau y:-HTML-Javascript

    Nu bn mun nghin cu cc i tng ny ln u tin, tm thy cc hng dn trntrang ny .http://w3schools.com/

    PHP l g?

    -PHP l vit tt ca PHP: Hypertext Preprocessor-PHP l mt ngn ng s dng rng ri , l mt m ngun m-PHP c thc hin trn my ch ( vd : Linux )-PHP hon ton min ph download v s dng

    PHP l ngn ng n gin nht cho ngi mi bt u hc lp trnhPHP cng cung cp nhiu tnh nng tin tin cho cc lp trnh vin chuyn nghip.

    File PHP l g?

    -PHP tp tin c th cha vn bn, HTML, JavaScript m, v m PHP-M PHP c thc hin trn my ch, v kt qu c tr v cho trnh duyt nh

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    5/412

    Page 5 of 413

    HTML-PHP tp tin c phn m rng tp tin mc nh ca ". Php"

    PHP c th lm g?

    -PHP c th to ra ni dung trang nng ng-PHP c th to ra, m, c, vit, v cc tp tin trn my ch gn-PHP c th thu thp d liu mu-PHP c th gi v nhn cookie-PHP c th thm, xa, sa i d liu trong c s d liu ca bn-PHP c th hn ch ngi dng truy cp mt s trang trn trang web ca bn-PHP c th m ha d liu

    Vi PHP, bn khng gii hn u ra HTML. Bn c th xut hnh nh, tp tin PDF, vthm ch c phim Flash. Bn cng c th sn xut bt k vn bn, chng hn nh

    XHTML v XML.Ti sao PHP?

    - PHP chy trn cc nn tng khc nhau (Windows, Linux, Unix, Mac OS X, vv)- PHP l tng thch vi hu nh tt c cc my ch c s dng hin nay (Apache,

    IIS, vv)- PHP h tr cho mt lot cc c s d liu- PHP l min ph. Ti v n t ngun PHP chnh thc: www.php.net- PHP l d dng tm hiu v chy hiu qu pha my ch

    Chapter 3 : Ci t PHP

    Nhng g bn cn c !+ Tm 1 Hosting ( chy php , ci ny p dng cho ai mun thu host b tin mnhkhuyn nn chy localhost )+ Bn c th dng cc chng trnh h tr chy localhost trn google , c rt nhiu v

    bn c th ty chn nu thch

    i vi vic Chn Hosting- Bn nn chn hosting no h tr tt v t vn khch hng ( v l yu t cn

    thit )- Bn nn chn hosting no c tc load nhanh , h tr ng truyn tt v khng

    b cm cc hm ( Function ) to iu kin tt nht cho vic hc PHP

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    6/412

    Page 6 of 413

    Cc chng trnh chy Localhost u phi c cc iu sau y- C h thng Apache- MySQL

    - PHP l nhng yu cu c bn ca 1 server ( my ch )

    Chapter 4 : C Php PHPMt s c php n ginTt c cc m lnh php u bt u vi . M lnh ca PHP cth t bt c u trong file . 1 s my ch khc bn cng c th bt u vi i vi kh nng tng thch ti a, chng ti khuyn bn nn s dng cc hnh thc tiuchun (

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    7/412

    Page 7 of 413

    V d :

    Chapter 5 : Bin PHPBn cn nh mn i S Trng Khng ?Dng nh , x = 1 , y = 2 , z =3Bn cn nh vi mi t ta c th gn 1 gi tr (vd : x = 2 , y = 123 , z = 52 v.v ) v bn s dngmy thng tin tnh 1 gi tr no ca dchng hn .

    Tt c nhng ci trn c gi l Bin PHP , vbin c dng gi 1 gi tr nht nh (x=2)hoc l cc bi ton nh ( d = a+b+c ) trong a,b,c l cc hng s c gi tr bt k ( vd : a = 1 ,

    b = 2 , c = 3 th d = a + b + c = 6 )

    Bin PHP

    Vi i s, cc bin PHP c s dng gi cc gi tr hoc biu thc.Mt bin c th c mt tn ngn, nh x, hoc mt ci tn di hn, nh h vtn chng ta vy.

    Quy tc cho tn bin PHP :-Cc bin trong PHP bt u vi mt k hiu $, tip theo l tn ca bin-Tn bin phi bt u vi mt k t hoc k t gch di-Mt tn bin ch c th cha cc k t ch-s v gch di (A-z, 0-9, v _)-Mt tn bin khng nn cha khng gian ( gi l khong cch vd : $a b

    bin ny l sai , $ba th ny mi ng )-Tn bin l trng hp nhy cm v quan trng nn n phn bit c hoa vthng (y v Y l hai bin khc nhau)

    Creating (Declaring) PHP Variables

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    8/412

    Page 8 of 413

    PHP khng c lnh khai bo mt bin.

    Mt bin c to ra thi im ln u tin bn ch nh mt gi tr cho n: (lc mi bt u file php )

    Vd v 1 bin y

    $siverdragon12=Hacker;

    Sau khi thc hin bin trn th bin siverdragon12 s gi gi tr l Hacker

    Mo : Nu bn to mt bin m khng bt k gi tr no th bn nn t gi tr l null

    Vd :

    $siverdragon12=null;

    No , by gi ta s to ra 1 bin c cha k t ( ch t a -> z ) v 1 bin ccha s ( 0 -> 9 )

    Ch : i vi ch ( k t ) th bn phi du ngoc kp nh trn , cni vi s th khng cn .

    PHP l mt ngn ng lng loTrong PHP, mt bin khng cn phi c khai bo trc khi thm mt gi tr cho n.Trong v d trn, nhn thy rng chng ti khng phi ni vi PHP kiu d liu bin.PHP s t ng chuyn bin cho ng kiu d liu, ty thuc vo gi tr ca n.Trong mt ngn ng lp trnh mnh m, bn phi khai bo (xc nh) cc loi v tn cabin trc khi s dng n.

    Phm Vi PHPPhm vi ca mt bin l mt phn ca kch bn, trong bin c th ctham chiu.

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    9/412

    Page 9 of 413

    PHP c bn phm vi bin khc nhau:-local-global-static-parameter

    Phm Vi LocalMt bin khai bo trong mt hm PHP l a phng v ch c thc truy cp trong phm vi chc nng . (Bin c phm vi local): Vd .

    Cc kch bn trn s khng sn xut bt k sn lng v echo tuyn b

    cp n bin phm vi a phng bin $a, m khng c chnh mt gi tr trong phm vi ny.Bn c th c cc bin a phngc cng tn trong cc chc nng khc nhau, bi v cc bin a phngch c cng nhn bi cc chc nng m chng c khai bo.Ccbin a phng s b xa ngay sau khi chc nng, nhim v chon thnh.

    Phm Vi Global

    Phm vi ton cu cp n bt k bin c nh ngha bn ngoica bt k chc nng.

    Bin ton cu c th c truy cp t bt k mt phn ca kch bn khng phi l bn trong mt hm.

    truy cp vo mt bin ton cu t bn trong mt chc nng, sdng global t kha:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    10/412

    Page 10 of 413

    V d :

    Kt qu on code trn l 15 ( sau khi chy )

    PHP cng lu tr tt c cc bin ton cu trong mt mng gi l $GLOBALS [ index]. Ch s ca n l tn ca bin. Mng ny cng cth truy cp t bn trong chc nng v c th c s dng cpnht cc bin ton cu trc tip.

    V d trn c th c vit li nh th ny:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    11/412

    Page 11 of 413

    Phm Vi Static

    Khi mt hm c hon thnh, tt c cc bin ca n thng b xa. Tuy nhin, i khi bnmun bin a phng khng b xa.

    lm iu ny, s dng cc t kha tnh khi ln u tin bn khai bo cc bin:

    static $rememberMe;

    Sau , mi khi hm c gi, bin vn s c nhng thng tin n c t thi gian qua ccchc nng c gi.

    Lu :bin vn l local n chc nng.

    Parameters

    Mt tham s l mt bin a phng c gi tr c truyn cho hm m gi.

    Cc thng s c khai bo trong danh sch tham s nh l mt phn ca vic k khai hmfunctions:

    Function myTest($para1,$para2,...)

    {// function code}

    Cc thng s cn c gi l i s. Chng ti s tho lun chi tit hn khi chng ta ni v ccchc nng.

    Chapter 6 : Chui Bin PHP

    Chui bin c s dng s dng cho cc gi tr c cha k t .Trong chng trnh ny , chng ta s nhn vo chc nng ph bin nht vvn hnh c s dng thao tc cc chui bin trong PHP.Sau khi chng ti to ra mt chui , chng ta c th thao tc n . Mt chuic th c s dng trc tip trong mt hm hoc n c th c lu trtrong mt bin .Di y, cc tp lnh PHP gn vn bn "Hello World" vo mt chui bingi l $ txt:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    12/412

    Page 12 of 413

    Khi thc thi code trn th s ra kt qu tr v l Hello WorldNo , by gi chng ta th 1 s chc nng v cc chc nng khc nhau x l 1 chuiCh c mt chui trong PHP.S dng du (.) c s dng t hai chui vi nhau. ni hai bin chui vi nhau, s dng ton t ni:

    Kt qu tr v s l

    Hello World ! What a nice day!

    Nu chng ta nhn vo on m trn, bn thy rng chng ta s dng ton t ni hai ln.iu ny l bi v chng ti chn mt chui th ba (mt nhn vt khng gian), phn cch hai chui.

    Hm strlen()Hm strlen () c s dng tr li chiu di ca mt chui.Hy tm chiu di ca mt chui:

    Kt qu tr v l

    12

    Chiu di ca mt chui thng c s dng trong vng lp hoc cc chc nng khc,iu quan trng l bit khi no kt thc chui. (tc l trong mt vng lp, chng timun ngng vng lp sau khi k t cui cng trong chui).

    Hm strpos()Hm strpos () c s dng tm kim mt nhn vt / vn bn trong mt chui.

    Nu kt hp c tm thy, chc nng ny s tr li vi v tr nhn vt ca trn u u

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    13/412

    Page 13 of 413

    tin. Nu khng ph hp c tm thy, n s tr v FALSE.

    Hy xem nu chng ta c th tm thy chui "th gii" trong chui k t ca chng ti:

    Kt qu tr v l

    6

    V tr t "world" trong v d trn l 6. L do m n l 6 (v khng phi 7), l v tr ca kt u tin trong chui l 0, v khng phi 1.

    Thng tin v 1 s chc nng ca cc hm khc ( c th l khng y nhng cng nnc qua cho bit )http://w3schools.com/php/php_ref_string.asp

    Chapter 7 : Ton T PHP

    Ton T ( i s n gin ) OperatorsThe table below lists the arithmetic operators in PHP:

    Operator Name Description Example Result

    x + y Addition . Cng Sum of x and y 2 + 2 4

    x - y Subtraction . Tr Difference of x and y 5 - 2 3

    x * yMultiplication.Nhn

    Product of x and y 5 * 2 10

    x / y Division . Chia Quotient of x and y 15 / 5 3

    x % yModulus . Chialy s d

    Remainder of x dividedby y

    5 % 210 % 810 % 2

    120

    - x Negation . s m Opposite of x - 2

    a . bConcatenation .Ghp k t

    Concatenate two strings "Hi" . "Ha" HiHa

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    14/412

    Page 14 of 413

    Phn cng Operators

    The basic assignment operator in PHP is "=". It means that the left operand gets set to thevalue of the expression on the right. That is, the value of "$x = 5" is 5.

    Assignment Same as... Description

    x = y x = yThe left operand gets set to the value of the expression onthe right

    x += y x = x + y Addition

    x -= y x = x - y Subtraction

    x *= y x = x * y Multiplication

    x /= y x = x / y Division

    x %= y x = x % y Modulus

    a .= b a = a . b Concatenate two strings

    Tng dn/gim dn Operators

    Operator Name Description++ x Pre-increment Increments x by one, then returns x

    x ++ Post-increment Returns x, then increments x by one

    -- x Pre-decrement Decrements x by one, then returns x

    x -- Post-decrement Returns x, then decrements x by one

    Ton T So SnhComparison operators allows you to compare two values:

    Operator Name Description Examplex == y Equal True if x is equal to y 5==8 returns false

    x === y IdenticalTrue if x is equal to y, and theyare of same type

    5==="5" returns false

    x != y Not equal True if x is not equal to y 5!=8 returns true

    x y Not equal True if x is not equal to y 58 returns true

    x !== y Not identical True if x is not equal to y, orthey are not of same type

    5!=="5" returns true

    x > y Greater than True if x is greater than y 5>8 returns false

    x < y Less than True if x is less than y 5= yGreater than orequal to

    True if x is greater than or equalto y

    5>=8 returns false

    x

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    15/412

    Page 15 of 413

    equal to y

    Logical Operators

    Operator Name Description Example

    x and y And True if both x and y are true

    x=6y=3(x < 10 and y > 1) returnstrue

    x or y OrTrue if either or both x and y aretrue

    x=6y=3(x==6 or y==5) returnstrue

    x xor y Xor

    True if either x or y is true, but

    not both

    x=6y=3

    (x==6 xor y==3) returnsfalse

    x && y And True if both x and y are true

    x=6y=3(x < 10 && y > 1) returnstrue

    x || y OrTrue if either or both x and y aretrue

    x=6y=3(x==5 || y==5) returnsfalse

    ! x Not True if x is not true x=6y=3!(x==y) returns true

    Array Operators

    Operator Name Descriptionx + y Union Union of x and y

    x == y Equality True if x and y have the same key/value pairs

    x === y Identity

    True if x and y have the same key/value pairs in the same

    order and of the same typesx != y Inequality True if x is not equal to y

    x y Inequality True if x is not equal to y

    x !== y Non-identity True if x is not identical to y

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    16/412

    Page 16 of 413

    Chapter 8 : Cu lnh If else trongPHP

    Cu iu kin c s dng thc hin cc hnh ng khc nhau da trn cc iu kinkhc nhau.

    iu kin cu lnh ( c cho bit v suy ngh ) .N rt c dng thng xuyn khi bn vit code , bn mun thc hin mthnh ng ( 1 cu lnh ) nhng vi nhng quyt nh khc nhau th cu lnhif else l s la chn ca bn

    Bn c th s dng cu lnh iu kin trong m ca bn lm iu ny.

    - Trong PHP chng ti c bo co iu kin sau y .- Cu lnh if ( khng c else ) ci ny dng thc hin mt lnh ch khi iukin quy nh l ng s tht

    - Cu lnh if else thc hin iu kin nu n iu kin l ng cn nu sai ths tr kt qu khc else

    - Cu lnh if elseif else dng thc hin nhiu khi m 1 lc trong nhiukhi m thc hin ( vd trn c mi 1 iu kin sai th tr v ci kia , cn ciny nhiu trng hp i loi th )

    - Cu lnh switch S dng cu lnh ny la chn mt trong nhiu on m sc thc hin .

    Cu lnh IF- S dng cu lnh if khi thc hin mt s m khi v ch khi iu kin

    qui nh ca n ng vi m c qui nh

    C php cu if :

    If ( iu kin ) s c thc hin nu iu kin ng .

    V d sau y s a ra "Have a nice weekend!" nu ngy hin nay l th Su:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    17/412

    Page 17 of 413

    Ch rng on m trn khng c else . v vy m ny c thc thi khi nch ng vi iu kin .

    Cu lnh IF ELSE

    S dng cu lnh if else thc hin on m nu iu kin n l nghoc sai .C php :

    if (iu kin){

    M lnh s c thc hin nu iu kin ng;}

    else{M lnh s c thc hin nu iu kin sai;}

    V d

    V d sau y s a ra "Have a nice weekend!" nu ngy hin nay l th Su, nu khngphi n s tr kt qu khc l "Have a nice day!"

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    18/412

    Page 18 of 413

    Cu lnh IF ELSEIF ELSE

    S dng cu lnh if .... elseif ... else la chn mt trong nhiu khi m s c thchin.

    C php

    if (iu kin 1){code s c thc hin nu iu kin 1 ng;}

    elseif (iu kin 2){code s c thc hin nu iu kin 2 ng;}

    else{code s c thc hin nu my ci iu kin trn sai;}

    V d

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    19/412

    Page 19 of 413

    V d sau y s a ra "Have a nice weekend!"nu ngy hin nay l th Su, v "Have anice Sunday!" nu ngy hin nay l ch nht. Nu khng, n s ra "Have a nice day!"

    Chapter 9 : Cu lnh Switch PHPCu iu kin c s dng thc hin cc hnh ng khc nhau da trn cc iu kinkhc nhau.S dng cu lnh switch la chn mt trong nhiu khi m s c thc hin.

    C php

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    20/412

    Page 20 of 413

    switch (n){case label1:

    code s thc hin nu n=label1;break;

    case label2:code s thc hin nu if n=label2;break;

    default:code s thc hin nu n khc c 2 ci label1 v label2; }

    y l cch n hot ng: u tin chng ta c mt biu thc duy nht n (thng xuynnht mt bin), c nh gi mt ln. Gi tr ca biu thc sau c so snh vi ccgi tr cho tng trng hp trong cu trc. Nu c mt trn u, cc khi m lin kt vitrng hp c thc hin. S dng break ngn chn cc m t chy vo trnghp tip theo t ng. Nhng tuyn b mc nh c s dng nu khng tm thy.

    V d

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    21/412

    Page 21 of 413

    Chapter 10 : Arrays ( Mng )Mt mng lu tr nhiu gi tr trong mt bin duy nht.Mt Array l g?

    Mt bin l mt vng lu tr ang nm gi mt s hoc vn bn. Vn l, mt bin sch c mt gi tr.

    Mt mng l mt bin c bit, c th lu tr nhiu gi tr trong mt bin duy nht.

    Nu bn c mt danh sch cc mc (mt danh sch cc tn xe, v d), lu tr cc xe ttrong cc bin duy nht c th nhn nh th ny:

    $cars1="Saab";$cars2="Volvo";$cars3="BMW";

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    22/412

    Page 22 of 413

    Tuy nhin , nu khng phi 3 ci tn m l hng ngn ci tn th sao ? Gii php tt nht l dng mngMt mng c th gi tt c cc gi tr bin ca bn di mt ci tn. V bn c th truycp vo cc gi tr bng cch cp n tn mng.

    Mi phn t trong mng c ch s ring ca mnh n c th d dng truy cp.Trong PHP, c ba loi ca cc mng:

    Numeric array - Mt mng vi mt s ch sAssociative array - Mt mng m mi phm ID c kt hp vi mt gi trMultidimensional array- Mt mng c cha mt hoc nhiu mng

    Numeric Arrays

    Mt mng s cc ca hng mi phn t mng vi mt s ch s.

    C hai phng php to ra mt mng s.

    1. Trong v d sau ch s c gn t ng (ch s bt u t 0):

    $cars=array("Saab","Volvo","BMW","Toyota");

    2.Trong v d sau chng ta gn cc ch s theo cch th cng:

    $cars[0]="Saab";$cars[1]="Volvo";$cars[2]="BMW";$cars[3]="Toyota";

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    23/412

    Page 23 of 413

    V dTrong v d sau bn truy cp cc gi tr bin bng cch cp n tn mng v ch s:

    Code s tr v l

    Saab and Volvo are Swedish cars.

    Associative Arrays

    Mt mng kt hp, mi phm ID c kt hp vi mt gi tr.Khi lu tr d liu v cc gi tr c th c t tn, mt mng s khng phi l lunlun l cch tt nht lm iu .

    Vi mng kt hp, chng ti c th s dng cc gi tr nh l cha kha v gn gi tr choh.V d 1Trong v d ny, chng ti s dng mt mng gn la tui ngi khc nhau:

    V d 2

    V d ny l tng t nh v d 1, nhng cho thy mt cch khc nhau ca vic to ra cc

    mng:

    $ages['Peter'] = "32";$ages['Quagmire'] = "30";$ages['Joe'] = "34";

    $ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    24/412

    Page 24 of 413

    Cc phm ID c th c s dng trong mt kch bn:

    Code s tr v l

    Peter is 32 years old.

    Multidimensional Arrays

    Trong mt mng a chiu, mi phn t trong mng chnh cng c th l mt mng. Vmi phn t trong mng ph c th l mt mng, v nh vy.V dTrong v d ny, chng ta to mt mng a chiu, vi cc phm ID t ng gn:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    25/412

    Page 25 of 413

    $families = array("Griffin"=>array("Peter",

    "Lois","Megan"),"Quagmire"=>array("Glenn"),"Brown"=>array("Cleveland","Loretta",

    "Junior"));

    Cc mng trn s ging nh th ny nu bng vn bn n u ra:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    26/412

    Page 26 of 413

    Array([Griffin] => Array([0] => Peter

    [1] => Lois[2] => Megan)

    [Quagmire] => Array([0] => Glenn)

    [Brown] => Array([0] => Cleveland[1] => Loretta

    [2] => Junior))

    V d 2

    Cho php th hin th mt gi tr t mng trn:

    echo "Is " . $families['Griffin'][2] ." a part of the Griffin family?";

    Kt qu tr v s l

    Is Megan a part of the Griffin family?

    Chapter 11 : Looping While LoopsLoops thc thi mt khi m mt s quy nh ca ln, hoc trong khi mt iu kin cch nh l ng s tht.

    PHP Loops

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    27/412

    Page 27 of 413

    Thng thng khi bn vit m, bn mun cng mt khi m chy hn v hn natrong mt hng. Thay v thm mt vi dng trong mt kch bn gn nh bng nhau,chng ta c th s dng cc vng lp thc hin mt nhim v nh th ny.

    Trong PHP, chng ti c bo co vng lp sau y:- while - loops thng qua mt khi m trong khi mt iu kin c ch nh l ng s

    tht- do ... while - vng lp thng qua mt khi m mt ln, v sau lp i lp li vng

    lp di nh mt iu kin xc nh l ng s tht- foreach - loops mt khi m cho mi phn t trong mt mng

    The while Loop

    Cc vng lp trong khi thc thi mt khi m trong khi mt iu kin l ng s tht.

    C php

    while (iu kin){code s c thc hin;}

    V d

    V d di y u tin thit lp mt bin 1 ($i=1;).

    Sau , trong khi vng lp s tip tc chy khi i nh hn hoc bng 5. N s tng thm 1mi ln vng lp chy:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    28/412

    Page 28 of 413

    Kt qu l

    The number is 1The number is 2The number is 3

    The number is 4The number is 5

    The do...while Statement

    Vic do ... while khi tuyn b s lun lun thc hin cc khi m mt ln, sau s kim

    tra cc iu kin, v lp li vng lp trong khi iu kin l ng.C php

    do{code s c thc hin;}

    while (iu kin);

    V d

    V d di y u tin thit lp mt bin 1 ($i=1;).

    Sau , n bt u do ... trong khi vng lp. Cc vng lp s tng bin i vi 1, v sau vit mt s u ra. Sau , iu kin c kim tra (l ti t hn, hoc bng 5), v vnglp s tip tc chy khi i nh hn hoc bng 5

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    29/412

    Page 29 of 413

    Kt qu cho ra l

    The number is 2The number is 3The number is 4The number is 5The number is 6

    Cc vng lp v vng lp foreach s c gii thchtrong chng k tip.

    Chapter 12 : Looping For LoopsLoops thc thi mt khi m mt s quy nh ca ln, hoc trong khi mt iu kin cch nh l ng s tht.

    The for Loop

    Vng lp for c s dng khi bn bit trc kch bn nn chy bao nhiu ln.C php

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    30/412

    Page 30 of 413

    for (init; condition; increment){code to be executed;}

    Ch thch:

    init: Hu h s dng s m (nhng c th c bt km c thc hin mt ln vo u ca vng lp)

    condition: iu kin cho mi ln lp. Nu iu kinny ng, vng lp tip tc. Nu n iu kin sai thvng lp kt thc.

    increment: Hu ht tng s m (nhng c th cbt k m s c thc hin vo cui ca s lp li)

    Lu : Cc thng s init v increment c th c snphm no hoc c nhiu biu ng (cch nhau bng duphy).

    V d

    V d di y nh ngha mt vng lp bt u vi i = 1. Cc vng lp s tip tc chymin l bin i nh hn hoc bng 5. Bin i s tng thm 1 mi ln vng lp chy:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    31/412

    Page 31 of 413

    Kt qu tr v l

    The number is 1The number is 2The number is 3The number is 4The number is 5

    The foreach Loop

    Vng lp foreach c s dng lp qua mng.C php

    foreach ($array as$value){code to be executed;}

    i vi mi vng lp, gi tr ca phn t mng hin ti c gn cho $ value (v con trmng l di chuyn ca mt) - do , vng lp tip theo, bn s c xem xt gi tr mngtip theo.

    V d

    V d sau y cho thy mt vng lp m s in cc gi tr ca cc mng nht nh

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    32/412

    Page 32 of 413

    Kt qu tr v s l

    onetwothree

    Chapter 13 : Functions ( Hm

    Chc Nng )Sc mnh thc s ca PHP xut pht t chc nng ca mnh.

    Trong PHP, c hn 700 tch hp chc nng.

    Bn c th tham kho cc chc nng nhiu hn y

    http://w3schools.com/php/default.asp

    PHP Functions

    Trong chng ny, chng ti s cho bn thy lm th no to ra cc chc nng caring bn. gi cho kch bn ang c thc thi khi ti trang, bn c th t n vo mthm.Chc nng s c thc hin bi mt cuc gi n chc nng.Bn c th gi mt chc nng t bt c ni no trong mt trang .

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    33/412

    Page 33 of 413

    Create a PHP Function

    Chc nng s c thc hin bi mt cuc gi n chc nng.C php

    functionfunctionName(){code to be executed;}

    PHP function hng dn:

    Cung cp cho cc chc nng mt tn phn nh nhng g chc nngTn chc nng c th bt u bng mt ch ci hoc gch di (khng phi s)

    V d

    Mt chc nng n gin, vit tn ca ti khi n c gi l:

    Kt qu l

    My name is siverdragon12

    PHP Functions - Adding parameters (thm cc thngs)

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    34/412

    Page 34 of 413

    thm nhiu chc nng cho mt hm, chng ta c th thm cc thng s. Mt tham sl ging nh mt bin.

    Tham s c quy nh c th sau tn hm, bn trong du ngoc n.V d 1

    V d sau y s vit tn khc nhau u tin, nhng tn cui cng nh nhau:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    35/412

    Page 35 of 413

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    36/412

    Page 36 of 413

    Kt qu s l

    1 + 16 = 17

    Chapter 14 : PHP Forms and User

    InputCc bin PHP $_GET v $_POST c s dng ly thng tin t cc hnhthc, nh u vo ca ngi s dng.

    PHP Form Handling

    iu quan trng nht khi giao dch vi cc hnh thc HTML v PHP l bt k yu thnh thc trong mt trang HTML s t ng c sn cho PHP script ca bn.V d

    V d di y c cha mt dng HTML vi hai lnh vc u vo v mt nt submit:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    37/412

    Page 37 of 413

    Name:

    Age:

    Khi mt ngi dng in vo cc hnh thc trn v nhp chut vo nt submit, cc dliu mu c gi vo mt tp tin PHP, gi l "welcome.php":

    "welcome.php" trng nh th ny:

    Welcome !
    You are years old.

    Kt qu tr v s i loi nh th ny

    Welcome John!You are 28 years old.

    Cc bin PHP $_POST v $_GET s c gii thch trong cc chng tip theo.

    Form Validationu vo s dng nn c xc nhn trn cc trnh duyt bt c khi no c th (theo lnhca khch hng). Trnh duyt xc nhn l nhanh hn v gim ti my ch.

    Bn nn xem xt my ch xc nhn nu ngi dng nhp vo s c chn vo c s dliu. Mt cch tt xc nhn mt hnh thc trn my ch l vit cc hnh thc chochnh n, thay v nhy n mt trang khc. Sau ngi dng s nhn c cc thng

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    38/412

    Page 38 of 413

    bo li trn cng mt trang nh hnh thc. iu ny lm cho n d dng hn pht hinra cc li.

    Chapter 15 : PHP $_GET VariableTrong PHP, bin $ _GET c xc nh trc c s dng thu thp cc gi tr trongmt hnh thc vi phng php = "get".

    The $_GET Variable

    Thng tin c gi t mt hnh thc vi phng thc GET c th nhn thy tt c mingi (n s c hin th trong thanh a ch ca trnh duyt) v c gii hn v s lng

    thng tin gi.V d

    Name: Age:

    Khi ngi dng nhp vo nt "Submit", URL gi n my ch c th nhn mt ci g

    nh th ny:

    http://localhost/welcome.php?fname=Peter&age=37

    Cc tp tin "welcome.php" by gi c th s dng bin $ _GET thu thp d liu mu(tn ca cc trng mu t ng s l cha kha trong mng $ _GET):

    Welcome .
    You are years old!

    When to use method="get"?

    Khi s dng phng php "get" trong cc hnh thc HTML, tt c cc tn bin v gi trc hin th trong URL.

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    39/412

    Page 39 of 413

    Lu : Phng php ny khng nn c s dng khi gi mt khu hoc cc thng tinnhy cm khc!

    Tuy nhin, bi v cc bin c hin th trong URL, n c th nh du trang. iu ny

    c th hu ch trong mt s trng hp.Lu : Phng php get l khng ph hp vi cc gi tr bin rt ln. N khng nnc s dng vi gi tr vt qu 2000 k t.

    Chapter 16 : PHP $_POSTFunctionTrong PHP, bin $ _POST c xc nh trc c s dng thu thp cc gi tr trongmt hnh thc vi phng php = "post".

    The $_POST Variable ( Bin $_POST )

    Bin $ _POST c xc nh trc c s dng thu thp cc gi tr t mt hnh thcgi vi phng php = "post".

    Thng tin c gi t mt hnh thc vi phng thc POST l v hnh cho ngi khc

    v khng c gii hn v s lng thng tin gi.Lu : Tuy nhin, kch thc ti a cho phng thc POST l 8 MB mc ch ( c ththay i mc nh thng qua file php.ini , dng post_max_size )

    V d :

    Name: Age:

    Khi ngi dng nhp vo nt "Submit", URL s nh th ny:

    http://localhost/welcome.php

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    40/412

    Page 40 of 413

    Cc tp tin "welcome.php" by gi c th s dng bin $ _POST thu thp d liu mu(tn ca cc trng mu t ng s l cha kha trong mng $ _POST):

    Welcome !
    You are years old.

    When to use method="post"?

    Thng tin c gi t mt hnh thc vi phng thc POST l v hnh cho ngi khcv khng c gii hn v s lng thng tin gi.

    Tuy nhin, bi v cc bin khng c hin th trong URL, n khng phi l c th nhdu trang.

    The PHP $_REQUEST Variable

    Bin $ _REQUEST c xc nh trc c cha cc ni dung ca c hai $ _GET,$_POST , $_COOKIE

    Bin $ _REQUEST c th c s dng thu thp d liu mu c gi vi c haiphng php GET v POST.V d

    Welcome !
    You are years old.

    Phn 2 : PHP Nng Cao

    Chapter 17 : Date() FunctionChc nng php date() dng nh dng mt thi gian v / hoc ngy.

    The PHP Date() Function

    Chc nng PHP Date() nh dng du thi gian cho mt ngy d c hn v thi gian.

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    41/412

    Page 41 of 413

    Mo : Du thi gian l mt chui cc k t, biu th ngy thng v / hoc thi gian mti mt s kin no xy ra.C php

    date(format,timestamp)

    Parameter Descriptionformat Required. Specifies the format of the timestamp

    timestamp Optional. Specifies a timestamp. Default is the current date and time

    PHP Date() - Format the Date

    Tham s nh dng cn thit trong date()xc nh lm th no nh dng ngy / thigian.

    Di y l mt s k t c th c s dng:

    d - i din cc ngy trong thng (01-31)m - i din cho mt thng (01-12)Y - i din mt nm (bn ch s)

    Bn c th tham kho thm ti yhttp://w3schools.com/php/php_ref_date.asp

    Nhng k t khc nh : /,.,- cng c th c chn vo gia cc cc ch ci bsung thm nh dng .

    Kt qu tr v s l

    2013/05/112013.05.112013-05-11

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    42/412

    Page 42 of 413

    PHP Date() - Adding a Timestamp

    Tham s du thi gian ty chn trong date() chc nng xc nh mt du thi gian. Nubn khng ch nh mt du thi gian, ngy hin ti v thi gian s c s dng.

    Chc nng mktime() tr v cc du thi gian Unix cho mt ngy.

    Cc du thi gian Unix cha s giy gia Epoch Unix (January 1 1970 00:00:00 GMT)v thi gian quy nh.

    C php cho mktime()

    mktime(hour,minute,second,month,day,year,is_dst)

    i mt ngy trong tng lai, chng ti ch n gin l thm mt i s ngy mktime()

    Code s ra l

    Tomorrow is 2009/05/12

    Chapter 17 : Include File

    PHP include and require Statements

    Trong PHP, bn c th chn ni dung ca mt file PHP vo mt tp tin PHP trc khimy ch thc hin n.

    Bao gm v yu cu bo co c s dng chn m hu ch bng vn bn trong cctp tin khc, trong dng chy ca thc hin.

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    43/412

    Page 43 of 413

    Bao gm v yu cu ging ht nhau, ngoi tr khi tht bi:

    -yu cu s to ra mt li nghim trng (E_COMPILE_ERROR) v dng li kch bn-bao gm s ch sn xut mt cnh bo (E_WARNING) v kch bn s tip tc

    V vy, nu bn mun thc hin i vo v ch cho ngi s dng u ra, ngay c khibao gm cc tp tin l mt tch, s dng bao gm. Nu khng, trong trng hpFrameWork, CMS hoc mt ng dng PHP m ha phc tp, lun lun s dng yu cu bao gm mt tp tin quan trng n dng chy ca thc hin. iu ny s gip trnhnh hng n an ninh v ton vn ca ng dng ca bn, ch cn trong trng hp mttrong nhng tp tin quan trng l v tnh mt tch.

    Cc file bao gm tit kim rt nhiu cng vic. iu ny c ngha l bn c th to mttiu tiu chun, chn, hoc tp tin trnh n cho tt c cc trang web ca bn. Sau ,khi tiu cn c cp nht, bn ch c th cp nht cc tiu bao gm cc tp tin.

    Syntax ( C php )

    include 'filename';

    or

    require 'filename';

    PHP include and require Statement

    Gi s bn c mt tp tin tiu tiu chun, c gi l "header.php". bao gm cctp tin tiu trong mt trang, s dng include/require:

    Welcome to my home page!

    Some text.

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    44/412

    Page 44 of 413

    V d 2

    Gi s chng ta c mt tp tin trnh n tiu chun nn c s dng trn tt c cctrang.

    "menu.php":

    echo 'HomeTutorialsReferencesExamplesAbout UsContact Us';

    Tt c cc trang trong trang Web nn bao gm cc tp tin trnh n ny. y l lm thno n c th c thc hin:

    Welcome to my home page.

    Some text.

    V d 3

    Gi s chng ta c mt tp tin vi mt s bin c nh ngha ("vars.php") bao gm:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    45/412

    Page 45 of 413

    Sau , cc bin c th c s dng trong cc tp tin gi:

    Welcome to my home page.

    Chapter 18 : File HandingChc nng fopen() dng m 1 file trong PHP

    Opening a File

    Tham s u tin ca chc nng ny cha tn ca tp tin c m v tham s th hai quynh c th trong ch tp tin phi c m ra:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    46/412

    Page 46 of 413

    Tp tin c th c m trong mt trong cc phng thc sau y:

    Modes Descriptionr Read only. Starts at the beginning of the file

    r+ Read/Write. Starts at the beginning of the file

    w Write only. Opens and clears the contents of file; or creates a new fileif it doesn't exist

    w+ Read/Write. Opens and clears the contents of file; or creates a new fileif it doesn't exist

    a Append. Opens and writes to the end of the file or creates a new file ifit doesn't exist

    a+ Read/Append. Preserves file content by writing to the end of the filex Write only. Creates a new file. Returns FALSE and an error if file

    already exists

    x+ Read/Write. Creates a new file. Returns FALSE and an error if filealready exists

    Lu : Nu hm fopen() l khng th m cc tp tin c ch nh, n s tr v 0 (false).V d

    V d sau y to ra mt tin nhn nu hm fopen() l khng th m cc tp tin c chnh:

    Closing a File

    Chc nng fclose() dng ng file ang m:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    47/412

    Page 47 of 413

    Check End-of-file

    Feof () chc nng kim tra nu "end-of-file (EOF) t c.

    Feof () chc nng hu ch cho Looping thng qua cc d liu khng r chiu di.

    Lu : Bn khng th c t tp tin m trong w, a, v ch x!

    if (feof($file)) echo "End of file";

    Reading a File Line by Line

    Cc fgets() chc nng c s dng c mt dng t mt tp tin duy nht.

    Lu : Sau khi mt cuc gi n chc nng ny, con tr tp tin di chuyn n dng ktip.V d

    V d di y c mt dng tp tin theo dng, cho n khi t n cui ca tp tinc:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    48/412

    Page 48 of 413

    Reading a File Character by Character

    Hm fgetc() c s dng c mt k t t mt tp tin duy nht.

    Lu : Sau khi mt cuc gi n chc nng ny di chuyn con tr tp tin k t tip theo.V d

    V d di y c mt tp tin k t ca nhn vt, cho n khi t n cui tp tin:

    Chapter 19 : File UploadVi PHP , n c th cho php bn upload 1 tp tin ln server ( my ch )

    Create an Upload-File Form

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    49/412

    Page 49 of 413

    cho php ngi dng ti ln cc tp tin t mt hnh thc c th rt hu ch.

    Nhn vo cc hnh thc HTML cho cc tp tin ti ln sau:

    Filename:

    Ch sau y v dng HTML trn:

    -Thuc tnh enctype ca th xc nh loi ni dung s dng khi np mun. "multipart / form-data" c s dng khi yu cu d liu nh phn, ging nh nidung ca mt tp tin c ti ln mt hnh thc ( ti nhiu file cho nhanh )

    -Type = "file" thuc tnh ca th xc nh rng u vo nn c x l nhmt tp tin. V d, khi xem trong mt trnh duyt, c s l mt nt browse bn cnh lnhvc u vo

    Lu : Cho php ngi dng ti ln cc tp tin l mt nguy c bo mt ln. Ch cho phpngi dng tin cy thc hin cc tp tin ti ln.

    Create The Upload Script

    Ni dung file "upload_file.php" s c dng nh th ny

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    50/412

    Page 50 of 413

    Bng cch s dng PHP global $ _FILES mng bn c th ti ln cc tp tin t mt mytnh khch hng n my ch t xa.

    Tham s u tin l tn ca hnh thc u vo v ch s th hai c th l mt trong hai"name", "type", "size", "tmp_name" hoc "error". Nh th ny:

    $ _FILES ["File"] ["name"] - tn ca cc tp tin ti ln$ _FILES ["File"] ["type"] - loi tp tin ti ln$ _FILES ["File"] ["size"] - kch thc trong kilobytes ca cc tp tin ti ln$ _FILES ["File"] ["tmp_name"] - tn ca bn sao tm thi ca tp tin c lu tr

    trn my ch$ _FILES ["File"] ["error"] - m li t tp tin ti ln

    y l mt cch rt n gin cc tp tin ti ln. V l do bo mt, bn nn thm hn chv nhng g ngi dng c php ti ln.

    Restrictions on Upload

    Trong kch bn ny, chng ta thm mt s hn ch cc tp tin ti ln. Ngi s dngc th ti ln gif, jpeg, v png tp tin v kch thc tp tin phi di 20 kB.:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    51/412

    Page 51 of 413

    Lu : i vi IE nhn ra loi tp tin jpg phi l pjpeg, cho FireFox n phi ljpeg.

    Saving the Uploaded File

    Cc v d trn to ra mt bn sao tm thi ca cc tp tin ti ln trong th mc temp PHPtrn my ch.

    Cc file tm thi sao chp mt i ngay c khi kch bn kt thc. lu tr cc tp tin

    c ti ln chng ta cn phi sao chp n vo mt v tr khc nhau:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    52/412

    Page 52 of 413

    Cc kch bn trn kim tra nu tp tin tn ti, nu n khng c, n s sao chp cc tptin vo mt th mc gi l "upload".

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    53/412

    Page 53 of 413

    Chapter 20 : PHP CookiesMt cookie thng c s dng xc nh mt ngi s dng.

    What is a Cookie?

    Mt cookie thng c s dng xc nh mt ngi s dng. Mt cookie l mt filenh m server nhng vo trn my tnh ca ngi dng. Mi ln cng mt my tnh yucu mt trang vi mt trnh duyt, n s gi cookie. Vi PHP, bn c th to ra v ly gitr cookie.

    How to Create a Cookie?Hm setcookie() c s dng thit lp mt cookie.

    Lu : Hm setcookie() phi c TRC th .C php

    setcookie(name, value, expire, path, domain);

    V d 1

    Trong v d di y, chng ti s to ra mt cookie c tn l "user" v gn gi tr "AlexPorter" vi n. Chng ti cng xc nh rng cookie ht hn sau mt gi:

    .....

    Lu : Gi tr ca cookie c t ng urlencoded khi gi cc tp tin cookie, v t nggii m khi nhn ( ngn chn URLencoding, s dng setrawcookie () thay th).V d 2

    Bn cng c th thit lp thi gian ht hn ca cookie theo mt cch khc. N c thc d dng hn bng cch s dng giy.

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    54/412

    Page 54 of 413

    .....

    Trong v d trn c thit lp thi gian ht hn mt thng (60 giy * 60 pht * 24 gi *30 ngy).

    How to Retrieve a Cookie Value?

    PHP bin $ _COOKIE c s dng ly mt gi tr cookie.

    Trong v d di y, chng ti ly gi tr ca cookie c tn l "ngi s dng" v hinth n trn mt trang:

    Trong v d sau, chng ti s dng isset() chc nng tm ra nu mt cookie cthit lp:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    55/412

    Page 55 of 413

    How to Delete a Cookie?Khi xa mt cookie, bn nn m bo rng ngy ht hn l trong qu kh.

    V d xa Cookie:

    What if a Browser Does NOT Support Cookies?

    Nu cc chng trnh khuyn mi p dng vi cc trnh duyt khng h tr cookies, bns phi s dng cc phng php khc vt qua thng tin t trang ny sang trang khctrong ng dng ca bn. Mt phng php l truyn d liu thng qua cc hnh thc(hnh thc v u vo ngi s dng c m t trc trong hng dn ny).

    Mu di y qua cc u vo ngi s dng "welcome.php" khi ngi dng nhp vont "Submit":

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    56/412

    Page 56 of 413

    Name:

    Age:

    Cc gi tr trong tp tin "welcome.php" nh th ny:

    Welcome .
    You are years old.

    Chapter 21 : PHP SessionsMt bin PHP sessions c s dng lu tr thng tin v, hoc thay i ci t chomt phin ngi dng. Bin Session gi thng tin v ngi s dng duy nht, v c sncho tt c cc trang trong mt ng dng.

    PHP Session Variables

    Khi bn ang lm vic vi mt ng dng, bn m n, lm mt s thay i v sau bnng n. y l ging nh mt phin ( sessions ). Cc my tnh bit bn l ai. N bit khibn bt u ng dng v khi bn kt thc. Tuy nhin, trn internet c mt vn : ccmy ch web khng bit bn l ai v nhng g bn lm v a ch HTTP khng duy trtrng thi.

    Mt PHP session gii quyt vn ny bng cch cho php bn lu tr thng tin ngi

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    57/412

    Page 57 of 413

    dng trn my ch s dng sau ny (v d nh tn ngi dng, cc mt hng mua sm,vv). Tuy nhin, thng tin phin l tm thi v s b xa sau khi ngi dng ri khi trangweb. Nu bn cn lu tr vnh vin, bn c th mun lu tr cc d liu trong mt cs d liu.

    Phin lm vic bng cch to ra mt id duy nht (UID) cho mi khch truy cp v ccbin ca hng da trn UID ny. UID l hoc c lu tr trong mt cookie hoc ltuyn truyn trong URL.

    Starting a PHP Session

    Trc khi bn c th lu tr thng tin ngi s dng trong phin ( sessions ) PHP cabn, trc tin bn phi bt u sessions.

    Lu : Cc chc nng session_start() phi xut hin TRC th :

    on m trn s ng k phin lm vic ca ngi dng vi my ch, cho php bn bt u thng tin ngi dng tit kim, v gn mt UID cho session ca ngi dng .

    Storing a Session Variable

    Cch chnh xc lu tr v ly bin phin giao dch l s dng bin $ _SESSION PHP:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    58/412

    Page 58 of 413

    Kt qu cho ra l

    Pageviews=1

    Trong v d di y, chng ti to ra mt truy cp trang page-views n gin. Ccisset() chc nng kim tra nu bin "views" c thit lp. Nu "views" c thitlp, chng ta c th tng truy cp ca chng ti. Nu "views" khng tn ti, chng ti tora mt bin "views", v t n vo 1:

    Destroying a Session

    Nu bn mun xa mt s d liu phin ( sessions ), bn c th s dng unset() hocsession_destroy() .

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    59/412

    Page 59 of 413

    Unset() chc nng c s dng gii phng bin phin giao dch quy nh:

    Bn cng c th ph hy hon ton cc session bng cch gi session_destroy() chcnng:

    Lu : session_destroy () s thit lp li phin lm vic ca bn v bn s mt tt c cc

    d liu sessions ca bn c lu tr.

    Chapter 22 : Sending EmailsPHP cho php bn gi e-mail trc tip t mt on script.

    The PHP mail() FunctionPHP mail() chc nng c s dng gi email t bn trong mt kch bn ( Mt Script ).

    C php

    mail(to,subject,message,headers,parameters)

    Parameter Description

    to Required. Specifies the receiver / receivers of the email

    subject Required. Specifies the subject of the email. Note: This parametercannot contain any newline characters

    message Required. Defines the message to be sent. Each line should beseparated with a LF (\n). Lines should not exceed 70 characters

    headers Optional. Specifies additional headers, like From, Cc, and Bcc. Theadditional headers should be separated with a CRLF (\r\n)

    parameters Optional. Specifies an additional parameter to the sendmail program

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    60/412

    Page 60 of 413

    Lu : i vi cc chc nng mail s c sn, PHP i hi mt h thng email c cit v hot ng. Chng trnh c s dng c xc nh bi cc thit lp cu hnhtrong file php.ini.

    PHP Simple E-Mail

    Cch n gin nht gi mt email vi PHP l gi mt email vn bn.

    Trong v d di y, chng ti ln u tin khai bo cc bin ($to, $subject, $message,$from, $headers), sau chng ti s dng cc bin trong hm mail() gi e-mail:

    PHP Mail Form

    With PHP, you can create a feedback-form on your website. The example below sends atext message to a specified e-mail address:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    61/412

    Page 61 of 413

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    62/412

    Page 62 of 413

    chng k tip ca hng dn ny, bn c th c thm chi tit v l hng trong kch bne-mail, v lm th no xc nhn u vo ngi s dng lm cho n an ton hn.

    Chapter 23 : Secure E-mailsC mt im yu trong kch bn e-mail PHP trong chng trc.

    PHP E-mail Injections

    u tin, hy nhn vo cc m PHP t chng trc:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    63/412

    Page 63 of 413

    Vn vi code trn l ngi s dng tri php c th chn d liu vo cc tiu mail thng qua hnh thc u vo.

    iu g s xy ra nu ngi dng thm cc vn bn sau y n lnh vc nhp a chemail trong cc hnh thc?

    Nh th ny ?

    [email protected]%0ACc:[email protected]%0ABcc:[email protected],[email protected],[email protected],[email protected]%0ABTo:[email protected]

    Hm mail () t cc vn bn trn vo cc tiu th nh bnh thng, v phn u trangc thm mt Cc:, Bcc:, v: To : field. Khi ngi dng nhp vo nt submit, e-mail sc gi n tt c cc a ch trn!

    PHP Stopping E-mail Injections

    Cch tt nht ngn chn khai thc e-mail l xc nhn u vo.

    on code di y l ging nh trong chng trc, nhng by gi chng ti thmmt validator u vo kim tra cc lnh vc th in t trong cc hnh thc:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    64/412

    Page 64 of 413

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    65/412

    Page 65 of 413


    ";}

    ?>

    Trong on m trn, chng ti s dng PHP b lc xc nhn u vo:

    Cc b lc FILTER_SANITIZE_EMAIL loi b tt c cc k t bt hp php e-mailt mt chui

    Cc b lc FILTER_VALIDATE_EMAIL xc nhn gi tr nh l mt a ch e-mail

    Bn c th c thm v cc b lc trong chng Lc PHP ca chng ti..http://w3schools.com/php/php_filter.asp

    Chapter 24 : Error HandingVic x l li mc nh trong PHP rt n gin. Mt thng bo li vi tn tp tin, sdng v mt tin nhn m t cc li c gi n trnh duyt.

    PHP Error Handling

    Khi to ra cc kch bn v cc ng dng web, li x l l mt phn quan trng. Nu mca bn thiu m kim tra li, chng trnh ca bn c th trng rt khng chuyn nghipv bn c th c ri ro an ninh.

    Hng dn ny c cha mt s li ph bin nht kim tra cc phng php trong PHP.

    Chng ti s hin th cc phng php x l cc li khc nhau:- n gin "die()" bo co- Tu chnh li v gy nn li- bo co li

    Basic Error Handling: Using the die() function

    V d u tin cho thy mt kch bn n gin m mt tp tin vn bn:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    66/412

    Page 66 of 413

    Nu tp tin khng tn ti, bn c th nhn c mt li nh th ny:

    Warning: fopen(welcome.txt) [function.fopen]: failed to open stream:No such file or directory in C:\www\test.php on line 2

    trnh m ngi dng nhn c mt thng bo li nh trn, chng ti kim tra nutp tin tn ti trc khi chng ti c gng truy cp vo n:

    By gi nu cc tp tin khng tn ti, bn nhn c mt li nh th ny:

    File not found

    on m trn l hiu qu hn hn so vi m trc , bi v n s dng mt c ch x lli n gin ngn chn kch bn sau khi li.

    Tuy nhin, ch cn dng li kch bn khng phi l lun lun ng cch i. Chng tahy xem xt thay th PHP chc nng cho cc li x l.

    Creating a Custom Error Handler

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    67/412

    Page 67 of 413

    To mt li x l ty chnh l kh n gin. Chng ti ch n gin l to ra mt chcnng c bit c th c gi khi li xy ra trong PHP.

    Chc nng ny phi c kh nng x l ti thiu l hai tham s (mc li v thngbo li), nhng c th chp nhn n nm tham s (ty chn tp tin, ng s, v bi

    cnh cc li);C php

    error_function(error_level,error_message,error_file,error_line,error_context)

    Parameter Descriptionerror_level Required. Specifies the error report level for the user-defined error.

    Must be a value number. See table below for possible error reportlevels

    error_message Required. Specifies the error message for the user-defined error

    error_file Optional. Specifies the filename in which the error occurred

    error_line Optional. Specifies the line number in which the error occurrederror_context Optional. Specifies an array containing every variable, and their values,in use when the error occurred

    Error Report levels

    Nhng mc bo co li l cc loi khc nhau ca cc li ngi dng nh ngha x lli c th c s dng cho:

    Value Constant Description

    2 E_WARNING Non-fatal run-time errors. Execution of the script isnot halted

    8 E_NOTICE Run-time notices. The script found something thatmight be an error, but could also happen whenrunning a script normally

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    68/412

    Page 68 of 413

    256 E_USER_ERROR Fatal user-generated error. This is like anE_ERROR set by the programmer using the PHPfunction trigger_error()

    512 E_USER_WARNING Non-fatal user-generated warning. This is like anE_WARNING set by the programmer using the

    PHP function trigger_error()1024 E_USER_NOTICE User-generated notice. This is like an E_NOTICE

    set by the programmer using the PHP functiontrigger_error()

    4096 E_RECOVERABLE_ERROR Catchable fatal error. This is like an E_ERROR butcan be caught by a user defined handle (see alsoset_error_handler())

    8191 E_ALL All errors and warnings (E_STRICT became a partof E_ALL in PHP 5.4)

    By gi cho php to ra mt chc nng x l cc li:

    function customError($errno, $errstr){echo "Error: [$errno] $errstr
    ";echo "Ending Script";die();}

    on m trn l mt li chc nng x l n gin. Khi n c kch hot, n c mc li v mt thng bo li. Sau kt qu u ra mc li v thng ip v kt thckch bn.

    By gi chng ta to ra mt chc nng x l li, chng ti cn phi quyt nh khi ncn phi c kch hot.

    Set Error HandlerX l li mc nh cho PHP l c xy dng trong x l li. Chng ti s thc hin ccchc nng trn x l li mc nh trong sut thi gian ca kch bn.

    N c th thay i x l li p dng ch cho mt s li, nh vy kch bn c th x lcc li khc nhau theo nhng cch khc nhau. Tuy nhin, trong v d ny, chng ta s sdng x l li ty chnh ca chng ti cho tt c cc li:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    69/412

    Page 69 of 413

    set_error_handler("customError");

    T khi chng ti mun c chc nng ty chnh ca chng ti x l tt c cc li,set_error_handler() ch cn mt tham s, mt tham s th hai c th c thm vo xc nh mt mc li.

    V dKim tra x l li bng cch c gng bin u ra khng tn ti:

    u ra ca cc m trn nn c mt ci g nh th ny:

    Error: [8] Undefined variable: test

    Trigger an Error

    Trong mt kch bn m ngi s dng c th nhp d liu n rt hu ch kch hot ccli khi mt u vo bt hp php xy ra. Trong PHP, iu ny c thc hin bi ccchc nng trigger_error().V d

    Trong v d ny, mt li xy ra nu bin "test" ln hn "1":

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    70/412

    Page 70 of 413

    u ra ca cc m trn nn c mt ci g nh th ny:

    Notice: Value must be 1 or belowin C:\webfolder\test.php on line 6

    Mt li c th c kch hot bt c ni no bn mun trong mt kch bn, v bng cchthm vo mt tham s th hai, bn c th xc nh mc li c kch hot.

    Loi li c th xy ra:

    E_USER_ERROR - Fatal thi gian chy li do ngi dng to ra. Li m khng thc phc hi t. Thc thi kch bn phi dng li

    E_USER_WARNING - Khng gy h cnh bo ngi dng to ra thi gian chy.Thc thi kch bn khng dng li

    E_USER_NOTICE - Default. Ngi s dng to thng bo thi gian chy. Cc kchbn tm thy mt ci g c th l mt li, nhng cng c th xy ra khi chy mt kch

    bn bnh thngV d

    Trong v d ny E_USER_WARNING xy ra nu bin "test" ln hn "1". NuE_USER_WARNING xy ra, chng ta s s dng ty chnh x l li ca chng ti vkt thc kch bn:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    71/412

    Page 71 of 413

    u ra ca cc m trn nn c mt ci g nh th ny:

    Error: [512] Value must be 1 or belowEnding Script

    By gi chng ta hc c cch to ra cc li ca chng ta v lm th no kch

    hot chng, cho php c mt ci nhn li ng nhp.

    Error Logging

    Theo mc nh, PHP s gi mt bn ghi li h thng ng nhp ca my ch hoc mttp tin, ty thuc vo cch cu hnh error_log c thit lp trong file php.ini. Bng cchs dng cc error_log() chc nng bn c th gi cc bn ghi li vo mt tp tin c chnh hoc mt im n t xa.

    Gi thng bo li cho chnh mnh bng e-mail c th l mt cch tt nhn c thngbo li c th.

    Send an Error Message by E-Mail

    Trong v d di y, chng ti s gi mt e-mail vi mt thng bo li v kt thc kchbn, nu mt li c th xy ra:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    72/412

    Page 72 of 413

    u ra ca cc m trn nn c mt ci g nh th ny:

    Error: [512] Value must be 1 or belowWebmaster has been notified

    V cc th nhn c t cc m trn trng nh th ny:

    Error: [512] Value must be 1 or below

    iu ny khng nn c s dng vi tt c cc li. Cc li thng xuyn nn c ngnhp trn my ch bng cch s dng h thng mc nh khai thc g PHP.

    Chapter 25 : Exception HandingTrng hp ngoi l ( Exception ) c s dng thay i dng chy bnh thng camt kch bn nu mt li c xc nh xy ra.

    What is an Exception

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    73/412

    Page 73 of 413

    Vi PHP 5, n mt i tng mi theo nh hng cch i ph vi cc li.

    X l ngoi l c s dng thay i dng chy bnh thng ca vic thc thi m numt li c ch nh (c bit) iu kin xy ra. Tnh trng ny c gi l mt ngoi l.

    y l nhng g thng xy ra khi mt ngoi l c kch hot:- M hin ti ca nh nc c lu- Vic thc thi m s chuyn sang mt chc nng c xc nh trc (ty chnh) x l

    ngoi l- Ty theo tnh hnh, x l sau c th tip tc thc hin t trng thi m lu, chm

    dt thc hin kch bn hoc tip tc kch bn t mt v tr khc nhau trong cc m

    Chng ti s hin th cc phng php x l cc li khc nhau:

    -S dng c bn ca ngoi l

    -To mt x l ngoi l tychnh nhiu trng hp ngoi l

    -Li nm mt ngoi l-Thit lp mt x l ngoi l u

    Lu : Trng hp ngoi l ch nn c s dng vi iu kin li, v khng nn cs dng chuyn n mt ni khc trong cc m ti mt thi im xc nh.

    Basic Use of Exceptions

    Khi mt ngoi l c nm ra, cc m sau n s khng c thc hin, v PHP s cgng tm thy nhng "catch" ph hp vi khi.

    Nu mt ngoi l khng b bt, mt li nghim trng s c pht hnh vi mt thngbo "uncaught ngoi l".

    Cho php th nm mt ngoi l m khng nh bt n:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    74/412

    Page 74 of 413

    on m trn s nhn c mt li nh th ny:

    Fatal error: Uncaught exception 'Exception'with message 'Value must be 1 or below' in C:\webfolder\test.php:6Stack trace: #0 C:\webfolder\test.php(12):checkNum(28) #1 {main} thrown in C:\webfolder\test.php on line 6

    Try, throw and catch

    trnh li ny t v d trn, chng ta cn to ra cc m thch hp x l mttrng hp ngoi l.

    Thch hp ngoi l m nn bao gm:

    1.C gng - Mt chc nng bng cch s dng mt ngoi l phi trong mt khi"th". Nu trng hp ngoi l khng kch hot, m s tip tc nh bnh thng. Tuynhin, nu trng hp ngoi l kch hot, mt ngoi l l "nm"

    2.Throw - y l cch bn kch hot mt ngoi l. Mi "nm" phi c t nht mt"catch"

    3.Catch - Mt khi "bt" ly mt ngoi l v to ra mt i tng c cha cc thng

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    75/412

    Page 75 of 413

    tin ngoi l

    on m trn s nhn c mt li nh th ny:

    Message: Value must be 1 or below

    Example explained:

    on m trn nm mt ngoi l v bt n:

    1.Cc checkNum() chc nng c to ra. N kim tra nu mt s l s ln hn 1. Nu

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    76/412

    Page 76 of 413

    c, mt ngoi l c nm2.Cc checkNum() chc nng c gi trong mt khi "th"3.Ngoi tr trong phm vi chc nng checkNum () c nm4.Block "bt" retrives cc trng hp ngoi l v to ra mt i tng ($e) c cha cc

    thng tin ngoi l

    5.Cc thng bo li t trng hp ngoi l c lp li bng cch gi $e->getMessage() t i tng ngoi l

    Tuy nhin, mt trong nhng cch c c xung quanh "nm mi phi c mt nm bt"nguyn tc l thit lp mt mc ngoi l x l hng u x l cc li phiuthng qua.

    Creating a Custom Exception Class

    To mt x l ngoi l ty chnh l kh n gin. Chng ti ch n gin l to ra mt

    lp hc c bit vi chc nng c th c gi khi mt ngoi l xy ra trong PHP. Cclp hc phi l mt phn m rng ca lp ngoi l.

    Cc lp ngoi l ty chnh c tha hng ti sn t lp ngoi l ca PHP v bn c ththm cc chc nng ty chnh cho n.

    Cho php to ra mt lp ngoi l:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    77/412

    Page 77 of 413

    {//throw exception if email is not

    validthrow new

    customException($email);

    }}

    catch (customException $e){//display custom messageecho $e->errorMessage();}

    ?>Cc lp hc mi l mt bn sao ca lp ngoi l c vi mt s b sung chc nngErrorMessage(). V n l mt bn sao ca lp c, v n c tha hng cc thuc tnh

    v phng php t lp c, chng ta c th s dng cc phng thc lp ngoi l nhgetline() v getFile() v getMessage().

    Example explained:

    on m trn nm mt ngoi l v bt n vi mt lp ngoi l ty chnh:

    1.Lp customException() c to ra nh l mt phn m rng ca lp ngoi l c.Bng cch ny, n c tha hng tt c cc phng php v cc thuc tnh t lp

    ngoi l c2.Chc nng ErrorMessage() c to ra. Hm ny tr v mt thng bo li nu mt

    a ch e-mail khng hp l3.Bin $email c thit lp mt chui khng phi l mt a ch e-mail hp l4."Th" khi c thc hin v ngoi l c nm t a ch e-mail khng hp l5.Khi "catch" bt nhng trng hp ngoi l v hin th cc thng bo li

    Multiple Exceptions

    N c th cho mt kch bn s dng nhiu trng hp ngoi l kim tra nhiu iukin.

    C th s dng mt s nu .. khc khi, mt chuyn i, hoc nhiu trng hp ngoi llm t. Nhng trng hp ngoi l ny c th s dng cc lp hc ngoi l khc nhau vtr li thng bo li khc nhau:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    78/412

    Page 78 of 413

    Example explained:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    79/412

    Page 79 of 413

    on m trn kim tra hai iu kin v nm mt ngoi l nu c cc iu kin khngc p ng:

    1. Lp customException () c to ra nh l mt phn m rng ca lp ngoi l c.Bng cch ny, n c tha hng tt c cc phng php v cc thuc tnh t lp

    ngoi l c2. Chc nng ErrorMessage () c to ra. Hm ny tr v mt thng bo li nu mta ch e-mail khng hp l

    3. Bin $ email c thit lp mt chui l mt a ch e-mail hp l, nhng ccha chui "v d"

    4. "Th" khi c thc hin v mt ngoi l c nm vo iu kin u tin5. iu kin th hai gy ra mt ngoi l k t khi e-mail c cha chui "v d"6. Khi "catch" bt nhng trng hp ngoi l v hin th cc thng bo li chnh xc

    Nu nm ngoi l ca customException lp v khng c bt customException, ch cngoi l c s nh bt, mt ngoi l s c x l .

    Re-throwing Exceptions

    i khi, khi mt ngoi l c nm ra, bn c th mun x l n khc vi cch tiuchun. N c th nm mt ngoi l ln th hai trong vng mt khi "catch".

    Mt kch bn nn che giu li h thng t ngi dng. Li h thng c th quan trng ivi cc coder, nhng khng c ngi dng quan tm. lm cho mi vic d dng hncho ngi s dng, bn c th nm li ngoi l vi mt thng ip thn thin vi ngis dng:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    80/412

    Page 80 of 413

    Example explained:

    on m trn bi kim tra nu a ch email c cha chui "v d" trong , nu c, cctrng hp ngoi l c li nm:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    81/412

    Page 81 of 413

    1.Lp customException() c to ra nh l mt phn m rng ca lp ngoi l c.Bng cch ny, n c tha hng tt c cc phng php v cc thuc tnh t lpngoi l c

    2.Chc nng ErrorMessage() c to ra. Hm ny tr v mt thng bo li nu mt

    a ch e-mail khng hp l3.Bin $email c thit lp mt chui l mt a ch e-mail hp l, nhng ccha chui "v d"

    4."Th" khi cha mt "th" khi lm cho n c th nm ngoi l5.Ngoi l ny c kch hot k t khi e-mail c cha chui "v d"6.Khi "catch" bt ngoi l v li nm mt "customException"7.B bt "customException" v hin th mt thng bo li

    Nu trng hp ngoi l khng c nh bt trong khi hin ti ca n "th", n s tmkim mt khi catch "cp cao hn".

    Set a Top Level Exception Handler

    set_exception_handler() chc nng thit lp mt chc nng ngi dng nh ngha xl tt c cc trng hp ngoi l uncaught.

    u ra ca cc m trn nn c mt ci g nh th ny:

    Exception: Uncaught Exception occurred

    Trong on m trn khng c block "catch". Thay vo , x l ngoi l cp cao nhtkch hot. Chc nng ny nn c s dng bt ngoi l uncaught.

    Quy tc cho trng hp ngoi l

    M c th c bao bc trong mt khi th, gip bt ngoi l tim nngMi khi try hoc "nm" phi c t nht mt khi catch tng ngNhiu khi catch c th c s dng bt cc lp hc khc nhau ca cc trng hp

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    82/412

    Page 82 of 413

    ngoi lTrng hp ngoi l c th c nm (hoc ti nm) trong mt khi catch trong mt

    khi try

    Mt nguyn tc n gin: Nu bn nm mt ci g , bn phi nm bt n.

    Chapter 26 : PHP FilterPHP b lc c s dng xc nhn v lc d liu n t cc ngun khng an ton,ging nh u vo ngi s dng.

    What is a PHP Filter?

    Mt b lc PHP c s dng xc nhn v lc d liu n t cc ngun khng anton.

    kim tra, xc nhn v lc u vo ngi dng hoc d liu ty chnh l mt phnquan trng ca bt k ng dng web.

    Phn m rng PHP b lc c thit k lc d liu d dng hn v nhanh hn.

    Why use a Filter?

    Hu nh tt c cc ng dng web ph thuc vo u vo bn ngoi. Thng thng, iuny xut pht t mt ngi dng hoc mt ng dng khc (nh mt dch v web). Bng

    cch s dng b lc, bn c th chc chn rng ng dng ca bn c cc loi u vochnh xc.

    Bn nn lun lun lc tt c d liu bn ngoi!

    u vo lc l mt trong nhng vn bo mt ng dng quan trng nht.

    D liu bn ngoi l g?

    -D liu u vo t biu mu-Cookies

    -Web dch v d liu-my ch cc bin-C s d liu kt qu truy vn

    Functions and Filters

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    83/412

    Page 83 of 413

    lc mt bin, s dng mt trong cc chc nng lc sau y:

    -filter_var() - B lc mt bin duy nht vi mt b lc xc nh-filter_var_array() - B lc mt s bin vi cc b lc ging v khc nhau-filter_input - mt bin u vo v lc n

    -filter_input_array - Nhn mt s bin u vo v lc chng vi cc b lc ging vkhc nhau

    Trong v d di y, chng ti xc nhn mt s nguyn bng cch s dng chc nngfilter_var():

    Chapter 27 : PHP MySQLC s d liu MySQL min ph l rt thng c s dng vi PHP.

    To mt kt ni n mt c s d liu MySQL

    Trc khi bn c th truy cp d liu trong mt c s d liu, bn phi to ra mt kt ni nc s d liu.

    Trong PHP, iu ny c thc hin vi cc chc nng mysql_connect ().

    C phpmysql_connect(servername,username,password);

    Thng s M t

    servername Ty chn. Ch nh my ch kt ni vi. Gi tr mc nh l "localhost: 3306"

    Tn truy nhp Ty chn. Ch nh tn ngi dng ng nhp vi. Gi tr mc nh l tn ca ngs hu qu trnh my ch

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    84/412

    Page 84 of 413

    mt khu Ty chn. Ch nh mt khu ng nhp. Mc nh l ""

    Lu : C thm nhiu thng s c sn, nhng nhng ngi c lit k trn l quan trngnht. y ca chng ti PHP MySQL tham kho bit thm chi tit.

    V d

    Trong v d sau chng ti lu tr cc kt ni trong mt bin ($ con) cho s dng sau nytrong kch bn. "Cht" mt phn s c thc hin nu kt ni khng thnh cng:

    Kt thc mt kt ni

    Kt ni s c t ng ng khi kch bn kt thc. ng kt ni trc khi s dngmysql_close () chc nng:

    Mt c s d liu cha mt hoc nhiu bng.

    To mt c s d liuCu lnh CREATE DATABASE c s dng to ra mt c s d liu trong MySQL.

    C phpCREATE DATABASE database_name

    tm hiu thm v SQL, vui lng truy cp ca chng ti hng dn SQL .

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    85/412

    Page 85 of 413

    c c PHP thc hin cc tuyn b trn, chng ta phi s dng hm mysql_query(). Chc nng ny c s dng gi mt truy vn hoc lnh kt ni MySQL.

    V d

    V d sau y to ra mt c s d liu gi l "my_db":

    To mt bng

    Cu lnh CREATE TABLE c s dng to ra mt bng trong MySQL.

    C phpCREATE TABLE table_name(column_name1 data_type,column_name2 data_type,column_name3 data_type,....)

    tm hiu thm v SQL, vui lng truy cp ca chng ti hng dn SQL .

    Chng ta phi thm cc tuyn b CREATE TABLE mysql_query () chc nng thc hinlnh.

    V d

    V d sau y to ra mt bng c tn l "Ngi", vi ba ct. Cc tn ct s c "FirstName","LastName" v "Age":

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    86/412

    Page 86 of 413

    Quan trng: Mt c s d liu phi c la chn trc khi mt bng c th c to ra. C

    s d liu c chn vi mysql_select_db () chc nng.

    Lu : Khi bn to ra mt lnh vc c s d liu kiu varchar, bn phi xc nh di ti aca lnh vc ny, v d nh varchar (15).

    Cc kiu d liu xc nh kiu d liu ct c th gi. i vi mt ti liu tham kho y catt c cc loi d liu c sn trong MySQL, chng ti hon thnh ti liu tham kho kiu dliu .

    Kha chnh v cc lnh vc Tng Auto

    Mi bng cn phi c mt trng tiu hc trng im.

    Mt kha chnh c s dng xc nh cc hng trong mt bng. Mi gi tr kha chnhphi l duy nht trong bng. Hn na, cc trng tiu hc trng im khng c th l v gitr v cc cng c c s d liu i hi phi c mt gi tr xc nh v tr cc bn ghi.

    V d sau y thit lp cc lnh vc PersonId nh cc lnh vc kha chnh. Cc lnh vc trngim chnh thng l mt s ID, v thng c s dng vi cc thit lp

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    87/412

    Page 87 of 413

    AUTO_INCREMENT. AUTO_INCREMENT t ng lm tng gi tr ca trng 1 mi ln mt klc mi c thm vo. m bo rng cc trng tiu hc trng im khng th null,chng ta phi thm cc thit lp NOT NULL cho lnh vc ny.

    V d$sql = "CREATE TABLE Persons

    (personID int NOT NULL AUTO_INCREMENT,PRIMARY KEY(personID),FirstName varchar(15),LastName varchar(15),Age int)";

    mysql_query($sql,$con);

    Chn d liu vo mt bng c s d liuINSERT INTO tuyn b c s dng thm cc bn ghi mi vo mt bng c s d liu.

    C php

    C th vit INSERT INTO tuyn b trong hai hnh thc.

    Cc hnh thc u tin khng xc nh cc ct d liu s c chn vo, ch c gi tr ca h:

    INSERT INTO table_name

    VALUES (value1, value2, value3,...)

    Hnh thc th hai quy nh c th c cc tn ct v cc gi tr s c chn vo:

    INSERT INTO table_name (column1, column2, column3,...)VALUES (value1, value2, value3,...)

    tm hiu thm v SQL, vui lng truy cp ca chng ti hng dn SQL .

    c c PHP thc hin bo co trn, chng ta phi s dng hm mysql_query (). Chcnng ny c s dng gi mt truy vn hoc lnh kt ni MySQL.

    V d

    Trong chng trc, chng ta to ra mt bng c tn l "Ngi", vi ba ct "FirstName","LastName" v "Age".Chng ti s s dng cng mt bng trong v d ny. V d sau y chobit thm hai k lc mi vo bng "Persons":

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    88/412

    Page 88 of 413

    {die('Could not connect: ' . mysql_error());}

    mysql_select_db("my_db", $con);

    mysql_query("INSERT INTO Persons (FirstName, LastName, Age)

    VALUES ('Peter', 'Griffin',35)");

    mysql_query("INSERT INTO Persons (FirstName, LastName, Age)VALUES ('Glenn', 'Quagmire',33)");

    mysql_close($con);?>

    Chn d liu t form vo c s d liu

    By gi chng ta s to ra mt hnh thc HTML c th c s dng thm cc h s mi bng "Ngi".

    y l hnh thc HTML:

    Firstname: Lastname: Age:

    Khi ngi dng nhp chut vo nt gi dng HTML trong v d trn, cc d liu mu cgi "insert.php".

    Cc tp tin "insert.php" kt ni vi mt c s d liu, v ly cc gi tr t hnh thc vi ccbin PHP _POST.

    Sau , mysql_query () chc nng thc hin cc INSERT INTO tuyn b, v mt k lc mi s

    c thm vo bng "Ngi".

    y l trang "insert.php":

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    89/412

    Page 89 of 413

    }

    mysql_select_db("my_db", $con);

    $sql="INSERT INTO Persons (FirstName, LastName, Age)VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

    if (!mysql_query($sql,$con)){die('Error: ' . mysql_error());}

    echo "1 record added";

    mysql_close($con);?>

    Chn d liu t mt bng c s d liu

    Cu lnh SELECT c s dng chn d liu t mt c s d liu.

    C phpSELECT column_name(s)FROM table_name

    tm hiu thm v SQL, vui lng truy cp ca chng ti hng dn SQL .

    c c PHP thc hin cc tuyn b trn, chng ta phi s dng hm mysql_query(). Chc nng ny c s dng gi mt truy vn hoc lnh kt ni MySQL.

    V d

    V d sau y chn tt c cc d liu c lu tr trong bng "Ngi" (k t * chn tt c ccd liu trong bng):

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    90/412

    Page 90 of 413

    mysql_close($con);?>

    V d trn ca hng d liu tr v bi hm mysql_query () trong bin $ kt qu.

    Tip theo, chng ti s dng mysql_fetch_array () chc nng tr li hng u tin t

    recordset nh l mt mng. Mi cuc gi n mysql_fetch_array () tr li hng k tip trongrecordset. Cc vng lp trong khi vng qua tt c cc bn ghi trong recordset. in gi tr cami hng, chng ti s dng bin $ row PHP ($ row ['FirstName'] v $ row ['LastName']).

    u ra ca cc m trn s l:

    Peter GriffinGlenn Quagmire

    Hin th cc kt qu trong mt bng HTML

    V d sau y chn cc d liu tng t nh v d trn, nhng s hin th d liu trong mtbng HTML:

    u ra ca cc m trn s l:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    91/412

    Page 91 of 413

    FirstName Lastname

    Glenn Bai ly

    Peter Tin mach ming

    Mnh WHERE

    Mnh WHERE c s dng trch xut ch nhng h s m thc hin mt tiu chun quynh.

    C phpSELECT column_name(s)FROM table_nameWHERE column_name operator value

    tm hiu thm v SQL, vui lng truy cp ca chng ti hng dn SQL .

    c c PHP thc hin cc tuyn b trn, chng ta phi s dng hm mysql_query(). Chc nng ny c s dng gi mt truy vn hoc lnh kt ni MySQL.

    V d

    V d sau y chn tt c cc hng t bng "Ngi" "FirstName = 'Peter'":

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    92/412

    Page 92 of 413

    ORDER BY loi t kha cc bn ghi trong th t tng dn theo mc nh.

    Nu bn mun sp xp cc bn ghi trong mt th t gim dn, bn c th s dng cc tkho DESC.

    C phpSELECT column_name(s)FROM table_nameORDER BY column_name(s) ASC|DESC

    tm hiu thm v SQL, vui lng truy cp ca chng ti hng dn SQL .

    V d

    V d sau y chn tt c cc d liu c lu tr trong bng "Ngi", v sp xp kt qutheo ct "Age":

    u ra ca cc m trn s l:

    Glenn Quagmire 33Peter Griffin 35

    Sp xp theo hai ct

    N cng c th t do nhiu hn mt ct. Khi t hng theo nhiu hn mt ct, ct th haich c s dng nu cc gi tr trong ct u tin l bng nhau:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    93/412

    Page 93 of 413

    SELECT column_name(s)FROM table_nameORDER BY column1, column2

    Cp nht d liu trong mt c s d liu

    Cu lnh UPDATE c s dng cp nht cc bn ghi hin c trong mt bng.

    C phpUPDATE table_nameSET column1=value, column2=value2,...WHERE some_column=some_value

    Lu : Ch mnh WHERE trong c php UPDATE. Mnh WHERE quy nh c th h shoc h s cn c cp nht. Nu bn b qua mnh WHERE, tt c h s s c cpnht!

    tm hiu thm v SQL, vui lng truy cp ca chng ti hng dn SQL .

    c c PHP thc hin cc tuyn b trn, chng ta phi s dng hm mysql_query(). Chc nng ny c s dng gi mt truy vn hoc lnh kt ni MySQL.

    V d

    Trc , trong hng dn, chng ti to ra mt bng c tn l "Ngi". y l n trng nhth no:

    FirstName LastName Tui

    Peter Tin mach ming 35

    Glenn Bai ly 33

    V d cp nht sau y mt s d liu trong bng "Persons":

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    94/412

    Page 94 of 413

    FirstName LastName Tui

    Peter Tin mach ming 36

    Glenn Bai ly 33

    Xa d liu trong c s d liu

    DELETE FROM tuyn b c s dng xa cc bn ghi t mt bng c s d liu.

    C phpDELETE FROM table_nameWHERE some_column = some_value

    Lu : Ch mnh WHERE trong c php DELETE. Mnh WHERE quy nh c th h shoc h s c cn xa. Nu bn b qua mnh WHERE, tt c h s s b xa!

    tm hiu thm v SQL, vui lng truy cp ca chng ti hng dn SQL .

    c c PHP thc hin cc tuyn b trn, chng ta phi s dng hm mysql_query(). Chc nng ny c s dng gi mt truy vn hoc lnh kt ni MySQL.

    V d

    Nhn vo bng sau "Ngi":

    FirstName LastName Tui

    Peter Tin mach ming 35

    Glenn Bai ly 33

    Cc v d sau y xa tt c cc bn ghi trong bng "Persons" LastName = 'Griffin:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    95/412

    Page 95 of 413

    FirstName LastName Tui

    Glenn Bai ly 33

    To mt kt ni ODBCVi mt kt ni ODBC, bn c th kt ni vo c s d liu no, trn bt k my tnh notrong mng ca bn, min l c mt kt ni ODBC.

    y l cch to ra mt kt ni ODBC mt c s d liu MS Access:

    1. M biu tng Administrative Tools trong Control Panel ca bn.2. Double-click vo Data Sources (ODBC) biu tng bn trong.3. Chn tab System DSN .4. Nhp vo Thm trong tab System DSN.5. Chn Microsoft Access Driver . Nhp vo Finish.6. Trong mn hnh k tip, nhp vo Chn xc nh v tr cc c s d liu.

    7. Cung cp cho cc c s d liu Data Source Name (DSN) .8. Nhp vo OK .

    Lu rng cu hnh ny c thc hin trn my tnh, ni trang web ca bn nm. Nu bnang chy Internet Information Server (IIS) trn my tnh ca ring ca bn, hng dn trn s lm vic, nhng nu trang web ca bn nm trn mt my ch t xa, bn phi cquyn truy cp vt l vo my ch , hoc yu cu my ch web ca bn n thit lpmt DSN cho bn s dng.

    Kt ni n mt ODBC

    Odbc_connect () c s dng kt ni vi mt ngun d liu ODBC. Chc nng c bnthng s: ngun d liu tn, tn ngi dng, mt khu, v con tr mt kiu ty chn.

    Odbc_exec () chc nng c s dng thc thi mt cu lnh SQL.

    V d

    V d sau y to ra mt kt ni n mt DSN gi l northwind, khng c tn ngi dng vmt khu khng. Sau to ra mt cu lnh SQL v thc hin n:

    $conn=odbc_connect('northwind','','');

    $sql="SELECT * FROM customers";$rs=odbc_exec($conn,$sql);

    Ly h s

    Chc nng odbc_fetch_row () c s dng tr li h s t tp kt qu. Chc nng ny trv true nu n c th tr li hng, nu khng sai.

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    96/412

    Page 96 of 413

    Chc nng ny c hai tham s: nh danh kt qu ODBC v hng mt s ty chn:

    odbc_fetch_row($rs)

    Ly Fields t mc k lcChc nng odbc_result () c s dng c cc lnh vc t mc k lc. Chc nng ny chai tham s: nh danh kt qu ODBC v mt s tn trng.

    Cc dng m di y tr v gi tr ca lnh vc u tin t cc h s:

    $compname=odbc_result($rs,1);

    Cc dng m di y tr v gi tr ca mt lnh vc c gi l "CompanyName":

    $compname=odbc_result($rs,"CompanyName");

    ng mt kt ni ODBC

    Chc nng odbc_close () c s dng ng mt kt ni ODBC.

    odbc_close($conn);

    V d ODBCV d sau y cho thy lm th no ln u tin to ra mt kt ni c s d liu, sau thit lp mt kt qu, v sau hin th cc d liu trong mt bng HTML.

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    97/412

    Page 97 of 413

    $conname=odbc_result($rs,"ContactName");echo "$compname";echo "$conname";}

    odbc_close($conn);echo "";?>

    Chapter 28 : PHP XML ExpatParser

    Phn tch c php nc ngoi c xy dng trong lm cho n c th x lcc ti liu XML trong PHP.

    XML l g?

    XML c s dng m t d liu v tp trung vo d liu l g. Mt tp tin XML m t cutrc ca d liu.

    Trong XML, khng c th c nh ngha trc. Bn phi xc nh cc th ring ca mnh.

    Nu bn mun tm hiu thm v XML, vui lng truy cp ca chng ti hng dn XML .

    Ngi nc ngoi l g?

    c v cp nht - to ra v thao tc mt ti liu XML, bn s cn mt phn tch c php XML.

    C hai loi c bn ca phn tch c php XML:

    Da trn cy phn tch c php: phn tch c php ny bin i mt ti liu XML vo

    mt cu trc cy. N phn tch ton b ti liu, v cung cp truy cp n cc yu tcy. v d nh Document Object Model (DOM)

    Phn tch c php da trn s kin: Xem mt ti liu XML nh l mt lot cc skin. Khi mt s kin c th xy ra, n gi mt chc nng x l n

    Cc phn tch c php nc ngoi l mt b phn tch da trn s kin.

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    98/412

    Page 98 of 413

    Da trn s kin phn tch c php tp trung vo ni dung ca cc ti liu XML, cu trc cachng. Bi v iu ny, phn tch c php da trn s kin c th truy cp d liu nhanh hnso vi cc phn tch c php da trn cy.

    Nhn vo cc phn XML sau y:

    Jani

    Mt phn tch c php da trn s kin bo co XML trn l mt lot cc ba s kin:

    Yu t: t Bt u CDATA phn gi tr: Jani ng yu t: t

    V d XML trn cha tt c hnh thnh XML. Tuy nhin, v d ny l khng hp l XML, vkhng c nh ngha kiu ti liu (DTD) lin kt vi n.

    Tuy nhin, iu ny lm cho khng c s khc bit khi s dng cc phn tch c php nc

    ngoi. Ngi nc ngoi l mt phn tch c php khng kim duyt, v b qua bt k ccDTD.

    L mt s kin, khng kim duyt phn tch c php XML, Ngi nc ngoi l nhanh chngv nh, v mt trn u hon ho cho cc ng dng web PHP.

    Lu : cc ti liu XML phi c hnh thnh hoc nc ngoi s to ra mt li.

    Ci t

    Cc chc nng phn tch c php XML Expat l mt phn ca li PHP. Khng c ci t cnthit s dng cc chc nng ny.

    Mt file XML

    Cc tp tin XML di y s c s dng trong v d ca chng ti:

    ToveJaniReminderDon't forget me this weekend!

    Khi to phn tch c php XML

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    99/412

    Page 99 of 413

    Chng ti mun khi to phn tch c php XML trong PHP, xc nh mt s x l cho ccs kin khc nhau XML, v sau phn tch cc tp tin XML.

    V d

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    100/412

    Page 100 of 413

    xml_error_string(xml_get_error_code($parser)),xml_get_current_line_number($parser)));}

    //Free the XML parserxml_parser_free($parser);?>

    u ra ca cc m trn s l:

    -- Note --To: ToveFrom: JaniHeading: ReminderMessage: Don't forget me this weekend!

    Lm th no n hot ng:

    1. Khi to phn tch c php XML vi xml_parser_create () chc nng

    2. To cc chc nng s dng vi cc x l s kin khc nhau3. Thm xml_set_element_handler () chc nng xc nh c chc nng s c thchin khi phn tch c php gp cc th m v ng

    4. Thm xml_set_character_data_handler () chc nng xc nh cc chc nng sthc hin khi phn tch c php gp d liu k t

    5. Phn tch cc tp tin "test.xml" vi xml_parse () chc nng6. Trong trng hp c li, thm xml_error_string () chc nng chuyn i mt li

    XML vi mt m t vn bn7. Gi xml_parser_free () chc nng gii phng b nh c cp pht bng

    xml_parser_create () chc nng

    Thm nc ngoi PHP Parser bit thm thng tin v cc chc nng nc ngoi PHP, hy truy cp ca chng ti thamkho PHP Parser XML.

    Vic xy dng trong DOM phn tch c php lm cho n c th x l cc tiliu XML trong PHP.

    DOM l g?W3C DOM cung cp mt b tiu chun ca cc i tng cho ti liu HTML v XML, v mtgiao din tiu chun cho vic truy cp v thao tc chng. W3C DOM c chia thnh cc phnkhc nhau (Core, XML, HTML) v cc mc khc nhau (DOM Level 1/2 / 3): * Core DOM -nh ngha mt tp hp cc i tng cho bt k ti liu c cu trc * XML DOM - nh nghamt b tiu chun ca cc i tng cho cc ti liu XML * HTML DOM - nh ngha mt btiu chun ca cc i tng cho cc ti liu HTML Nu bn mun tm hiu thm v DOM XML,vui lng truy cp ca chng ti hng dn XML DOM .

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    101/412

    Page 101 of 413

    XML Parsing

    c v cp nht - to ra v thao tc mt ti liu XML, bn s cn mt phn tch c php XML.

    C hai loi c bn ca phn tch c php XML:

    Da trn cy phn tch c php: phn tch c php ny bin i mt ti liu XML vo

    mt cu trc cy. N phn tch ton b ti liu, v cung cp truy cp n cc yu tcy

    Phn tch c php da trn s kin: Xem mt ti liu XML nh l mt lot cc skin. Khi mt s kin c th xy ra, n gi mt chc nng x l n

    Cc phn tch c php DOM l mt phn tch c php da trn cy.

    Nhn vo phn ti liu XML sau:

    Jani

    XML DOM XML nhn thy trn l mt cu trc cy:

    Level 1: XML Document Level 2: Root yu t: Level 3: Tiu yu t: "Jani"

    Ci t

    DOM XML chc nng phn tch c php l mt phn ca li PHP. Khng c ci t cn thit s dng cc chc nng ny.

    Mt file XML

    Cc tp tin XML di y s c s dng trong v d ca chng ti:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    102/412

    Page 102 of 413

    ToveJaniReminderDon't forget me this weekend!

    Ti v u ra XML

    Chng ti mun khi to phn tch c php XML, ti xml, v u ra n:

    V d

    u ra ca cc m trn s l:

    Tove Jani Reminder Don't forget me this weekend!

    Nu bn chn "Xem m ngun" trong ca s trnh duyt, bn s thy m HTML sau:

    Tove

    JaniReminderDon't forget me this weekend!

    V d trn to ra mt DOMDocument i tng v ti XML t "note.xml" vo n.

    Sau , saveXML () chc nng t cc ti liu ni b XML thnh mt chui, v vy chng ti cth sn xut n.

    Looping thng qua XMLChng ti mun khi to phn tch c php XML, np XML, v vng lp thng qua tt c ccyu t ca phn t :

    V d

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    103/412

    Page 103 of 413

    $xmlDoc->load("note.xml");

    $x = $xmlDoc->documentElement;foreach ($x->childNodes AS $item){print $item->nodeName . " = " . $item->nodeValue . "
    ";}

    ?>

    u ra ca cc m trn s l:

    #text =to = Tove#text =from = Jani#text =heading = Reminder#text =body = Don't forget me this weekend!#text =

    Trong v d trn, bn thy rng c cc nt vn bn trng gia mi phn t.

    Khi XML to ra, n thng c mu trng khng gian gia cc nt. XML DOM phn tch c phpx l cc yu t ny l ngi bnh thng, v nu bn khng nhn thc ca h, i khi h gyra vn .

    Nu bn mun tm hiu thm v XML DOM, vui lng truy cp ca chng ti hng dn XMLDOM .

    SimpleXML l g?

    SimpleXML l mi trong PHP 5. l mt cch d dng nhn c cc thuc tnh ca mtnguyn t v vn bn, nu bn bit b tr cc ti liu XML.

    So vi DOM hoc phn tch c php nc ngoi, SimpleXML ch mt mt vi dng m cd liu vn bn t mt phn t.

    SimpleXML chuyn i cc ti liu XML vo mt i tng, nh th ny:

    Elements - chuyn i cc thuc tnh duy nht ca cc i tngSimpleXMLElement. Khi c nhiu hn mt phn t mt mc , h ang t bntrong mt mng

    Thuc tnh - truy cp bng cch s dng mng kt hp, ni m ch mc tng ng vitn thuc tnh

    Yu t d liu - d liu vn bn t cc yu t c chuyn i thnh chui. Nu mtphn t c nhiu hn mt nt vn bn, h s c sp xp theo th t chng ctm thy

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    104/412

    Page 104 of 413

    SimpleXML l nhanh chng v d dng s dng khi thc hin nhim v c bn nh:

    c cc tp tin XML Nn d liu t chui XML Chnh sa cc nt vn bn hoc cc thuc tnh

    Tuy nhin, khi i ph vi XML tin tin, nh khng gian tn, bn tt hn bng cch s dngcc phn tch c php nc ngoi hoc DOM XML.

    Ci t

    PHP 5.0, cc chc nng SimpleXML l mt phn ca li PHP. Khng c ci t cn thit sdng cc chc nng ny.

    S dng SimpleXMLDi y l mt tp tin XML:

    ToveJaniReminderDon't forget me this weekend!

    Chng ti mun sn xut cc tn phn t v d liu t tp tin XML trn.

    Di y l nhng vic cn lm:

    1. Ti cc tp tin XML2. Ly tn ca cc yu t u tin3. To mt vng lp m s kch hot trn mi nt con, s dng con ci () chc nng4. Sn xut cc tn phn t v d liu cho mi nt con

    V d

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    105/412

    Page 105 of 413

    u ra ca cc m trn s l:

    noteto: Tovefrom: Janiheading: Reminder

    body: Don't forget me this weekend!

    More PHP SimpleXML

    bit thm thng tin v cc chc nng PHP SimpleXML, hy truy cp ca chng ti thamkho PHP SimpleXML.

    Chapter 29 : Gii thiuAJAXAJAX l v vic cp nht cc b phn ca mt trang web, m khng cn ti liton b trang.

    AJAX l g?

    AJAX = Asynchronous JavaScript v XML.

    AJAX l mt k thut to ra cc trang web nhanh chng v nng ng.

    AJAX cho php cc trang web c cp nht khng ng b bng cch trao i mt lng nhd liu vi my ch ng sau hu trng. iu ny c ngha rng n c th cp nht cc phnca mt trang web, m khng cn ti li ton b trang.

    Cc trang web c in, (m khng s dng AJAX) phi ti li ton b trang nu cc ni dungcn thay i.

    V d v cc ng dng bng cch s dng AJAX: Google Maps, Gmail, Youtube, v Facebooktab.

    Lm th no AJAX Hot ng

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    106/412

    Page 106 of 413

    AJAX Da trn cc tiu chun Internet

    AJAX da trn cc tiu chun internet, v s dng mt s kt hp ca:

    i tng XMLHttpRequest (trao i d liu khng ng b vi mt my ch) JavaScript / DOM ( hin th / tng tc vi thng tin) CSS (kiu d liu)

    XML (thng c s dng nh l nh dng chuyn d liu)

    Cc ng dng AJAX l trnh duyt v nn tng c lp!

    Google Suggest

    AJAX c thc hin ph bin vo nm 2005 bi Google, vi Google Suggest.

    Google Suggest ang s dng AJAX to ra mt giao din web rt nng ng: Khi bn btu g vo hp tm kim ca Google, JavaScript mt gi cc k t vo mt my ch v my

    ch tr v mt danh sch gi .

    Bt u S dng AJAX Hm nay

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    107/412

    Page 107 of 413

    Trong hng dn PHP ca chng ti, chng ti s chng minh lm th no AJAX c th cpnht cc phn ca mt trang web, m khng cn ti li ton b trang. Cc kch bn my chs c vit bng PHP.

    Nu bn mun tm hiu thm v AJAX, hy truy cp ca chng ti hng dn AJAX .

    AJAX PHP V dV d sau y s chng minh lm th no mt trang web c th giao tip vi mt my chweb trong khi mt ngi s dng loi nhn vt trong mt lnh vc u vo:

    V d

    Start typing a name in the input field below:

    First name:

    Suggestions:

    V d Gii thch - Trang HTML

    Khi ngi dng g mt k t trong lnh vc u vo trn, chc nng "showHint ()" c thchin. Chc nng ny c kch hot bi s kin "onkeyup":

    function showHint(str){if (str.length==0){document.getElementById("txtHint").innerHTML="";return;}

    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safarixmlhttp=new XMLHttpRequest();}

    else{// code for IE6, IE5xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}

    xmlhttp.onreadystatechange=function(){if (xmlhttp.readyState==4 && xmlhttp.status==200)

    {document.getElementById("txtHint").innerHTML=xmlhttp.responseText;

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    108/412

    Page 108 of 413

    }}

    xmlhttp.open("GET","gethint.php?q="+str,true);xmlhttp.send();}

    Start typing a name in the input field below:

    First name:

    Suggestions:

    M ngun gii thch:

    Nu trng u vo l rng (str.length == 0), chc nng xa ni dung gi ch txtHint ra khichc nng.

    Nu trng u vo khng phi l trng rng, showHint () thc hin cc chc nng sau y:

    To mt i tng XMLHttpRequest To ra cc chc nng c thc hin khi p ng my ch sn sng Gi yu cu vo mt tp tin trn my ch Ch rng mt tham s (q) c thm vo URL (vi ni dung ca lnh vc u vo)

    File PHPCc trang web trn my ch c gi bi JavaScript trn l mt file PHP gi l "gethint.php".

    M ngun trong "gethint.php" kim tra mt lot cc tn, v tr v tn tng ng (s) cho trnhduyt:

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    109/412

    Page 109 of 413

    $a[]="Ophelia";$a[]="Petunia";$a[]="Amanda";$a[]="Raquel";$a[]="Cindy";$a[]="Doris";$a[]="Eve";

    $a[]="Evita";$a[]="Sunniva";$a[]="Tove";$a[]="Unni";$a[]="Violet";$a[]="Liza";$a[]="Elizabeth";$a[]="Ellen";$a[]="Wenche";$a[]="Vicky";

    //get the q parameter from URL$q=$_GET["q"];

    //lookup all hints from array if length of q>0if (strlen($q) > 0){$hint="";for($i=0; $i

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    110/412

    Page 110 of 413

    Gii thch: Nu c bt k vn bn c gi t JavaScript (strlen ($ q)> 0), sau y xy ra:

    1. Tm mt ci tn ph hp vi cc k t c gi t JavaScript2. Nu khng ph hp c tm thy, thit lp cc chui phn ng " ngh khng"3. Nu mt hoc nhiu tn ph hp c tm thy, thit lp cc chui phn ng cho tt

    c cc tn ny4. p ng c gi n gi ch "txtHint"

    AJAX C s d liu V d

    V d sau y s chng minh lm th no mt trang web c th ly thng tin t mt c s dliu vi AJAX:

    V d

    Lois Griffin

    Person info will be listed here...

    V d Gii thch - C s d liu MySQL

    Bng c s d liu chng ti s dng trong v d trn trng nh th ny:

    id FirstName LastName Tui Qu hng Vic

    1 Peter Tin mach ming 41 Quahog Ch lam ru

    2 Lois Tin mach ming 40 Newport Piano Teache

    3 Ng i an ng chay tnh Swanson 39 Quahog Cnh sat vin

    4 Glenn Bai ly 41 Quahog Phi cng

    V d Gii thch - Trang HTML

    Khi ngi dng chn mt ngi s dng trong danh sch th xung trn, mt chc nngc gi l "showUser ()" c thc thi. Chc nng ny c kch hot bi s kin"onchange":

    function showUser(str){if (str==""){document.getElementById("txtHint").innerHTML="";

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    111/412

    Page 111 of 413

    return;}

    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safarixmlhttp=new XMLHttpRequest();}

    else

    {// code for IE6, IE5xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}

    xmlhttp.onreadystatechange=function(){if (xmlhttp.readyState==4 && xmlhttp.status==200)

    {document.getElementById("txtHint").innerHTML=xmlhttp.responseText;}

    }xmlhttp.open("GET","getuser.php?q="+str,true);xmlhttp.send();}

    Select a person:Peter GriffinLois GriffinGlenn QuagmireJoseph Swanson
    Person info will be listed here.

    ShowUser () chc nng no sau y:

    Kim tra nu mt ngi c chn To mt i tng XMLHttpRequest To ra cc chc nng c thc hin khi p ng my ch sn sng Gi yu cu vo mt tp tin trn my ch Ch rng mt tham s (q) c thm vo URL (vi ni dung ca danh sch th

    xung)

    File PHP

    Cc trang web trn my ch c gi bi JavaScript trn l mt file PHP gi l"getuser.php".

  • 7/22/2019 Tng Hp Mi Th V PHP (TEST)

    112/412

    Page 112 of 413

    M ngu