tai lieu lam web hoan chinh

Upload: tranku1

Post on 10-Jul-2015

339 views

Category:

Documents


2 download

TRANSCRIPT

M u - HTML l g? vit HTML cho trang Web, bn hy start chng trnh NotePad ca Microsoft c i km theo vi Windows. l mt ASCII Editor. Vit xong, bn hy save n vo mt folder no d nh. Tn ca file ny bt buc phi c tn cng l.htm hoc .html V d: start.htm. thng thc thnh qu ca mnh, bn hy open file bng mt Browser.

Cu trc c bn Mt document HTML lun bt u bng v kt thc bng (trong bn cng c th vit nh hoc vit hoa v ). Nh c cp TAG ny m Browser bit c l HTML - document trnh duyt. Nhng ch ch dnh ring cho Browser, ngi c ch nhn c nhng g vit gia cp TAG v . Trong mt document html, ch thch c dng nh sau: Nh vy mt trang web vit bng html s c cu trc nh sau: Mt trang trng, khng c ni dung vi nn mu da cam s c vit nh sau: [Xem v d] Tt nhin, mt Homepage cn c ni dung (li vit v hnh nh): Cho bn, y l dng ch vit bng font Arial, mu en, c 2

Cn y l dng ch vit bng font Verdana, mu xanh nc bin, c 3



Dng ny li l font Bodoni, mu , c 4
face th hin cho mu ch, size th hin cho c ch (s cng ln th ch cng to) v color th hin cho mu sc ca ch, #000000 l mu en, #FF0000 l mu , #FFFF00 l mu vng. TAG
cho php bn chuyn sang dng mi. Bn c th dng nhiu
nh bn mun. C mi ln c
l mt ln xung dng. Bn c th dng mouse phi g vo nn ca mt trang web no ri chn source code tham kho xem n c vit nh th no. y l cch tt nht khm ph ra nhng iu "b mt" ca cc website p. [Xem v d] Nh vy l bn c th vit c mt trang web n gin ri . Mt trang web bao gi cng c hai phn c bn l tiu v phn thn. Tiu lun c vit to. Bn c th dng size ln hn v cng c th dng nhng TAG c nh sn cho tiu .

Tiu ca trang web
Welcome to my Homepage!
Tiu ca trang web
Tiu ca trang web
Tiu ca trang web
Tiu ca trang web

l to nht v l nh nht. Tiu lun nm trung tm ca trang, v vy ta phi dng thm mt cp TAG na : Tt c nhng g nm gia cp TAG ny u c nh hng vo pha gia ca trang. Trong v d ny, nn ca trang l xanh nc bin (#000080) ch mu trng. B sung: Trong mt HTML Document, ngoi phn body cn c phn head, c vit bi cp tag . Nu bn s dng cp tag ny, bn bt buc phi vit thm mt cp tag na, l Gia v l tn ca trang web c browser trnh by pha trn cng ca menubar. Nh vy mt trang web vi "u" s c cu trc nh sau:

Trang web dau tien cua toi Phn bn cn trnh by. V d mt bc nh hay li vn.

Trong "head" ta cn c th a rt nhiu thng tin vo cho browser, search engine... Ci s c cp n trong mt mc ring

Gii thiu v CSSCSS(cascading style sheet) cho php bn nh dng(font ch, kch thc, m u sc ....) ca cc i tng s dng css .u im ca CSS l tch ring phn nh dng ra ring khi phn ni dung do rt tin khi bn mun thay i giao din ca mt website.

S dng CSS, c 2 cch: - khai bo CSS trong file HTML

ni dung cc css ni dung ca web v s dng cc nh dng ca CSS - s dng CSS c nh ngha t mt file ring:

hoc

@import url(Path To stylesheet.css)

** tin li ca vic nh ngha mt file css sau gi v o trong trang HTML thay v nh ngha cc CSS trc tip trong HTML - code CSS nm ring trong mt file nn d qun l khng b ri - nu c nhiu file cng s dng mt file css th ch cn thay i file css th phn nh dng ca tt c cc file s dng n cng c cp nht(tin li khi update giao din cho website) - tn bandwidth hn (do file c load mt ln v c dng li cho cc ln sau)

chng 2 - c php CSSC php ca mt css: tn_css { thuc_tnh: gi_tr_ca_thuc_tnh; } v d:

body { background: #eeeeee; font-family: Verdana, Arial, serif; }Tnh k tha: nh v d trn th tan b cc tag HTML c tn body + nhng tag HTML nm trong body u c nh dng theo body, ngha l background: #eeeeee v font-family: Verdana, Arial, serif; m body l th ln nht cha ni dung ca website cho nn tt c cc tag khc u s dng cc nh dng ca body trong trng hp mun s dng mt nh dng khc trong mt i tng nh hn body gi s: p th ch vic nh ngha thm i tng p {font-family: Tahoma, serif;} lc ny tt c ni dung trong th HTML u c font l Tahoma ch khnng phi Verdana ca body Tnh kt hp: c th nh ngha nhiu css cng mt thuc tnh v d:

h1, h2, h3, h4, h5, h6 { color: #009900; font-family: Georgia, sans-serif; }=> nh ngha cung mt thuc tnh cho tt c cc tag h1,h2,h3,h4,h5,h6 thay v phi nh ngha:

h1{ color: #009900; font-family: Georgia, sans-serif; } ......................

h6 { color: #009900; font-family: Georgia, sans-serif; }Ghi ch thch(comment) cc on ch thch trong CSS c t trong du /* This is a comment */

chng 3: CSS Classes Class cho php nh dng style ca cc i tng(table,td,div,span...) Bn c th s dng lpi lp li nhiu ln trong cng mt file HTML v d:

.php { color: red; } SPAN P DIV kt qu: SPAN P DIV

chng 4: IDsCng ging nh class nhng ID ch c s dng mt ln.Nu s dng nhiu ln mt id th vn c tuy nhin n khng ng chun ca w3c v s gp rc ri khi bn dng ID trong javascript

V d: #php { color: red; } ABC kt qu: ABC ** s dng du # cho IDs v du . cho class

Chng 5: DIV DIV dng cha mt vng d liu, trong div c th cha cc tag khc table,span,div,.....

V d: #container{ width: 70%; margin: auto; padding: 20px; border: 1px solid #666; background: #ffffff; } Ni dung website ** c th s dng class v id cho div

Chng 6: SPAN SPAN rt ging vo div & span bit thm s khc nhau

V d: .italic{ font-style: italic; } Ni dung trn 1 dng

Chng 7: CSS MarginsNgai ra c th nh gi tr cho c top,left,bottom,right trn cng mt thuc tnh:

margin: 10px 5px 0px 3px;dng ny tng ng: margin-top: 10px; margin-right: 5px; margin-bottom: 0px; margin-left: 3px;

(margin: 10px 5px 0px 3px; theo th t: top,right,bottom,left - thun chiu kim ng h bt u t top) Nu ch set 1 gi tr:

margin: 10px;

th c xem nh cho c 4 thuc tnh cho nn dng n y tng ng

margin: 10px 10px 10px 10px; ** c th s dng margin: 0; thay cho margin: 0px;C th set gi tr m cho margin:

margin: -10px 5px 5px 5px; Chng 8: padding Padding dng xc nh khong cch gia n v i tng bao quanh nm trong nta c th s dng 4 thuc tnh ca padding

padding-left: length/percent; padding-right: length/percent; padding-top: length/percent; padding-bottom: length/percent; nh khong cch cho left,right,top,bottom C th s dng mt trong 2 - length (px,pt) - percent (%) xc nh gi tr cho cc thuc tnh trn. Ngo i ra c th nh gi tr cho c top,left,bottom,right trn cng mt thuc tnh:

padding: 10px 5px 0px 3px;dng n y tng ng: padding-top: 10px; padding-right: 5px; padding-bottom: 0px; padding-left: 3px; (padding: 10px 5px 0px 3px; theo th t: top,right,bottom,left - thun chiu kim ng h bt u t top) Nu ch set 1 gi tr:

padding: 10px;th c xem nh cho c 4 thuc tnh cho nn dng n y tng ng

padding: 10px 10px 10px 10px; ** c th s dng padding: 0; thay cho padding: 0px; Chng 9: CSS Text Mt s nh dng cho Text:- color: nh dng mu cho text color: values; trong values c th l : + dng tn: red,white...

+ dng hex: #000000,#ff00cc,... + dng rbg: rgb(255, 0, 0), rgb(0, 0, 0)... - Letter Spacing: khong cch gia cc k t letter-spacing: value; trong value c th l : + normal(normal) + length(1px,1pt...) v d: ABC kt qu: A B C - Text Align: canh l khi vn bn text-align: value; trong values c th l : + left + right + center + justify - Text Decoration text-decoration: value; trong value c th l 1 trong cc gi tr sau + none + underline (gch chn) + overline (gch trn u) + line through (gch xuyn ch) + blink - Text-indent: nh dng tht u dng cho dng u tin trong mt on vn text-indent: value; trong value c cc gi tr : + length : 1px,1pt.. + percentage: 5%,10%.. - Text

Transform: nh dng ch hoa ch thng text-transform: value;trong value gm cc gi tr: + none + capitalize + lowercase + lowercase v d: ThIS Text IS ALL LOWERCASE. THOUGH IT IS ALL UPPERCASE IN MY FILE. ThIS Text IS ALL LOWERCASE. THOUGH IT IS ALL UPPERCASE IN MY FILE. ThIS Text IS ALL LOWERCASE. THOUGH IT IS ALL UPPERCASE IN MY FILE. kt qu: this first letter in each word is capitalized, though it is not in my file. this text is all uppercase, though it is all lowercase in my file.

THIS TEXT IS ALL LOWERCASE. THOUGH IT IS ALL UPPERCASE IN MY FILE. - White Space: white-space: value; trong value gm cc gi tr: + normal + pre + nowrap - Word Spacing word-spacing: value; trong valu gm cc gi tr + normal + length (1,2...) v d: These words are spaced kt qu: These words are spaced

Chng 10: CSS Font Properties Font nh dng style ca text nh font,size,color,..... - font-family: nh dng font font-family: Verdana, sans-serif; : set font Verdana l font mc nh, nu khng c font Verdana trn my th s dng font sans-serif

- Font Size: nh kch thc cho text

font-size: value;trong value c th l : + xx-large + x-large + larger + large + medium + small + smaller + x-small + xx-small + length ( nh: px,pt,in,cm,mm,...) + % (percent) - Font Style: n dng in m,in nghing...

font-style: value;trong value bao gm: + normal + itailc + oblique - Font Weight: nh dng ln ca text

font-weight: value;trong value gm cc gi tr:

+ lighter + normal + 100 + 200 + 300 + 400 + 500 + 600 + 700 + 800 + 900 + bold + bolder

M u v JavaScript Vi HTML and Microsoft FrontPage bn bit cch to ra trang Web tuy nhin ch mi mc biu din thng tin ch cha phi l cc trang Web ng c kh nng p ng cc s kin t pha ngi dng. Hng Netscape a ra ngn ng script c tn l LiveScript thc hin chc nng ny.Sau ngn ng ny c i tn thnh JavaScript tn dng tnh i chng ca ngn ng lp trnh Java. Mc d c nhng im tng ng gia Java v JavaScript, nhng chng vn l hai ngn ng ring bit.JavaScript l ngn ng di dng script c th gn vi cc file HTML. N khng c bin dch m c trnh duyt din dch. Khng ging Java phi chuyn thnh cc m d bin dch, trnh duyt c JavaScript di dng m ngun. Chnh v vy bn c th d dng hc JavaScript qua v d bi v bn c th thy cch s dng JavaScript trn cc trang Web. JavaScript l ngn ng da trn i tng, c ngha l bao gm nhiu kiu i tng, v d i tng Math vi tt c cc chc nng ton hc. Tuy vy JavaScript khng l ngn ng hng i tng nh C++ hay Java do khng h tr cc lp hay tnh tha k. JavaScript c th p ng cc s kin nh ti hay loi b cc form. Kh nng ny cho php JavaScript tr thnh mt ngn ng script ng. Ging vi HTML v Java, JavaScript c thit k c lp vi h iu hnh. N c th chy trn bt k h iu hnh no c trnh duyt h tr JavaScript. Ngoi ra JavaScript ging Java kha cnh an ninh: JavaScript khng th c v vit vo file ca ngi dng. Cc trnh duyt web nh Nescape Navigator 2.0 tr i c th hin th nhng cu lnh JavaScript c nhng vo trang HTML. Khi trnh duyt yu cu mt trang, server s gi y ni dung ca trang , bao gm c HTML v cc cu lnh JavaScript qua mng ti client. Client s c trang t u n cui, hin th cc kt qu ca HTML v x l cc cu lnh JavaScript khi no chng xut hin. Cc cu lnh JavaScript c nhng trong mt trang HTML c th tr li cho cc s kin ca ngi s dng nh kch chut, nhp vo mt form v iu hng trang. V d bn c th kim tra cc gi tr thng tin m ngi s dng a vo m khng cn n bt c mt qu trnh truyn trn mng no. Trang HTML vi JavaScript c nhng s kim tra cc gi tr c a vo v s thng bo

vi ngi s dng khi gi tr a vo l khng hp l. Mc ch ca phn ny l gii thiu v ngn ng lp trnh JavaScript bn c th vit cc script vo file HTML ca mnh.

Pht biu lnh ca JavaScript Mt s pht biu ca JavaScript hay c dng n nht: break Comment continue do...while for for...in function if...else return switch this var while----------------------------------------------------------------break Ngng vng lp switch,while, for, for...in, hoc do...while. V d: function BreakTest(breakpoint) { var i = 0; while (i < 100) { if (i == breakpoint) break; i++; } return(i); } --------------------------------------------------------------------Comment Lm cho cc ghi ch s c b qua trong qu trnh bin dch v chy. C php 1: Ch thch 1 dng: // ch thch C php 2 Ch thch nhiu dng: /* ch thch */ V d: function myfunction(arg1, arg2) { /* This is a multiline comment that

can span as many lines as necessary. */ var r; // This is a single line comment. r = arg1 + arg2; // Sum the two arguments. return(r); } ---------------------------------------------------------------continue Dng lp hin ti v bt u lp mi. Dng continue trong while, do...while, for, hoc for...in V d: function skip5() { var s = "", i=0; while (i < 10) { i++; // Skip 5 if (i==5) { continue; } s += i; } return(s); } -----------------------------------------------------------do...while Thc hin 1 nhm lnh lp i lp li cho n trong khi iu kin true. C php do statement while (expression) ; Phn statement Din gii Nhm lnh c chy khi iu kin expression l ng (true).

expression L biu thc Boolean true hoc false. Nu expression= true, th lp li ln na. Nu expression = false, th vng lp dng. V d: function GetDriveList() { var fso, s, n, e, x; fso = new ActiveXObject("Scripting.FileSystemObject"); e = new Enumerator(fso.Drives); s = ""; do { x = e.item(); s = s + x.DriveLetter; s += " - "; if (x.DriveType == 3) n = x.ShareName; else if (x.IsReady) n = x.VolumeName; else

n = "[Drive not ready]"; s += n + " "; e.moveNext(); } while (!e.atEnd()); return(s); } -------------------------------------for Thc hin 1 khi lnh trong khi iu kin kim tra cn ng(=true). C php for (initialization; test; increment) statement Phn Din gii

initialization L 1 biu thc. Biu thc ny ch chy 1 ln trc khi vng lp c thc hin. test increment statement L biu thc Boolean. Nu test= true, statement c thc hin. Nu test= false, vng lp s dng. L biu thc. Biu thc increment c thc hin cui mi vng lp. on lnhc thc hin khi test = true.

V d: /* i is set to 0 at start, and is incremented by 1 at the end of each iteration. Loop terminates when i is not less than 10 before a loop iteration. */ var myarray = new Array(); for (i = 0; i < 10; i++) { myarray[i] = i; } ---------------------------------------for..in Thc hin 1 hoc nhiu cu lnh cho vi tng thuc tnh ca 1 object, hoc tng thnh phn ca 1 mng. C php for (variable in [object | array]) statement Phn variable object, array statement Din gii L 1 bin c th l thuc tnh ca object hoc thnh phn ca mng. Mt object hoc array qua mi ln lp. Nhm lnh s c thc hin vi tng thnh phn ca i tng hoc mng.

V d: function ForInDemo() { // Create some variables.

var a, key, s = ""; // Initialize object. a = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"} // Iterate the properties. for (key in a) { s += a[key] + " "; } return(s); } -----------------------------------function Khai bo 1 function mi. C php function functionname([argument1 [, argument2 [, ...argumentn]]]) { statements } Phn functionname argument1...argumentn statements Din gii Tn function Danh sch i s ca hm 1 hoc nhiu lnh JScript.

V d: function myfunction(arg1, arg2) { var r; r = arg1 * arg2; return(r); } -----------------------------------if...else Thc hin 1 nhm lnh c iu kin, phc thuc vo gi tr ca 1 biu thc. C php if (condition) statement1 [else statement2] Phn condition Din gii L biu thc boolean. Nu condition l null hoc undefined , condition c gn l false.

statement1 Nhm lnh c thc hin nu condition = true. statement2 Nhm lnh c thc hin nu condition = false. V d: if (x == 5) if (y == 6) z = 17;

else z = 20; V d: if (x == 5) { if (y == 6) z = 17; } else z = 20; V d: if (x == 5) z = 7; q = 42; else z = 19; -------------------------------------------------------------return Thot khi function hin ti v tr v 1 gi tr t function . C php return [expression]; i s expression l 1 gi tr tr v t function. Nu b qua th hm khng tr v gi tr. V d: function myfunction(arg1, arg2) { var r; r = arg1 * arg2; return(r); } -----------------------------------------------------------switch Thc hin 1 hoc nhiu lnh khi gi tr biu thc ch nh trng vi 1 nhn. C php switch (expression) { case label : statementlist case label : statementlist ... default : statementlist } Phn expression label Din gii Biu thc c tnh ton so snh vi cc nhn. L nh danh trng vi expression. Nu label === expression, th thc hin statementlist sau du : , v tip tc n khi gp lnh break( lnh break c hay khng l ty ) hoc cui lnh switch.

statementlist 1 hoc nhiu lnh. Dng default ch ra rng nu expression khng trng vi bt k label no ch nh th chy on lnh statementlist trong default. V d:

function MyObject() { ...} switch (object.constructor){ case Date: ... case Number: ... case String: ... case MyObject: ... default: ... } -------------------------------------------------------------this Tham kho n object hin ti. C php this.property V d: function Car(color, make, model) { this.color = color; this.make = make; this.model = model; } -------------------------------------var Khai bo bin. C php var variable [ = value ] [, variable2 [ = value2], ...] Phn variable, variable2 value, value2 Din gii Tn cc bin c khai bo. Cc gi tr gn cho bin.

V d: var index; var name = "Thomas Jefferson"; var answer = 42, counter, numpages = 10 ----------------------------while Thc hin on lnh lp li cho n trong khi iu kin ch nh = false. C php while (expression) statement Phn Din gii

expression Biu thc Boolean kim tra trc mi khi thc hin on lnh. Nu expression = true, vng lp c thc hin. Nu expression = false, vng lp dng. statement Nh m lnh c thc hin nu expression = true.

V d: function BreakTest(breakpoint) { var i = 0; while (i < 100) { if (i == breakpoint) break; i++; } return(i); }

Cc phng thc JavaScript(Methods) Tng hp cc phng thc s dng trong JavaScript: abs bng ton t charAt dimensions eval getDate getDay getItem getTime item join lbound match max min moveFirst moveNext isNaN replace reverse sort split substr substring test toArray toLowerCase toUpperCase ubound------------------------------------------------------------------Bng ton t:

Ton t Cng Gn gi tr AND NOT OR XOR Chia So snh bng S/s ln hn S/s ln hn hoc bng Gim 1 n v Tng 1 n v So snh khng bng S/s nh hn S/s nh hn hoc bng AND NOT OR Chia ly phn d Nhn To object mi Tr Lu : Gi tr logic tr v: ng

K hiu + = & ~ | ^ / == > >= -++ != < document.write(VBArrayTest(CreateVBArray())); -----------------------------------eval eval(codestring): thc hin lnh codestring, codestring vit dng chui V d: eval("var mydate = new Date();"); //cho kt qu mydate l 1 ngy --------------------------------------------------------------------getDate objDate.getDate(): tr v ngy trong thng. Ngy ly t ngy hin ti cah thng. V d: function DateDemo() { var d, s = "Today's date is: "; d = new Date(); s += (d.getMonth() + 1) + "/"; s += d.getDate() + "/"; s += d.getYear(); return(s); } --------------------------------------------------------------------getItem safeArray.getItem(dimension1[, dimension2, ...], dimensionn): tr v gi tr trong mng c ch nh bi th t chiu ca phn t. V d: -------------------------------------------getTime objDate.getTime(): tr v gi h thng. V d: function GetTimeTest() { var d, s, t; var MinMilli = 1000 * 60; var HrMilli = MinMilli * 60; var DyMilli = HrMilli * 24; d = new Date(); t = d.getTime(); s = "It's been " s += Math.round(t / DyMilli) + " days since 1/1/70"; return(s); } --------------------------------------------------getDay objDate.getDay(): Tr v th trong tun vi: 0 = Sunday 1 = Monday 2 = Tuesday 3 = Wednesday 4 = Thursday

5 = Friday 6 = Saturday V d: function DateDemo() { var d, day, x, s = "Today is: "; var x = new Array("Sunday", "Monday", "Tuesday"); var x = x.concat("Wednesday","Thursday", "Friday"); var x = x.concat("Saturday"); d = new Date(); day = d.getDay(); return(s += x[day]); } ----------------------------------------------------join arrayobj.join(separator): tr v 1 chui gm cc gi tr trong mng arrayobj cch nhau bng separator. V d: function JoinDemo() { var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); return(b); } ---------------------------------------------------lbound safeArray.lbound(dimension): tr v gi tr th t nh nht ca mng safeArray vi chiu dimension ch nh. V d: document.write(VBArrayTest(CreateVBArray())); ---------------------------------------------------------------------match stringObj.match(rgExp): tr v 1 mng kt qu tm kim rgExp trong stringObj. V d: function MatchDemo() { var r, re; var s = "The quick brown fox jumped over the lazy yellow dog."; re = /fox/i; r = s.match(re); return(r); } ----------------------------------------------------------max retVal = Math.max(number1, number2): tr v s ln nht trong 2 s number1 v number2 V d: function MaxNum(n1,n2) { var nmax = Math.max(n1,n2) return(nmax); } -------------------------------------------------------------------min retVal = Math.min(number1, number2): tr v s b nht trong 2 s number1 v number2 V d: function MinNum(n1,n2) { var nmin = Math.min(n1,n2) return(nmin); } --------------------------------------------------------------------moveFirst myEnum.moveFirst( ): Thit lp thnh phn hin ti trong tp hp l phn t u tin. V d: function ShowFirstAvailableDrive() { var fso, s, e, x; fso = new ActiveXObject("Scripting.FileSystemObject"); e = new Enumerator(fso.Drives); e.moveFirst(); s = ""; do { x = e.item(); if (x.IsReady) {

s = x.DriveLetter + ":"; break; } else if (e.atEnd()) { s = "No drives are available"; break; } e.moveNext(); } while (!e.atEnd()); return(s); } --------------------------------------------------------------------moveNext myEnum.moveNext( ): Di thnh phn hin ti trong tp hp sang phn t k tip. V d: function ShowDriveList() { var fso, s, n, e, x; fso = new ActiveXObject("Scripting.FileSystemObject"); e = new Enumerator(fso.Drives); s = ""; for (; !e.atEnd(); e.moveNext()) { x = e.item(); s = s + x.DriveLetter; s += " - "; if (x.DriveType == 3) n = x.ShareName; else if (x.IsReady) n = x.VolumeName; else n = "[Drive not ready]"; s += n + "
"; } return(s); } --------------------------------------------------------------replace stringObj.replace(rgExp, replaceText): Tr v 1 chui t chui stringObj sau khi thay th chui replaceText vo v tr xut hin chui rgExp. V d: function ReplaceDemo() { var r, re; var s = "The quick brown fox jumped over the lazy yellow dog."; re = /fox/i; r = s.replace(re, "pig"); return(r); } --------------------------------------------------------------reverse arrayobj.reverse( ): tr v mng o ngc th t ca mng arrayobj V d:

function ReverseDemo() { var a, l; a = new Array(0,1,2,3,4); l = a.reverse(); return(l); } -------------------------------------------------------------------sort arrayobj.sort(sortfunction): tr v 1 mng t mng arrayobj sau khi sp xp gi tr theo hm sortfunction ch nh. Nu khng ch nh hm th sp theo th t tng dn. V d: function SortDemo() { var a, l; a = new Array("X" ,"y" ,"d", "Z", "v","m","r"); l = a.sort(); return(l); } ------------------------------------------------------------split stringObj.split(str): Tr v 1 mng cha cc on k t trong chui stringObj phn cch bi chui phn cchstr ch nh. V d: function SplitDemo() { var s, ss; var s = "The quick brown fox jumped over the lazy yellow dog."; // Split at each space character. ss = s.split(" "); return(ss); } ------------------------------------------------------------------substring strVariable.substring(start, end): tr v 1 chui con ct ra t chui m strVariable bt u t k t c v tr start v kt thc k t c v tr l end. V d: function SubstringDemo() { var s, ss; var s = "The quick brown fox jumped over the lazy yellow dog."; ss = s.substring(16, 19); return(ss); } -----------------------------------------------------------------test rgexp.test(str): tr v gi tr true nu str cha trong rgexp v flase nu khng c. V d: function TestDemo(re, s) { var s1; // Test string for existence of regular expression. if (re.test(s)) s1 = " contains "; else s1 = " does not contain "; // Get text of the regular expression itself.

return(s + s1 + re.source); } -----------------------------------------------------------toArray safeArray.toArray( ): Tr v mng 1 chiu JavaScript t mng safeArray ca VBScript. V d: -------------------------------------------------toLowerCase strVariable.toLowerCase( ): Tr v chui thng t chui strVariable. V d: var strVariable = "This is a STRING object"; strVariable = strVariable.toLowerCase( ); -------------------------------------------------toUpperCase strVariable.toUpperCase( ): Tr v chui thng t chui strVariable.

V d: var strVariable = "This is a STRING object"; strVariable = strVariable.toUpperCase( ); ------------------------------------------------ubound safeArray.ubound(dimension): tr v gi tr th t ln nht ca mng safeArray vi chiu dimension ch nh. V d: document.write(VBArrayTest(CreateVBArray())); --------------------------------------------------------------item myEnum.item( ): Tr v gi tr thnh phn hin ti ca tp hp myEnum. V d: function ShowDriveList() { var fso, s, n, e, x; fso = new ActiveXObject("Scripting.FileSystemObject"); e = new Enumerator(fso.Drives);

s = ""; for (; !e.atEnd(); e.moveNext()) { x = e.item(); s = s + x.DriveLetter; s += " - "; if (x.DriveType == 3) n = x.ShareName; else if (x.IsReady) n = x.VolumeName; else n = "[Drive not ready]"; s += n + "
"; } return(s); } -------------------------------------------------------------isNaN Tr v 1 tr Boolean xc nh 1 gi tr c phi l s hay khng. C php isNaN(numvalue) Trong numvalue l gi tr cn kim tra. Hm isNaN tr v gi tr true nu numvalue khng phi l s, v false nu l s. V d: function checkinput(value) { if (isNaN(value)==true) { alert("Lm n nhp vo kiu s"); document.forms[0].o_so.focus(); return; } document.forms[0].submit(); }

A. 10 lu vng cn ghi nh1. nh du trang v quay li Khi t bn iu khin nhng g ang din ra trn website, s dng JavaScript lm xut hin hay bin mt cc i tng trn trang hay thm ch l sau khi ton b trang c hin th hon ton, bn s nhanh chng nhn ra rng, nt Quay li (Back) ca trnh duyt mt hon ton tc dng! Nt Quay li ny hot ng bng cch dng i tng history ca trnh duyt, lu li danh sch tt c cc trang c truy cp lin tip gn y nht. Nhng, nu bn khng m bt k trang mi no (vng, nh bn bit, Ajax khng cn phi refresh trang khi cn hin th thng tin), th i tng history kia r rng chng lu c cht manh mi g. y l iu bn cn lu khi vit cc ng dng Ajax. V nu nh cn thit, hy trang b cho site ca bn mt nt Back ca ring mnh. Ngi dng c th mun quay li ca s trc v bn c nhim v phi lu gi nhng thng tin di chuyn ny. Tht ng tic l ngay c tin ch nh du trang (Bookmark) cng tr nn v dng nh th! p n c th cho bi ton ny ra sao, xin c dnh cu tr li cho bn nghin cu. 2. a ra thng bo trc quan

Phn ln thi gian ca mnh, Ajax hot ng mt cch thm lng v iu ny i khi lm kh ngi dng. Nu bn ti v mt lng ln thng tin v ang ch i phn hi t pha my ch, chc chn mt hnh nh nhp nhy no y s v cng c ch vi ngi dng. Mt chic ng h ct xoay trn, v khch hng s bit rng h cn kin nhn! Bc hnh ny nn l dng nh ng (.gif), ng thi phi hp vi on m JavaScript di y, hiu ng n, hin s cng thm phn th v:

document.getElementById(image1).style.visibility= visible; document.getElementById(image1).style.visibility= hidden;R rng rng, ngi dng lun mun thy mt tn hiu no y bo cho h bit rng kt ni ang c thc hin, dng nh thanh tin trnh mu xanh vi cc gch ni cng lc cng y cng l mt tng khng ti, v chc chn h s hi lng vi site ca bn! 3. Hy ngi dng "t nhin" Cc ng dng Ajax dng nh ang t mnh thi hnh phn s bi chng c thc thi pha sau giao din ngi dng. Chng lun sn sng kt ni ti server, ngay c khi ngi dng khng h mong mun trong trng hp h v tnh g nhm thng tin chng hn. Rt d hnh dung cm gic lc ca bn ra sao, khi ngay lc bn va g mt ch no y, lp tc thng tin ny c lu li database m chng h xin php ly mt li. Vy nn, tt nht, bn hy lu mt s iu nh sau: - ng bao gi lu thng tin ngay lp tc, va tn bng thng m cha chc c s ng ca ngi dng. - Hy nh rng, ngi dng lun mun giao tip nhiu hn vi ng dng. Hy lm cc th tc xc thc d liu ngn gn hn, mt thi gian hn v cho ngi dng quyn quyt nh khi no th cn xc thc. y chnh l yu t tin quyt trong qu trnh thit k giao din ngi dng! - Cui cng, ng qun cung cp cho ngi dng cch thc sa sai thao tc (Undo). 4. Ghi nh cc trnh duyt Th gii tht rng ln v cng c rt nhiu trnh duyt! Ngi dng s dng trnh duyt h yu thch, cn bn, s ra sao khi ch kim tra ng dng ca mnh trn mt loi trnh duyt m thi? S tht t nu bn ch vit ring cho Internet Explorer, Firefox m qun mt rng, trong th gii World Wide Web, c v vn trnh duyt khc nhau, c loi thm ch cn khng h tr JavaScript, loi khc li mc nh tt chng i! Hy ghi nh iu ny v xy dng trc mt phng n d phng khng bao gi l tha c. 5. Cho ngi dng thy s thay i Sc mnh ca Ajax chnh l vic hin th d liu trn mt trang khng cn refresh bng cch dng th hay ngay c cc i tng thun HTML nh textbox chng hn. ng dng Ajax c th thay i d liu ngay sau khi chng thng bo ti server, nhng li khng thng bo vi ngi dng. Ly v d, bn c mt bng d liu v mc nh rng s c t ng cp nht ngay khi database c thay i. Ngi dng c th khng nhn thy rng thng tin khng cn nh trc, rng bn thay i thnh phn trang, v ng nhin l h ht mt nhng thng tin quan trng. Li mt ln na, vic pht ra tn hiu thay i ti ngi dng s gip bn rt nhiu. Nu bn va thay i mt s ch, n gin thi, hy lm cho n hin th khc i mt cht. on m sau dng thay i mu ch trong th thnh mu bng cch s dng linh hot thuc tnh style:

document.getElementById(targetDiv).style.color = red;Cn nu bn mun thay i mu nn, hy dng on m

document.getElementById(targetDiv).style.background-color = red;Trong , targetDiv l m k hiu ca th Div m bn gn cho. 6. Trnh lm chm trnh duyt Nhng ng dng Ajax c th rt ln v chc chn chim dng mt lng ti nguyn vt l khng nh. Tc CPU, b nh RAM c th b ngn rt nhiu nu nh bn khng quan tm x l nhng i tng phc tp trong qu trnh khi to hay tham chiu. Thng thng, mt s nh pht trin ng dng li xi Ajax cng ch bi v n ang nng!! Quan nim ny cn c lu tm hn! ng vy, Ajax c th gii quyt c nhiu vn , nhng bn khng nht thit phi dng n nu chng c l do g. ng qun rng, khng phi trnh duyt no cng h tr Ajax (hoc thm ch ch mc nh tt JavaScript). Vy nn, ng v hot ca Ajax m qun i mt tnh kh dng v tc ca chng trnh bn nh! 7. Qun l nhng thng tin ring t Vi Ajax, tht d bn gi thng tin ln server m khng cn s ch ca ngi dng. Ni theo cch khc, qu trnh lin lc gia my khch (client) v my ch (server) c din ra mt cch thm lng. Nhng s tht l, khng phi ngi dng no cng mun gi thng tin ln server ngay. Bn hy lu tm n vn nhy cm ny! Mc d thng mi in t ti Vit Nam ch mi chp chng nhng bc u tin, nhng tn tht xy ra l iu khng th trnh khi, nhng chnh v th bn cng phi nng cao tinh thn bo v ngi dng. Internet r rng y ry nhng cm by v s tht th mi trng ny khng phi l ni hon ho lu gi thng tin c tnh ring t. Nu bn nh gi m s Th tn dng hoc m Bo mt ca th m khng c s ng ca ngi dng, rt c th bn s phi i mt vi nhiu rc ri! Do , hy cho ngi dng thy c li ch ca vic hoi nghi: Lun hi trc khi gi d liu! 8. Xy dng phng n d phng S sng cn ca Ajax ph thuc vo tn hiu kt ni ti server, nhng ngi dng th khng phi lc no cng trc tuyn. Server ca bn c th b cht ng bt c lc no, v ngi dng rt c th ang lm vic vi cc thng tin c lu trong b m trnh duyt t trc ! Nu bn khng th kt ni n server khi ang online, th vic xy dng mt phng n d phng l rt cn thit (mt server d tr chng hn). Cng ng qun vic h tr cc trnh duyt khng c JavaScript na nh! 9. Hin th thng tin trn cc c my tm kim C ch tm kim ca Google da trn vic sng lc thng tin t hng t website theo thng s m ngi dng cung cp, nhng ng dng Ajax ca bn li load thng tin ln da trn s tng tc ca ngi dng m chng cn refresh li trang - iu ny khin Google s khng th nhn thy c nhng thng tin nh th. Vy nn ghi nh k rng, thng tin trn website ca bn c th c cc c my tm kim m ti, bn cn cung cp nhng d liu c t ni dung trang. Lm iu ny nh th no? Khng kh! Ch cn s dng cc th t trong phn on ca m trang, cc c my tm kim c th nh du bn d dng! V nu thc s hng th v cc th ny, mi bn gh qua a ch sau y tm hiu thm cn k: http://www.searchenginewatch.com/webmasters/meta.html 10. Cui cng, xin lu n b m trnh duyt

Mt s trnh duyt nh Internet Explorer thng lu li thng tin v cc website truy cp trong b m ring ca n (thut ng chuyn ngnh gi l cache). iu ny ng ngha vi vic, nu ai truy cp n cng mt a ch URL trong mt khong thi gian gii hn no y, thng tin hin ln cho h c th chnh l nhng thng tin va xem (c ly ra t cache). V nguyn tc, iu ny lm qu trnh ti trang nhanh chng hn, cc thng tin c coi l ging vi ln truy cp trc c th s khng cn phi ti v ln na, m ch cn ly t cache ra v hin th ln. Nhng vi cc website c ng dng Ajax th y ng l mt vn ln! Ti sao li nh vy? Rt n gin, Ajax khng c tnh nng lm mi ton b trang m ch l mt vi thnh phn trong trang! Do , nu khi bn thay i d liu trn trang m kt qu tr v ging ht nh lc trc th khng cn nghi ng g na, bn chc hn gp rc ri ri! Vy nn, hn ch vic lu thng tin m trong ng dng Ajax, bn c th t nhiu thng s header khc nhau khi gi tr d liu t server, nh on code PHP di y:

header(Cache-Control, no-cache); header(Du-lieu-header-tuy-y, no-cache); header(Expires, -1);Mc d vy, on code trn li khng c tc dng g vi Internet Explorer do vic lu thng tin trong cache ca IE li ph thuc phn ln vo a ch trnh duyt. Do , c mt cch rt hay l lun thay i a ch ng dng khi truy vn n server. lm iu ny, bn ch cn khai bo mt bin ngu nhin no y (m server chng dng lm g) vo phn cui ca a ch, chng hn nh:

var myUrl = data.php?name=bcvt + &t= + new Date().getTime();Mt tng khng ti khi a thm bin t vo a ch URL trn, vi t l thi gian hin ti tnh bng mili giy. V a ch ny chc chn cha tng c truy cp, n s khng b lu trong b m cache trc y v ng dng ca bn chc chn s chy ngon lnh!

B. Li ktNh bn thy , vic lp trnh Ajax tuy ht sc th v nhng cng n cha nhiu rc ri nho nh phi khng no? Nu khng bit cch khc phc chng hoc khng lu tm, cc ng dng ca bn rt c th s hot ng khng c nh mong mun khi thit k. Hy vng qua bi vit, cc bn hiu c phn no nhng yu im ca Ajax t tm ti hn, sng to ra nhng chiu thc khc phc cho ring mnh.

Cc hm trong VBScript Di y l tp hp cc hm thng dng ca VBScript c dng nhiu trong thit k website v cc v d mu cho mi hm... Abs Array Bng ton t CreateObject CStr Date DateValue

Eval LBound LCase Left Len LTrim Mid MsgBox Now Right RTrim Space Time TimeValue Trim UBound UCase------------------------------------------------------Abs(number): tr v tr tuyt i ca number V d: Dim MyNumber MyNumber = Abs(50.3) ' Tr v 50.3. MyNumber = Abs(-50.3) ' Tr v 50.3. -----------------Array(arglist): tr v 1 bin cha mng, arglist l danh sch gi tr ca mng cch nhau bng du phy(,). V d: Dim A A = Array(10,20,30) B = A(2) ' B = 30. -----------------CreateObject(servername.typename [, location]) Thnh phn servername typename location M t Phi c. Tn ca ng dng. Phi c. Kiu ca lp hay i tng c to. Ty chn. Tn ca network server ni i tng oc to.

V d: 'To 1 connection: Set Conn = Server.CreateObject("ADODB.Connection") ' M Excel trong i tng Application . ExcelSheet.Application.Visible = True ' a text vo u tin ca sheet. ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1" ' Lu sheet. ExcelSheet.SaveAs "C:\DOCS\TEST.XLS" ' ng Excel bng phng thc Quittrn Application object. ExcelSheet.Application.Quit ' Gii phng bin i tng. Set ExcelSheet = Nothing ---------------------------CStr(expression): chuyn biu thc s expression sang chui. V d: Dim MyDouble, MyString MyDouble = 437.324 ' MyDouble l 1 Double. MyString = CStr(MyDouble) ' MyString cha "437.324". -----------------------------------------------------Date: tr v ngy hin ti V d Dim MyDate MyDate = Date ' MyDate cha ngy hin ti ------------------------------------------------DateValue(strdate): tr v ngy t chui dng ngy V d: Dim MyDate MyDate = DateValue("September 11, 1963") ' Tr v 1 date. --------------------------Eval C php: [result = ]Eval(expression) Thnh phn result expression M t Ty chn. Bin nhn kt qu tr v khi Eval thc hin Phi c. Chui cha biu thc VBScript bt k.

V d

Sub GuessANumber Dim Guess, RndNum RndNum = Int((100) * Rnd(1) + 1) Guess = CInt(InputBox("Enter your guess:",,0)) Do If Eval("Guess = RndNum") Then MsgBox "Congratulations! You guessed it!" Exit Sub Else Guess = CInt(InputBox("Sorry! Try again.",,0)) End If Loop Until Guess = 0 End Sub -----------------------------------------------------LBound M t Tr v c chiu nh nht ca mng. C php LBound(arrayname[, dimension]) Thnh phn arrayname dimension M t Tn bin mng S th t ca chiu c m t trong mng. Dng 1 cho chiu th nht, 2 cho chiu th hai,... Nu dimension b qua, mc nhin l 1.

---------------------------------------------------------------UBound M t Tr v c chiu ln nht ca mng. C php

LBound(arrayname[, dimension]) Thnh phn arrayname dimension M t Tn bin mng S th t ca chiu c m t trong mng. Dng 1 cho chiu th nht, 2 cho chiu th hai,... Nu dimension b qua, mc nhin l 1.

V d Dim A(100,3,4) Lnh UBound(A, 1) UBound(A, 2) UBound(A, 3) Gi tr tr v 100 3 4

-------------------------------------------------------LCase(string): Chuyn chui string sang ch thng V d: Dim MyString Dim LCaseString MyString = "VBSCript" LCaseString = LCase(MyString) ' LCaseString cha "vbscript"

---------------------------------------------------------------UCase(string): Chuyn chui string sang ch hoa V d: Dim MyString Dim UCaseString MyString = "VBSCript" UCaseString = UCase(MyString) ' UCaseString cha "vbscript" ------------------------------------------------Len(String|Varname): Tr v s lng k t cha trong String hoc bin Varname V d: Dim MyString MyString = Len("VBSCRIPT") ' MyString cha 8. -----------------------------------------------LTrim(String): tr v chui String nhng ct b cc khong trng trc(bn tri) chui RTrim(String): tr v chui String nhng ct b cc khong trng sau(bn phi) chui Trim(String): tr v chui String nhng ct b cc khong trng trc v sau(tri & phi) chui Dim MyVar MyVar = LTrim(" vbscript ") ' MyVar cha "vbscript ". MyVar = RTrim(" vbscript ") ' MyVar cha " vbscript". MyVar = Trim(" vbscript ") ' MyVar cha "vbscript". -------------------------------------------------Mid(string, start[, length]): tr v chui ct ra length k t t chui string bt u t v tr start. Nu length khng ch ra th ly n cui chui. Left(String, Length): Tr v Length k t bn tri ca String Right(String, Length): Tr v Length k t bn phii ca String V d: Dim MyVar MyVar = Mid("VB Script is fun!", 4, 6) ' MyVar cha "Script". Dim MyString, LeftString MyString = "VBSCript" LeftString = Left(MyString, 3) ' LeftString cha "VBS". Dim MyString, RightString MyString = "VBSCript" RightString = Right(MyString, 6) ' LeftString cha "SCript". ---------------------------------------------------Now: Tr v ngy v gi hin ti V d Dim MyVar MyVar = Now ' MyVar cha ngy v gi hin ti. -----------------------------------------------Space(Number): Tr v 1 chui c Number k t trng V d: Dim MyString MyString = Space(10) ' Tr v 1 chui c 10 khong trng.

MyString = "Hello" & Space(10) & "World" ' Chn 10 khong trng gia 1 chui. -----------------------------------------------------Time: Tr v gi hin ti V d: Dim MyTime MyTime = Time ' Tr v gi hin ti. --------------------------------------------------------TimeValue(Time): Tr v gi t chui gi Time V d: Dim MyTime MyTime = TimeValue("4:35:17 PM") ' MyTime cha 4:35:17 PM. --------------------------------------------------------MsgBox M t Hin th hp thoi thng bo, ch ngi s dng click 1 nt v tr v 1 gi tr. C php MsgBox(prompt[, ][, title][, helpfile, context]) Thnh phn prompt M t Biu thc chui di ti a 1024 k t 1 s ch nh kiu nt. title helpfile context Chui tiu Ch nh file help Biu thc s ch nh ng cnh help.

Thit lp Cc i s thit lp:

Hng vbOKOnly vbOKCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo vbRetryCancel vbCritical vbQuestion vbExclamation vbInformation vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 vbApplicationModal vbSystemModal

Gi tr 0 1 2 3 4 5 16 32 48 64 0 256 512 768 0 4096

M t Ch hin nt OK. Hin OK v Cancel . Hin Abort, Retry, v Ignore . Hin Yes, No, v Cancel . Hin Yes v No . Hin Retry v Cancel . Hin Critical Message icon. Hin Warning Query icon. Hin Warning Message icon. Hin Information Message icon. Gi tr th 1 mc nhin. Gi tr th 2 mc nhin. Gi tr th 3 mc nhin. Gi tr th 4 mc nhin. Cc thc Application Cch thc System.

Gi tr tr v Hm MsgBox tr v cc gi tr sau:

Hng vbOK vbCancel vbAbort

Gi Nt tr 1 2 3 OK Cancel Abort

vbRetry vbIgnore vbYes vbNo

4 5 6 7

Retry Ignore Yes No

V d: Dim MyVar MyVar = MsgBox ("Hello World!", 65, "MsgBox Example") ' MyVar cha 1 hoc 2, ' ty thuc nt no c click ---------------------------------------------------------------------------------------------Bng ton t: Ton t K hiu Gn Php cng Php tr Php nhn Php chia M Chia ly phn l Ph nh V Hoc E-Or So snh bng S/s ln hn S/s ln hn hoc bng So snh khng bng S/s nh hn S/s nh hn hoc bng = + * / ^ Mod Not And Or Xor = > >= < Lu chng trnh vo file example1.php v chy th. Nu qu trnh gi email thnh cng, bn s nhn c cu thng bo "Email sent to [email protected]!", nu c li bn s nhn c cu thng bo "Error occured while sending email to

[email protected]!"Lu :

Nh thay [email protected] v [email protected] thnh a ch email ca bn trc khi chy th chng trnh! C th phi mt ti 5-10 pht email mi ti ni, v bn nh kim tra th mc Bulk email v nhiu khi email gi ti b trong mc Bulk.

Trong c php ca hm mail(), tham s additional_headers l tu chn, tc l b qua cng c. Tuy nhin, trn thc t bn nn cung cp tham s additional_headers cho hm mail() vi t nht 2 header From v Reply-to. L do th c nhiu, mt trong s cc l do phi cung cp header From v Reply-to l v nu phn a ch ngi gi (From) l rng, cc chng trnh lc email c th cho rng y l emai spam v th l email c t ng chuyn sang "Thng rc"!.

GI HTML EMAIL VI HM MAIL()Chng ta gi c email text vi hm mail(), nhng nhiu lc ta cn "trang im" mu m cho ni dung email c bt mt hn. Th vit 1 chng trnh nh gi email HTML: //ni dung file example2.php $from = '[email protected]'; $to = '[email protected]'; $subject = 'Example 2: Try a simple HTML email'; $message = 'A HTML email: bold, italic, underline.'; $header = "From: $from\r\nReply-to: $from"; if ( mail($to, $subject, $message, $header) ) { echo "Email sent to $to!"; } else { echo "Error occured while sending email to $to!"; } //end if ?> Lu chng trnh vo file example2.php v chy th. Email gi thnh cng, ti ni an ton, nhng khi m ra xem th ni dung email li nh vy: A HTML email: bold, italic, underline. Th c tc khng? Thc ra bn ch cn sa li chng trnh "1 cht xu" l u vo y ngay: //ni dung file example3.php $from = '[email protected]'; $to = '[email protected]'; $subject = 'Example 3: Send HTML email'; $message = 'A HTML email: bold, italic, underline.'; $header = "Content-type: text/html\r\nFrom: $from\r\nReply-to: $from"; if ( mail($to, $subject, $message, $header) ) { echo "Email sent to $to!"; } else { echo "Error occured while sending email to $to!";

} //end if ?> Lu chng trnh vo file example3.php v chy th. Ln ny th ni dung email nhn c nh mong mun: A HTML email: bold, italic, underline.. Nh vy bn s nhn thy rng gi HTML email cng n gin khng khc g gi text email thng thng. Ch cn thm 1 header Content-type: text/html l ni dung email s c hiu l HTML ngay. Lu : Ring phn tiu (subject) ca email vn phi l text thng thng! Bn khng th s dng m HTML trong phn tiu (subject) ca email c. V thc cht phn tiu ca email cng l 1 header t bic ch khng nm trong phn ni dung chnh ca email.

GI EMAIL VI TING VIT UNICODEGi email ting Vit Unicode cng y chang nh gi email HTML v bn thn HTML h tr Unicode ri, ta ch cn ch t charset ca email cho ng l c: //ni dung file example3.php $from = '[email protected]'; $to = '[email protected]'; $subject = 'Example 4: Send Unicode email'; $message = 'Email ting Vit Unicode: in m, in nghing, gch chn.'; $header = "Content-type: text/html; charset=utf-8\r\nFrom: $from\r\nReply-to: $from"; if ( mail($to, $subject, $message, $header) ) { echo "Email sent to $to!"; } else { echo "Error occured while sending email to $to!"; } //end if ?> Lu chng trnh vo file example4.php v chy th: email gi thnh cng, ti ni an ton v khi c th hin th...ting -rp!!! C g sai y chng? Thc ra khng c g phi lo lng c. Khi gi email ting Vit Unicode bn cn ch mt s im sau: t charset cho email. Charset ny phi nn trng vi charset ca file m ngun PHP v website ca bn. Trong v d trn, ta t charset cho email l utf-8 th bn cng phi lu file example4.php ln a vi charset l utf-8. Bn xem mc "LU FILE VI TING VIT UNICODE" bi vit Gii thiu - Cc bc chun b cn thit tm hiu thm v lu file m ngun PHP ln a vi charset utf-8. Cho d bn t charset ng ri, vn c th email khng hin th ng ting Vit khi c! V quyn hin th email nh th no l do chng trnh email client quyt nh. Nu bn c email bng Outlook chng hn, th Outlook s t ng nhn bit charset ca email v hin th ng ting Vit. Nu bn c email trn web (nh Yahoo, Hotmail...) th c th bn phi t tay chn li Encoding l utf-8 trn trnh duyt v cc web email nh

Yahoo, Hotmail s dng charset mc nh ca mnh v b qua charset c thit lp trong email. V tng t nh khi gi HTML email, bn ng nn ghi ting Vit vo phn tiu (subject) ca email! V nh ni phn trc, tiu (subject) ca email cng l 1 header t bic ch khng nm trong phn ni dung chnh ca email.

MT S LI HAY GP VI HM MAIL() Email gi khng ti niHm mail() tr v gi tr TRUE, a ch ng, ni dung ng, ni chung mi th u ng nhng email ch hoi khng thy ti! Kim tra Bulk email cng khng thy lun! Li u h? Nguyn nhn c th xy ra 3 ch:

mail server - server ca bn khng cho php account ca bn gi email, hoc giihn ch cho php gi s lng gii hn email trong 1 khong thi gian no . Bn cn hi ngi qun l server ca bn v quyn gi email vi PHP trn server. Nu vn khng phi nm ch server khng cho php bn gi email, hoc chnh bn l ngi qun l server th bn kim tra tip 1 trong 2 nguyn nhn sau: *NIX server (server chy cc h iu hnh UNIX hoc Linux) - PHP mc nh s s dng lnh sendmail c sn trn h thng gi email (vi tham s -t -i). Mc nh lnh sendmail s nm trong /usr/sbin/sendmail hoc trong 1 th mc no trong PATH ca h thng. Nu trn server ca bn lnh sendmail nm ch khc vi th mc mc nh (v d trn server ca bn sendmail nm /usr/local/secretbin/sendmail) th bn c th lm nh sau: - Tm v m file php.ini ra. - Tm chui "sendmail", bn s thy 2 dng tng t nh sau: ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ;sendmail_path = - Bn sa li 2 dng nh sau: ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). sendmail_path = /usr/local/secretbin/sendmail -t -i Nh b k t chm phy (;) u dng sendmail_path =! Lu : Cu hnh ca PHP ti y ng v gi email trn server *NIX. Tuy nhin vn c th server khng gi email c! Li lc ny l do bn thn cu hnh ca server hoc qu trnh ci t v cu hnh chng trnh sendmail b li. Cch kim tra nguyn nhn v sa li nm ngoi phm vi ca PHP, bn c th t cu hi ln din n CLB ngi s dng Linux c gip ! Windows server - Trn Windows, PHP cn phi dng 1 SMTP server gi email. Bn tm v m file php.ini ra, tm chui sendmail, gn bn s thy vi dng nh sau: [mail function] ; For Win32 only. SMTP = localhost smtp_port = 25; Cc dng trn cho ta bit PHP s dng SMTP server localhost trn port 25 gi email. Rt c th bn cha ci t v cu hnh ng 1 SMTP trn localhost PHP c th s dng v gi email. Bn hy tham kho bi vit ny ci t 1 SMTP server trn localhost v dng n gi email vi PHP.

Ni dung email b t onNu bn nhn c email nhng ni dung b t on khng y th c th do 2 nguyn nhn sau:

M HTML trong email b sai - Nu bn gi email HTML th bn nn ch kim trac php HTML ca ni dung email. Gi s bn nh gi email vi ni dung:

in m Nhng chng may bn ghi sai thnh th khi c, email s hin th b sai (c th l mt ch, t on, v.v...). C 1 dng cha 1 du chm (.) u - Khi bn gi email trn Windows dng SMTP server, nu ni dung email c 1 dng no cha 1 du chm (k t .) u dng th k t s b b qua, dng s b b qua, hoc ton b ni dung email t dng tr i s b b qua. L do l v dng cha 1 du chm u chnh l du hiu bo cho SMTP server bit kt thc ni dung ca email. khc phc, trc khi gi email, ta thay th du chm u dng bng 2 du chm: $message = str_replace("\n.", "\n..", $message);

CC HM PHP C DNG TRONG V D mail: gi email.

Lm vic vi Cookie v Session Trong qu trnh pht trin web, mt nhu cu rt thng xuyn ny ra l lm cch no truyn d liu t trang web ny sang trang web khc? Tt nhin ta c th dng form submit v truyn data t mt trang web sang trang web tip theo qua phng thc POST hoc truyn d liu qua URL theo phng thc GET. Tuy nhin, cch lm ny khng phi lc no cng kh thi. Trong nhiu trng hp, cch dng form hoc URL gy kh nhiu phin phc hoc hu nh khng th thc hin c. V d: ngi dng click ln 1 link trn trang web ca bn i sang 1 website khc, ri click ln 1 link trn website kia quay ngc v website ca bn.Rt may mn, vn c gii quyt kh d dng vi s tr gip ca COOKIE v SESSION. V cn hn th na, PHP cung cp rt sn nhiu hm v phng tin lm vic d dng v hiu qu vi COOKIE v SESSION. Trong bi vit ny chng ta s tm hiu v COOKIE, SESSION v cch s dng COOKIE, SESSION trong PHP.

COOKIE V SESSION L G? Cookie l 1 on d liu c truyn n browser t server, on d liu ny s cbrowser lu tr (trong memory hoc trn a) v s gi ngc ln li server mi khi browser ti 1 trang web t server [1]. Nhng thng tin c lu tr trong cookie hon ton ph thuc vo website trn server. Mi website c th lu tr nhng thng tin khc nhau trong cookie, v d thi im ln cui bn gh thm website, nh du bn login hay cha, v.v... Cookie c to ra bi website v gi ti browser, do vy 2 website khc nhau (cho d cng host trn 1 server) s c 2 cookie khc nhau gi ti browser. Ngoi ra, mi browser qun l v lu tr cookie theo cch ring ca mnh, cho nn 2 browser cng truy cp vo 1 website s nhn c 2 cookie khc nhau.

Session l khong thi gian ngi s dng giao tip vi 1 ng dng. Session bt u khingi s dng truy cp vo ng dng ln u tin, v kt thc khi ngi s dng thot khi ng dng [2]. Mi session s c mt nh danh (ID), 1 session khc nhau s c 2 ID khc nhau. Trong ng cnh ng dng web, website s quyt nh khi no session bt u v kt thc. Trong 1 session, website c th lu tr mt s thng tin nh nh du bn login hay cha, nhng bi vit no bn c qua, v.v...

im ging v khc nhau gia Cookie v SessionCookie v Session u c chung mc ch l lu gi data truyn t 1 trang web sang 1 trang web khc (trn cng website). Nhng phc thc lu tr v qun l data ca Cookie v Session c phn khc nhau. Cookie s c lu tr ti browser, do browser qun l v browser s t ng truyn cookie ngc ln server mi khi truy cp vo 1 trang web trn server. D liu lu tr trong Session s c ng dng qun l, trong ng cnh web, ng dng y s l website v webserver. Browser ch truyn ID ca session ln server mi khi truy cp vo website trn server.

T lin h gia Session v Cookie: Mi Session gn vi 1 nh danh (ID). ID s cto ra trn server khi session bt u v c truyn cho browser. Sau browser s truyn li ID ny ln server mi khi truy cp vo website. Nh vy ta c th thy rng s rt tin nu nh Session ID c lu tr trong Cookie v c browser t ng truyn ln server mi khi truy cp vo website.

S dng Cookie hay Session?S dng Session hoc Cookie l tu vo la chn ca Lp trnh vin, tuy nhin Session thng c a chung hn Cookie v mt s l do sau: Trong mt s trng hp Cookie khng s dng c. C th browser c thit lp khng chp nhn cookie, lc session vn s dng c bng cch truyn session ID gia cc trang web qua URL, v d: script.php?session=abc123. Lng data truyn ti gia browser v server: ch mi session ID c truyn gia browser v server, data thc s c website lu tr trn server. Bo mt: cng t thng tin c truyn ti qua li gia browser v client cng tt, v cng t thng tin c lu tr ti client cng tt.

S DNG COOKIE TRONG PHPS dng Cookie trong PHP kh n gin. t (set) cookie, bn ch cn s dng 1 lnh gn n gin: $_COOKIE[tn_cookie] = gi_tr;. V c (get) li gi tr ca cookie, bn ch cn c bin $_COOKIE[tn_cookie]. Ta hy xem v d sau: //ni dung file a.php $t = time(); $_COOKIE['abc'] = time(); ?> Gi tr ca cookie c gn gi tr echo $t; ?>. Click "b.php">vo y kim tra.

//ni dung file b.php Gi tr ca Cookie c gn trong "a.php">file a.php: echo $_COOKIE['abc']; ?>. Lu 2 on m trn vo 2 file a.php v b.php. u tin, dng browser truy cp vo file a.php bn s thy 1 mn hnh tng t nh sau: Gi tr ca cookie c gn gi tr 1177960424. Click vo y kim tra. Click vo link "vo y" truy cp qua file b.php bn s thy 1 mn hnh tng t nh sau: Gi tr ca Cookie c gn trong file a.php: 1177960424.

S DNG SESSION TRONG PHPS dng Session trong PHP cng n gin khng km :-) u tin, bn cn khi to Session bng cch gi hm session_start(), sau vic t gi tr cho session s n gin ch l lnh gn $_SESSION[tn_session] = gi_tr;, v c session, bn ch cn c gi tr ca bin $_SESSION[tn_session]. Ta hy xem v d sau: //ni dung file a.php session_start(); $t = time(); $_SESSION['username'] = 'guest'; $_SESSION['time'] = $t; ?>

Gi tr ca Session c gn: username = guest time = echo $t; ?> Click "b.php">vo y kim tra. //ni dung file b.php session_start(); ?>

Gi tr ca hin ti ca Session c gn trong "a.php">file a.php: username = echo $_SESSION['username']; ?> time = echo $_SESSION['time']; ?>

Lu 2 on m trn vo 2 file a.php v b.php. u tin, dng browser truy cp vo file a.php bn s thy 1 mn hnh tng t nh sau: Gi tr ca Session c gn: username = guest time = 1177960407 Click vo y kim tra. Click vo link "vo y" truy cp qua file b.php bn s thy 1 mn hnh tng t nh sau: Gi tr ca hin ti ca Session c gn trong file a.php: username = guest time = 1177960407

Ly session ID: trong nhiu trng hp, bn cn ly gi tr ca session ID ( m s lngsession c to chng hn), PHP cung cp cho ta hm session_id() ly gi tr hin ti ca session ID. Lu : hm session_id() phi c gi sau hm session_start(). V d: //khi to session session_start(); //ly sesion ID $id = session_id(); echo "Session ID = ".$id;

MT S LU KHI S DNG COOKIE V SESSION Cc lnh gn gi tr cho Cookie v Session phi nn c gi trc khi bt c d liu no c xut ra browser. Thm ch 1 k t trng u chng trnh (c k t trng trc Gii thiu - Cc bc chun b cn thit". Lnh session_start() phi c gi u chng trnh, trc tt c cc lnh gn hoc c session.

CC HM PHP C DNG TRONG V D session_start: khi to session. session_id: ly gi tr hin ti ca session ID.

TI LIU THAM KHO

T Webopedia Computer Dictionary - nh ngha v Cookie: http://www.webopedia.com/TERM/c/cookie.html T Webopedia Computer Dictionary - nh ngha v Session: http://www.webopedia.com/TERM/s/session.html PHP Manual: http://www.php.net/manual/en/index.php o Cookie: http://www.php.net/manual/en/features.cookies.php o Session: http://www.php.net/manual/en/ref.session.php

To Form upload file ln Server TO FORM UPLOAD FILE Form upload file cn tho mn cc iu kin sau:

method l POST enctype l multipart/form-data

M HTML ca form s ta ta nh sau: on code trn s to 1 form vi 1 nt Browse... ban chn file cn upload, v 1 nt Upload bn submit form. Form s c submit ti file process_upload.php nm cng th mc vi file cha form. Mt s browser support MAX_FILE_SIZE s kim tra dung lng file trc khi form c submit, tuy nhin khng phi browser no cng vy. Cho nn bn ng nn tin tng tuyt i vo server! v d trn, nu browser h tr, nhng file c dung lng ln hn 30000 byte s c browser thng bo li khi submit form.

X L D LIU C SUBMIT LN SERVERBy gi ta hy xem xt ti phn x l d liu c submit ln server trong file process_upload.php. PHP lu thng tin v file c upload ln server trong bin global $_FILES. Vi form v d trn, PHP s truyn cho script process_upload.php cc thng tin sau:

$_FILES['file_upload']['name']: tn file gc trn my client. Tu vo browser, tn file c th c truyn ln server dng C:\folder\filename.ext hoc ch l filename.ext. Chng trnh phi t kim tra v trch ra tn file nu cn thit. $_FILES['file_upload']['type']: kiu ca file, c lu dng MINE (V d:image/gif, audio/wav).

$_FILES['file_upload']['size']: dung lng ca file tnh theo byte.

$_FILES['file_upload']['tmp_name']: sau khi upload, server s lu file vo mtfile tm trn server, bin ny cho ta bit ng dn v tn ca file tm . Chng trnh s c file tm ny ly ni dung ca file c upload. $_FILES['file_upload']['error']: m li, chng trnh nn kim tra bin ny bo m rng qu trnh upload khng xy ra li. o UPLOAD_ERR_OK ( = 0 ): khng c li, qu trnh upload thnh cng. o UPLOAD_ERR_INI_SIZE ( = 1 ): dung lng file upload vt qu gii hn c ch nh trong file php.ini. o UPLOAD_ERR_FORM_SIZE ( = 2 ): dung lng file upload vt qu gii hn c chnh nh bi MAX_FILE_SIZE. o UPLOAD_ERR_PARTIAL ( = 3 ): file ch c upload 1 phn (c th l do li ng truyn trong qu trnh upload). o UPLOAD_ERR_NO_FILE ( = 4 ): khng c file no c upload (c th l file client khng tn ti).

Khi c ton b cc thng tin cn thit, x l file nh th no l quyn nh ca bn. Bn c th c ni dung ca file v lu vo database, hoc di chuyn file v lu vo th mc upload ca bn. Sau y l 1 v d ca file process_upload.php. u tin, kim tra xem tc v c phi l upload hay khng: if ( $_SERVER["REQUEST_METHOD"] != "POST" ) { //thng bo li khng phi l method POST //v thot exit(-1); } //end if

Tip theo kim tra xem qu trnh upload c li g khng: if ( !isset($_FILES["file_upload"]["error"] || $_FILES["file_upload"]["error"] != 0 ) { //thng bo li da vo gi tr ca $_FILES["file_upload"]["error"] //v thot exit(-1); } //end if //ta cng c th kim tra xem dung lng file c vt qu gii hn //ca chng trnh hay khng if ( $_FILES["file_upload"]["size"] > $MAX_FILE_SIZE ) { //thng bo li //v thot exit(-1); } Tch tn file t client: $temp = preg_split('/[\/\\\\]+/', $_FILES["file_upload"]["name"]); $filename = $temp[count($temp)-1]; //ta cng c th kim tra phn m rng ca file nu cn thit if ( !preg_match('/\.(gif|jpg)$/i', $filename ) {

//thng bo li file upload khng phi l dng GIF hoc JPG //v thot exit(-1); } //end if

V cui cng, lu file c upload vo ni cn thit: $upload_dir = "/home/nbthanh/public_html/uploads/"; $upload_file = $uploaddir . $filename; if ( move_uploaded_file($_FILES["file_upload"]["tmp_name"], $upload_file) ) { //file c upload v copy sang th mc lu tr thnh cng } else { //c li xy ra } //end if

CC HM PHP C DNG TRONG V D exit: dng/thot chng trnh ngay lp tc. isset: kim tra xem bin c tn ti hay khng. Trong v d ca bi vit, ta dng hm isset kim tra xem bin $_FILES["file_upload"]["error"] c tn ti hay khng. preg_split: tch mt chui thnh tng phn nh theo regular expression. Trong v d ca bi vit, ta dng hm ny tch tn file cng ng dn ra thnh tng phn nh (phn cch nhau bng k t \ hoc /, ta khng bit chc c client l Windows hay Linux nn ta tch theo trng hp tng qut). Sau khi tch, phn t cui cng s l tn file. Mt cch khc ly tn file l dng hm basename. Tuy nhin s dng hm ny s c mt s vn ny sinh, bn tham kho thm y: http://www.php.net/manual/en/function.basename.php. count: m s lng phn t trong mng. $a[count($a)-1] s truy cp ti phn t cui cng ca mng $a. preg_match: s dng regular expression tm xem chui con c xut hin trong chui m hay khng. Trong v d ca bi vit, ta dng hm ny kim tra xem tn ca ca c c kt thc bng .gif hoc .jpg hay khng. move_uploaded_file: di chuyn file c upload t client n 1 th mc khc trn server.

TI LIU THAM KHO

PHP Manual: http://www.php.net/manual/en/index.php o Regular Expression Functions (Perl-Compatible):o http://www.php.net/manual/en/ref.pcre.php Handling file uploads: http://www.php.net/manual/en/features.fileupload.php

Mt chng trnh download manager n gin C l cng khng cn gii thiu nhiu v nhu cu "giu dim" ny v hin nay c kh nhiu site s dng cch qun l download nh vy v cng c s lng cng nhiu

khng km cc site mi mun tm hiu v s dng n ;-) Tuy nhin, c l khng tha nu nh chng ta tm hiu k hn mt cht v l do s dng mt chng trnh download manager trn website giu ng dn thc s n cc file download.Qun l bng thng v "ti sn" l 2 l do chnh s dng 1 chng trnh qun l download trn website. Bn th tng tng c 1 website cho download nhc hoc ebook vi 1 mc ph nho nh, nu m link download trc tip cc file b l tm lum th th nht l "l vn", th hai l bandwidth s ht sch nhanh n ni trc khi bn kp hiu chuyn g xy ra. Mt s l do khc cng "chnh ng" khng km v d nh bn mun m s ln download file; hoc website ca bn t upload file ca mnh ln v cc file ny li nm trong database hoc c trong 1 th mc m t ngoi web khng c c. Trong nhng trng hp nh vy, s dng 1 chng trnh qun l download trn website s kh tin li. Tuy nhin, cng c vi iu cn ch trc khi bn quyt nh s dng 1 chng trnh qun l download trn website ca mnh: Tc download s chm hn rt nhiu so vi download file trc tip. Server s phi x l nhiu cng vic hn so vi khi cho php download file trc tip. Nu file c lu tr trong database, bn nn ch rng s lng kt ni ng thi vo database l c hn, trong khi vi 1 file c dung lng ln, c th phi mt ti na ting hoc hn download.

CHNG TRNH U TINGi s bn c 1 file document.zip trong cng th mc vi file download.php. Nhng ch mnh bn bit l file document.zip ny nm u, ngi khc mun download th phi truy cp vo file download.php ca bn. M ngun ca file download.php s nh sau: //file download.php $filename = "document.zip"; $fp = fopen($filename, "rb"); header("Content-type: application/octet-stream"); header("Content-length: " . filesize($filename)); fpassthru($fp); fclose($fp); ?>

a, ch c nhiu thi ? ng vy, ch c vn vn 10 dng l c c 1 chng trnhdownload manager n gin (d nhin l chng trnh ny ch cho php download c mi 1 file document.zip, ta cn phi lm vic nhiu cho chng trnh hon thin hn!). u tin, ta m file document.zip c ch nh phn (binary): $fp = fopen($filename, "rb");. Tip theo ta bo cho browser bit data tr v t server l d liu nh phn ch khng phi l vn bn HTMl nh thng thng: header("Content-type: application/octet-stream");.

ng thi ta cng bo cho browser bit dung lng ca file s c ti xung: header("Content-length: " . filesize($filename));. V cui cng l c ni dung file v echo li cho browser download: fpassthru($fp);. Lnh fpassthru($fp); tng ng vi 2 lnh: $content = fread($handle, filesize($filename)); echo $content; Nh vy chng trnh ny cng khng c g khc vi cc chng trnh PHP thng thng ngoi 2 lnh header(). Trong lnh header("Content-length: " . filesize($filename)); cng khng c g l kh hiu, lnh ny bo cho browser bit dung lng ca file chun b download (thc ra khng c lnh ny th qu trnh download vn din ra nh bnh thng). Vn mu cht nm lnh header("Content-type: application/octet-stream");. Lnh header("Content-type: application/octet-stream"); s bo cho browser bit l d liu chun b load xung l d liu nh phn. V l d liu nh phn nn browser s thc hin qu trnh download v save file thay v hin th ln browser nh l 1 trang HTML thng thng. Th chy v d trn vi ln, thay th file document.zip bng mt s file khc nhau (v d file Word, PDF, Excel...) v th trn vi browser khc nhau, bn s nhn thy c vi ch hi kh chu: Browser s mc nh lu file ln a vi tn l download.php. Bn phi i tn file li cho ng trc khi m file ra c. Trong mt s trng hp, thay v hi save file ln a, browser s m lun file (v d chy Word hoc Acrobat m lun file va c download).

gii quyt 2 vn kh chu trn cng khng c g kh khn lm, ta ch cn thm 1 lnh header() na: header('Content-disposition: attachment; filename="'.$filename.'"'); Tham s "attachment" ca header "Content-disposition" s bo cho browser bit l nn download v save file thay v open. Tham s "filename=" s bo cho browser bit tn ca file ang c download.

CI TIN CHNG TRNHCho ti by gi chng trnh ca chng ta vn cn th s, chng ta vn cn them vo chc nng na chng trnh hon thin hn. Cho php ngi dng chn file download. Hin ti chng trnh ca chng ta ch mi cho php download 1 file duy nht. Kim tra d liu nhp t ngi dng. y l mt vic lun nn lm. Chng trnh cho php ngui dng chn file download th cng cn nn kim tra k ko chnh file config, file source hoc file password ca bn b download th phin.

Cho php ngi dng chn file download: Thao tc ny c l kh n gin ivi bn. Chng trnh s nhn vo tham s file t URL (v d: download.php? file=document.zip). on code x l nh sau: $filename = isset($_GET['file'])?$_GET['file']:'';

Kim tra d liu nhp: Ta cn kim tra cc iu kin sau: File c tn ti v c php c hay khng? PHP cung cp sn cho ta 2 hm ls is_file() v is_readable() lm vic ny: if ( $filename == "" || !is_file($filename) || !is_readable($filename) ) { echo "Error: ..."; exit(-1); } on m trn s kim tra nu nh tn file l rng, hoc file khng tn ti hoc khng c c th s bo li v thot. Tn file c cha cc k t t bic hay khng? Thng cc file upload s c trong 1 th mc ring. Nh vy tn file ch c th cha cc k t a-z, 0-9, gch ngang (-), gch di (_), khong trng v du chm (.). Ta c th xem nh cc k t khc trong tn file l khng hp l. on m kim tra nh sau: if ( !preg_match('/^[a-z0-9\_\-\. ]*$/i', $filename) ) { echo "Error: ..."; exit(-1); } on m trn s kim tra nu nh trong file c cha k t l (khng phi l 0-9, a-z, gach di, gch ngang, khong trng, du chm, khong trng th s bo li) v thot chng trnh. Ngoi ra, c mt s file cu hnh t bic ca server c bt u bng du chm (v d .htaccess, .htpasswd), ta cng phi kim tra xem ksy t u tin ca tn file c phi l du chm hay khng, ni cch khc, k t u tin ca tn file phi l 1 ch ci (a-z) hoc ch s (0-9) hoc k t gch ngang hoc gch di. Lnh if trn c ci tin li nh sau: if ( !preg_match('/^[a-z0-9\_\-][a-z0-9\_\-\. ]*$/i', $filename) ) { echo "Error: ..."; exit(-1); } Gip li ta c chng trnh c ci tin nh sau:

//cc file upload c trong 1 th mc ring $upload_dir = "../upload/"; //ly tn file cn download t URL $filename = isset($_GET['file'])?$_GET['file']:''; //thc hin qu trnh kim tra if ( !preg_match('/^[a-z0-9\_\-][a-z0-9\_\-\. ]*$/i', $filename) ) || !is_file($upload_dir.$filename) || !is_readable($upload_dir.$filename) ) { echo "Loi: Ten file khong hop le hoac file khong ton tai!"; exit(-1); } //end if

//m file c vi ch nh phn (binary) $fp = fopen($upload_dir.$filename, "rb"); //gi header n cho browser header('Content-type: application/octet-stream'); header('Content-disposition: attachment; filename="'.$filename.'"'); header('Content-length: ' . filesize($upload_dir.$filename)); //c file v tr d liu v cho browser fpassthru($fp); fclose($fp); Lu rng ta khng cn kim tra tn file rng na v trn ta kim tra k t u tin ca tn file, nn nu tn file l rng th s khng c k t u tin, do vy iu kin kim tra ca hm pregg_match s b sai ri.

THC MC NH CUI CNGTi y xem nh chng trnh ca chng ta xem nh l hon chnh. Tuy nhin, c th bn s cn mt thc mc nho nh: ngoi kiu d liu application/octet-stream th cn kiu d liu no khc khng? v mc nh th PHP s dng kiu d liu g tr v cho browser? Mc nh PHP s tr v d liu kiu text/html cho browser. Mt s kiu d liu tng ng vi cc kiu file thng dng: .GIF: image/gif .JPG: image/jpeg .PNG: image/png .WAV: audio/wav .MP3: audio/mpeg3 .DOC: application/msword .PDF: application/pdf Tu vo kiu ca d liu tr v m browser c th s c nhng cch ng khc nhau. V d nu d liu tr v l file nh th browser s hin th lun, nu l file nhc th browser s gi WMP ln play, nu l file PDF th chng trnh Acrobat s c gi... Kiu application/octet-stream ch d liu nh phn (binary) chung chung. Nu bn ch mun browser download v save file th bn ch cn tr v kiu d liu application/octet-stream l . Vy th ny sinh 1 vn na: tm danh sch cc kiu d liu tng ng vi tng loi file u? Google l tr th t lc ca bn ;-) Hoc bn c th xem mc "CC TI LIU THAM KHO" cui bi vit.

VI LI NG TRC KHI KT THCSau khi c ht bi vit, chc bn cng thy rng vic vit 1 chng trnh qun l download file cho website cng khng phi l qu phc tp. Cng nh tiu ca bi vit ni "Vit mt chng trnh download manager n gin", chng trnh ca chng ta kh n gin nhng cng c cc chc nng c bn cn thit. Cc chc nng "tin download" hoc "hu download" bn c th d dng t pht trin thm tu vo nhu cu ca bn, v d nh tng bin m s ln download ca file, kim tra login trc khi cho download. Bn ch cn ch mt s im sau khi vit 1 chng trnh download manager:

cc file upload ln trong 1 th mc ring d b qun l. Tt nht l trong 1 th mc khng th truy cp trc tip c t Web m ch c th c bi chng trnh PHP ca bn. Kim tra k tn file c ngi dng nhp vo. M file c ch nh phn (binary). Bn tham kho thm cc tham s ca hm fread trong PHP. Tr v kiu d liu ca file v cc thng s cn thit khc qua lnh header(). Nu khng tht s cn thit th nn ng dn download trc tip thay v dng download manager, v nh vy s download nhanh hn v server t phi x l thm nhiu cng vic.

Chc bn thnh cng!

TI LIU THAM KHO

PHP Manual: http://www.php.net/manual/en/index.php o Lnh fpassthru: http://www.php.net/manual/en/function.fpassthru.php o Lnh fopen: http://www.php.net/manual/en/function.fopen.php o Lnh preg_match: http://www.php.net/manual/en/function.preg-match.php V Regular Expression trong PHP:http://www.php.net/manual/en/ref.pcre.php Google: t kho MIME types list o Cc kiu d liu tng ng vi cc kiu file thng dng: http://www.webmastertoolkit.com/mime-types.shtml

To nh ngu nhin. 1. u tin bn to mt file mi l random.php vi ni dung:

2. To mt file images.txt vi ni dung: Sau bn include vo trang web mun t random image.

To trang lin h bng PHP

ngi xem lin lc vi nqun tr vin ca mt website th website khng th thiu trang lin lc (Feed-back). Ti xin gii thiu bi vit ca SCTT 1. u tin bn to mt file contact.php vi ni dung:



Li nhn ca bn

3. To file send.php vi ni dung: 4. Ch : Thay i "[email protected]" file send.php bng email ca bn.

T lm b m bng PHP Khi ni n b m bn thng ngh ngay n cc dch v min ph nh ca bravenet, v.v.. tuy nhin website ca bn thm tnh chuyn nghip ti sao bn khng th lm mt b m bng php nh, sau y ti xin gii thiu vi cc bn bi vit ca bn Nguyn Anh Tun - Ngi gi: hung1910

Chp 1: Bn hy m trang web ca mnh ra (v d m bng FrontPage), tm n v tr m bnmun b m. Sau nhp chut qua phn HTML, ng thay i v tr con tr, bn b ci ng bn di" b vo (coi chng g sai nha!): Example of how your free counter will look: (differentstylesavailable here) Sponsored Lin Sau lu tp tin ny li, v i thnh *.php thay v *.htm nh lc u. Chp 2: By gi hy m NotePad ra he. G vo mt s no (tt nht l s 0), y s l gi tr cho b m ca bn khi khi to. Nh l ng c khong trng hay du enter no nghen, ri tip tc lu tp tin ny li vi tn "counter.log". Chp 3: Gi tm xong ri , by gi ti (upload) ln mng. Sau khi upload xong, bn phi dng chc nng "chmod" (tng ng vi lnh gn thuc tnh trong Windows) thay i thuc tnh tp tin counter.log thnh 777 (ngha l cho c tp tin v ghi li ln tp tin ). Vy l xong, nu ch ngi ta vo th th hi lu , bn hy truy cp vo trang web ca mnh i, mi ln bn Refresh th b m s tng ln l. C th gii thch nh sau: tp tin counter.log dng lu gi tr bin m, khi trang php chy, n s ly gi tr ny ra tng ln 1 n v, sau ghi ln tp tin counter.log, ng thi in s ra mn hnh vi cu lnh echo''. Tht n gin! Vy l t nay bn s bit c bao nhiu ngi gh thm "nh" bn ri nh! Lu : on m trn ch chy trn server no c h tr PHP thi nghen!

Chuyn trang web PHP hoc ASP thnh nh i vi mt s trang web c ch m ha, khng cho lu li ni dung th cch nhanh nht l dng tin ch Html To Image ca Guangming soft.Cch s dng: Sau khi ci t hon tt, hy khi ng chng trnh ln. Trc tin bn nhn vo mc Option tinh chnh mt cht. Chn ni lu tr kt qu xut ra ngay ti dng Out Directory. Hy ko con tr sang ht bn phi ngay dng Quality. Nu mun, bn c th chn nh khc nh xut l BMP cho cht lng nh cao hn nhiu nh dng JPG. Nhn nt Convert quay tr v mn hnh chnh. Mun chuyn bt k mt trang web no thnh mt nh bnh thng th vic u tin bn phi lm l m trnh duyt IE ln v nhp a ch cn chuyn. Sau nhn vo nt Browser s xut hin a ch y. Hoc n gin hn bng cch nhp cc a ch cn chuyn vo khung trng ca chng trnh. K n nhn nt Go Html To Image tin hnh chuyn chng sang dng nh vi khong vi giy l hon tt. Chng trnh c cung cp ti a ch: http://www.guangmingsoft.net vi dung lng khong 1.95 MB, tng thch vi mi h iu hnh Windows. Bn thng mi c gi 29,95 USD.

Upload/Xa file dng hm Copy/Unlink Hm copy nh tn ca n. Mnh s ng dng lm chc nng Upload. Khi file t form upload ln, php s lu tm thi n vo temp. Ta c form:

Khi file c upload ln: ( y v d field file trong form ca file l lieumang) - Tn trong th mc: $_FILES["lieumang"]['tmp_name'] - Tn tht ca file: $_FILES["lieumang"]['name'] - Kch thuc ca file tnh bng byte:$ _FILES["lieumang"]['size']. Th d mun file duoc upload vo th mc "upload". Th mc "upload" phi c quyn c ghi. if ($submit and $_FILES["lieumang"]['tmp_name'] ) { copy($_FILES["lieumang"]['tmp_name'],"upload.".$_FILES["lieumang"]['name']); } Ok vy l xong, mun xa file dm hm Unlink. C php : unlink("").

To nh, vi ch s dng TrueType Fonts tn thi gian LHL vit ch thch trn mi on m. Bn to file image.php c code hon chnh di y v dng th ( ) hin th nh:

To file HTML tnh vi PHP ng t code ny cui trang $html = ob_get_contents(); ob_end_clean(); WriteContent2File(str_replace(".php",'.html',__FILE__), $html, false); Bin $html l bin lu ni dung thay v xut ra trnh duyt th n s lu vo bin , gi ch vic save vo file no . y dng hm WriteContent2File hm su tm function WriteContent2File($FileName, $strContent, $append = true) { if ($append) { $FileOpenedHandle = @fopen($FileName, "a"); } else { $FileOpenedHandle = @fopen($FileName, "w"); } if (@is_writable($FileName)) { @fwrite($FileOpenedHandle, $strContent); @fclose($FileOpenedHandle); } else { die("Error: The file $FileName does not allow to write."); } } Th d file test.php s lu thm 1 file test.html So simple

Mng Phn 01========= Lp trnh Mng l mt trong nhng k nng gip coder lm vic hiu qu hn . PHP , rt c nhiu cch to mng , y LM ch show cch m LM "quen" lm thi .

-- To mng : $mang = array(); gn nhng phn t cho mng c nhiu cch . Phn t quy nh dng s v dng chui . V d : $mang["lieumang"] = "lieumang"; // t phn t lieumang ca mng mang c gi tr l lieumang $mang[0] = "lieumang"; // phn t u tin ca mang mang gi tr lieumang. V d ta c code sau y : $mang = array(); $mang["lieumang"] = "a"; $mang["haihuynh"] = "b"; ly thng s trong mng mang c 2 cch - Dng foreach foreach ($mang as $a => $b) { // $a l tn phn t // $b l gi tr phn t } - Dng while , list , each while (list($a, $b) = each($mang)) { // $a l tn phn t // $b l gi tr phn t }

Cch to tch mng bng phn cch xung hng Cch to tch mng bng phn cch xung hng , Lp trnh php th cn phi bit nhng k nng ny. K nng ny gip ta ty bin d liu , mt k thut tch mng dng explode Cch to tch mng bng phn cch xung hngTh d bn c mt m d liu nh vy $data = Lieumang Huynh Hello World; Bn mun tch mt ra thnh nhng hng ring bit th n gin

$data_arr = explode(\r\n,$data); Foreach ($data_arr as $item) { If ($item) echo $item ; } Cn chui ca bn dng m HTML , ngn cch bng
th tng t . Lp trnh php th cn phi bit nhng k nng ny.

ng dng FTP - Upload files trc tip qua trang web Trong bi vit ny bn s c lm quen vi FTP thng qua ng dng ca n... l upload files trc tip qua trang web. Bi vit trc gii thiu v FTP nn mnh khng nhc li na, trong bi vit ny bn s c lm quen vi FTP thng qua ng dng ca n... l upload files trc tip qua trang web.Hin nay c rt nhiu website h tr dch v ny, tuy nhin tm c 1 website ng tin cy th rt t. Nhng khng phi l khng c, nhng trong phm vi bi vit ny, mnh s hng dn bn lm quen vi www.net2ftp.com - nu nh bn tng nghe qua cc bi bo cntt hay cc din n tho lun v n th cng khng c g l l, v khng nhng net2ftp h tr chng ta upload files ln host m cn cho php ti m ngun ca h :) tht hay phi khng bn. Sau y l mt s tnh nng m net2ftp c th thc hin: Navigate the FTP server Upload files Download files Zip files Copy, move and delete Copy or move to a 2nd FTP server Rename and chmod View code with syntax highlighting Plain text editor HTML editors Code editor Search for words or phrases Calculate size

Lm th no upload files ln host thng qua net2ftp ?Ok, khi vo trang ch ca net2ftp th bn s thy ngay cc nhp thng tin nhy cm. V cn lu cc thng tin bt buc:

FTP server: My ch kt ni. (vd: ftp.server.com hoc 192.123.45.67)

Port: Cng cn vo, mc nh l 21. Username: Tn ngi s dng truy cp vo FTP. (vd: lyhuuloi) Password: Mt khu ca ngi s dng. (vd: 123456) Initial directory: Th mc mc nh khi vo. (vd: /httpdocs)Sau khi in y th nhp login. i vi dial-up th c hi chm khi load vo host, thng tin v FTP server s hin trn thanh tiu . Khi vo c bn s thy cc folders v files ca bn (nu c) v nhng g bn cn lm l nhn vo nt upload... hay nh du vo cc bn tri cc folders or files ri bm delete xa b ^^.

Vy lm th no s dng n trn host ca chnh mnh ?Nh ni trn net2ftp cho php bn ti cc phin bn ca h, v vy nu c s dng cng ng nn sa i bn quyn ca h nh! Nu bn mun s dng dch v ny ngay ti host ca mnh th trc ht bn vo ti trc tip phin bn 0.82 (Bn mi nht ti thi im gi bi ny) ti y. Unzip v upload tt c ln host, khng cn ci t g c... Vy l xong. Vic cn li bn c th t tm hiu...

nh gi v sc hot ng ca net2ftpNhn chung, trang ny kh hon ho, nu nh bn s dng software kt ni vo FTP server th kt ni vo FTP server thng qua web cng gim c rt nhiu chi ph v thi gian, chng hn nh nu kt ni bng software th cn phi c software (iu l tt nhin) v nu cn thit th c mt vi software bt buc phi ng k, nhng vi upload qua trang web th gn hn, ch cn vo ri nhp thng tin ri login l c ngay. Nu s dng dial-up v upload nhiu files bng software th bn s cm thy server s tr li cc yu cu m bn gi n rt chm m i khi li cn connection time out na ch! ^^. Nhng vi net2ftp bn c th zip hay gzip nhiu files li upload ln th thi gian upload ch tnh bng dung lng ca file nn m thi!

Gi email n gin Gi mail trong PHP rt d dng s dng, PHP h tr cho chng ta hm mail rt n gin v hiu qu, bi vit ny gip ta hiu r hn. HM MAIL() CA PHPSend email trong PHP rt n gin, ta ch cn dng duy nht 1 hm mail() c PHP cung cp sn l . C php ca hm mail() nh sau: bool mail(string to, string subject, string message[, string additional_headers]) Cc tham s ca hm mail() c ngha nh sau:

to - a ch ngi nhn email, l 1 string. Cc gi tr hp l ca tham s to c dng nhsau:

'[email protected]'; '[email protected], [email protected]' 'User Name '; 'User Name 1 , User Name 2 ' 'User Name 1 ;, [email protected], User Name 3 ' subject - tiu ca email, l 1 string. Tiu ca email khng c cha k t xung dng (\r hoc \n). message - ni dung email, l 1 string. Ni dung email c th do nhiu dng ghp li vi nhau, mi dng c phn cch bng k t \n. additional_headers - (tu chn) dng chn thm cc header vo email. Cc header ny khng nm trong phn ni dung ca email m dng qun l vic gi email (v d chn thm cc trng CC, BCC khi gi email). Nhiu header c th cng ghp li thnh 1 string trong additional_headers, cc header c phn cch nhau bng chui \r\n.

Hm mail() s tr v gi tr TRUE nu nh email c chp nhn gi i v FALSE trong trng hp ngc li. Lu : Hm mail() tr v gi tr TRUE khng c ngha l email s c gi n ni nhn thnh cng. Gi tr TRUE c tr v ch c ngha l email c server chp nhn gi i, cn khi no th email thc s c gi, gi c ti ni hay khng th chng trnh khng bit c (nh vy nu bn nhp sau a ch ngi nhn tham s To th s khng c cch no chng trnh bit c a ch To c ng hoc tn ti hay khng!).

MT V D GI EMAIL VI HM MAIL()Ta hy to 1 chng trnh PHP nh gi email nh sau: //ni dung file example1.php Lu chng trnh vo file example1.php v chy th. Nu qu trnh gi email thnh cng, bn s nhn c cu thng bo "Email sent to [email protected]!", nu c li bn s nhn c cu thng bo "Error occured while sending email to [email protected]!" Lu : Nh thay [email protected] v [email protected] thnh a ch email ca bn trc khi chy th chng trnh!

C th phi mt ti 5-10 pht email mi ti ni, v bn nh kim tra th mc Bulk email v nhiu khi email gi ti b trong mc Bulk.

Trong c php ca hm mail(), tham s additional_headers l tu chn, tc l b qua cng c. Tuy nhin, trn thc t bn nn cung cp tham s additional_headers cho hm mail() vi t nht 2 header From v Reply-to. L do th c nhiu, mt trong s cc l do phi cung cp header From v Reply-to l v nu phn a ch ngi gi (From) l rng, cc chng trnh lc email c th cho rng y l emai spam v th l email c t ng chuyn sang "Thng rc"!.

ng dng FTP - Upload files trc tip qua trang web Trong bi vit ny bn s c lm quen vi FTP thng qua ng dng ca n... l upload files trc tip qua trang web. Bi vit trc gii thiu v FTP nn mnh khng nhc li na, trong bi vit ny bn s c lm quen vi FTP thng qua ng dng ca n... l upload files trc tip qua trang web.Hin nay c rt nhiu website h tr dch v ny, tuy nhin tm c 1 website ng tin cy th rt t. Nhng khng phi l khng c, nhng trong phm vi bi vit ny, mnh s hng dn bn lm quen vi www.net2ftp.com - nu nh bn tng nghe qua cc bi bo cntt hay cc din n tho lun v n th cng khng c g l l, v khng nhng net2ftp h tr chng ta upload files ln host m cn cho php ti m ngun ca h :) tht hay phi khng bn. Sau y l mt s tnh nng m net2ftp c th thc hin: Navigate the FTP server Upload files Download files Zip files Copy, move and delete Copy or move to a 2nd FTP server Rename and chmod View code with syntax highlighting Plain text editor HTML editors Code editor Search for words or phrases Calculate size

Lm th no upload files ln host thng qua net2ftp ?Ok, khi vo trang ch ca net2ftp th bn s thy ngay cc nhp thng tin nhy cm. V cn lu cc thng tin bt buc:

FTP server: My ch kt ni. (vd: ftp.server.com hoc 192.123.45.67) Port: Cng cn vo, mc nh l 21.

Username: Tn ngi s dng truy cp vo FTP. (vd: lyhuuloi) Password: Mt khu ca ngi s dng. (vd: 123456) Initial directory: Th mc mc nh khi vo. (vd: /httpdocs)Sau khi in y th nhp login. i vi dial-up th c hi chm khi load vo host, thng tin v FTP server s hin trn thanh tiu . Khi vo c bn s thy cc folders v files ca bn (nu c) v nhng g bn cn lm l nhn vo nt upload... hay nh du vo cc bn tri cc folders or files ri bm delete xa b ^^.

Vy lm th no s dng n trn host ca chnh mnh ?Nh ni trn net2ftp cho php bn ti cc phin bn ca h, v vy nu c s dng cng ng nn sa i bn quyn ca h nh! Nu bn mun s dng dch v ny ngay ti host ca mnh th trc ht bn vo ti trc tip phin bn 0.82 (Bn mi nht ti thi im gi bi ny) ti y. Unzip v upload tt c ln host, khng cn ci t g c... Vy l xong. Vic cn li bn c th t tm hiu...

nh gi v sc hot ng ca net2ftpNhn chung, trang ny kh hon ho, nu nh bn s dng software kt ni vo FTP server th kt ni vo FTP server thng qua web cng gim c rt nhiu chi ph v thi gian, chng hn nh nu kt ni bng software th cn phi c software (iu l tt nhin) v nu cn thit th c mt vi software bt buc phi ng k, nhng vi upload qua trang web th gn hn, ch cn vo ri nhp thng tin ri login l c ngay. Nu s dng dial-up v upload nhiu files bng software th bn s cm thy server s tr li cc yu cu m bn gi n rt chm m i khi li cn connection time out na ch! ^^. Nhng vi net2ftp bn c th zip hay gzip nhiu files li upload ln th thi gian upload ch tnh bng dung lng ca file nn m thi!

Gi mt mail c ni dung c nh dng HTML Gi mt mail c ni dung c nh dng HTML

Bn to mt file mail.htm cha ni dung bc mail v c nh dng font ch, mu sc,kch c............ Khi on code trn thc hin mt email c ni dung ca file mail.htm c gi i v khi check mail bn nhn c mt email c nh dng font ch, mu sc, kch thc Vit trang theo di thng tin khch hng (B m s ngi Online) Bn ang vit mt trang web, bn cn theo di thng tin ca khch v mt l do no !? Hm nay ti s trnh by cho cc bn cch vit mt trang theo di thng tin ca khch, tuy nhin d dng cho bn nn trong bi vit ch ly a ch IP (Internet Protocol) v OS (Operating System), d nhin l bn c th thm bt ty t :).To file mysql.php kt ni database: (Cn thit lp li thng tin trong code di) $db_host = "localhost"; $db_name = "ndmanh.info"; $db_username = "root"; $db_password = ""; @mysql_connect("{$db_host}", "{$db_username}", "{$db_password}") or die("Khng th kt ni"); @mysql_select_db("{$db_name}") or die("Khng th chn database"); ?> To table sessions: CREATE TABLE `sessions` ( `id` VARCHAR( 255 ) NOT NULL , `ip_address` VARCHAR( 255 ) NOT NULL, `os` VARCHAR( 255 ) NOT NULL, `time` int( 11 ) NOT NULL ) TYPE = MYISAM ; To file index.php, insert thng tin ca khch: require_once("mysql.php"); // ti file mysql $ip_address = $_SERVER['REMOTE_ADDR']; // Ly a ch ip ca khch $minutes = 10; // s pht ht hn truy cp, nu khch c thi gian truy cp cui s b xa thng tin

$time_now = time(); // thi gian hin ti $time_out = $time_now - ( $minutes *60); $session_id = md5( uniqid(microtime()) ); @mysql_query("DELETE FROM sessions WHERE time < {$time_out}"); // Xa thng tin khch c thi gian qu 10 pht $sql_query = @mysql_query("SELECT * FROM sessions WHERE ip_address='{$ip_address}'"); // Ly thng tin khch if ( @mysql_num_rows( $sql_query ) To file session.php, select thng tin ca khch: require_once("mysql.php"); // ti file mysql $time_zone = 7; $sql_query = @mysql_query("SELECT * FROM sessions ORDER BY time DESC"); print "S khch truy cp trong vng 10 pht qua: "; if ( @mysql_num_rows ) { while ( $result = @mysql_fetch_array( $sql_query ) ) { $result['time'] = gmdate("d/m/Y, h:i a", $result['time'] + $time_zone*3600); print "Khch {$result['ip_address']} s dng h iu hnh {$result['os']} truy cp ln cui vo lc {$result['time']}. "; } } ?>

Phn trang trong PHP bi vit ny ch dng li mc phn tch cch phn trang , cn code c th th mi ngi c mt cch vit ring. Gi c table 1000 dng v sau khi truy vn mysql select theo mt iu kin c th (1) $sql = select * from where

th bn thu c kt qu l 101 dng v r rng k th cho hin th tt c 101 dng ra web nn bn phi fn n ra thnh nhiu trang tng tc load.Trong v d ny ti s fn mi trang 10 dng , nh vy table s gm c 11 trang trong c: - 10 trang mi trang 10 dng - 1 trang , trang ny ch c 1 dng v c nh s t 0,1...10 Cch thc hin: + tnh tng s dng ca cu select vi iu kin c th nh (1) c th dng mysql_num_rows tnh s dng ca (1) --> th d ny l 101 dng ( gi l $total) + Tnh s trang biu din s dng va tm c s trang = tng s dng/ s dng trn mi trang $nPage = floor($total/10+0.5); //10 l s dng trn mi trang -->Kt qu: dng 0...9 : trang 1 dng 10...19 : trang 2 ...... dng 90 ....99 trang 10 dng 100 : trang 11 $p l th t trang -> $p = 0,1,2,...,10 By gi khi gi trang index.php?p=0 thi nhim v l ch ly kt qu trong table tha v ch ly t dng 0 n dng 9 khi cu truy vn s l: $sql = "select * from where limit 0,10"; Tng t cho trang $p=1 (ly t dng 10 n dng 20) l $sql = "select * from

where limit 1*10,10"; .............. Tng qut : $sql = "select * from where limit $p,10"; Thut tan c th vit ngn gn nh sau : $nLine = 10; // l s dng trn mt trang $p = 0; // mc nh ly 10 kt qu u tin if(isset($_GET['p'])) $p = $_GET['p']; $start = $p*$nLine; $total = mysql_num_rows(mysql_query("select * from

where ")); $nPage = floor($total/$nLine)+1;

= 'Page: '; foreach($i=0;$i