You are on page 1of 70

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Introduction PHP

History

RtUv)anpl;eQaHCapv kar HyperText Preprocessor vaCaPasaEdltMeNIrkarenAelI ServerEdlCa TUeTA


RtUv)an sresrkg bribT HTML b:Eu nmni dUcCa HTML page FmtaenaHeTPHP script minRtUv)anbBan eTAeGay
client eday server pal;enaHeT vaeFVk
I arbBaneday PHP engine . PHP code EdlzitenAkg script GaceRbIedIm,IeFVI
karCamYy Databases, begItCarUbPaB ,Gan nigbBalTinny b EkrERbGtbTEdlmanenAxagkg files b eFVIkar
TMnak;TMngeTAkan; Remote Server RBmCamYynwglTPaBCaeRcInepSgeTot .
Rasmus Lerdorf
KWCamnusSdMbUgEdlGPivDn_nvU PHP/FI ehIyRtUv)anmnusSrab;lanGkeRbIR)as;va .
CMnan;tMbUgn PHP/FI eQaHfa Personal Homepage Tools/Form InterpreterEdllkNCamYldanKWRsedogeTAnwg
Pasa Perl eRBaH)anRbmUlpnM Uv Perl scripts mkGPivDn_ enAkgGMLg qaM 1995 b:uEnvaenAmankgVHxatCaeRcInenAkg
PasaenH dUcCa for loops CaedIm .
PHP

PHP/FI 2

enAkgqaM 1997 Rasmus bnkarGPivDn_nvU PHP/FI 2 rhUtmkdl;Ex vicki a qaMdEdlbnab;BI Andi Gutmans
ehIynig Zeev Suraski )anRbTHeXIjnUv PHP/FI cMeBlEdlBYkeKkMBugEsVgrknUvPasaedIm,IGPivDn_nUvKMeragbegIt
E-commerce solution sMrab;sklviTaly rbs;Bk
Y eK . BYkeK)aneGaydwgfa PHP/FI BMuTan;manlTPaB
RKb;RKan;enAeLIyehIyxVHxatnUv lkNBiessCaeRcIn . cMncu mYyEdlmankarcab;GarmN_CageK KW while loops
EdlBYkeKnwgRtUvRbtibti .
PHP 3>
Zeev and Andi sMerccits
resr scripting language eLIgvijb:uEnBvMu tman RasmuscUlrYmedIm,IGPivDn_nvU
PHP3eLIyehIy)anpln; vU eQaHff
I aHypertext PreprocessoredIm,IbBaak;fa PHPKWCaplitplepSgmYyeTotehIynwg
minRtwmEtykmkeRbIsMrab;Etkargarpal; xnenaHeT . Zeev and Andi k)anbegItnUv Extension API Edl API
begtI fIenHvamanlTPaBbMeBjnUvkargarCaeRcIndUcCa Accessing databases , spell checkers ehIynwg beck
viTadTeTot EdleFVeI Gaymankarcab;GarmN_BsI MNak;GkGPivDn_ CaeRcInmkcUlrYmkgKMerag PHP.
enAxNeBlenaHEdr PHP kRtUv)anbeBjjnUvCMnan;fIrbs;xnKW PHP 3 enA fTI 3 Ex mifuna qaM 1998
Edltamkar)a:n;san PHP nwgRtUv)antMeLIg RbmaN Cag 50 000 domains b:uEnCamYytYelxBitR)akd elIkdMbUgrbs;
PHP RtUv)aneKtMeLIgeRcInCagmYylan Domain eTAeTot .

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 1

PHP 4

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

>

enAeRkayqaM 1998 Zeev nig Andi gakeTABitnitelIkargar PHP 3 ehIyBYkeKmanKMnti faBYkeKGacsrsrnUv


script language eLIgvijeGaymanlkNlRbesIrCagmuneTAeTot kg
xNeBlEdl PHP 3 kMBgu bnkareFVIsm<n nig
RbtibtikarenaH PHP 4 k cab;epmI begItnUvKMrfU I KW compile first, execute later. tMNak;kalnkar compile
minRtUv)an complie PHP Script eGayeTACa machine code enaHeT vaCMnYsedaykar compile eTACa byte code
EdleFVI karRbtibtikar eday Zend Engine ( Zend mkBIBakfa Zeev nig Andi ) . viFIsaRsfIs Mrab;karRbtibti script
enHGaceFVIeGay PHP 4 tMeNIrkar)anlRbesIreRcInCa PHP 3 ehIyRtUv)andak;bgajnUv PHP 4 enHkg Ex ]sPa qaM
2002 b:Eu nedaymankarpas;br enAkg PasaenHCabnbnab;eTIb PHP 4 )anbegtI nUvCMnan;rbs;xn Ca PHP 4.1.0
nwg )anbgajnUv Superglobals dUcCa $_GET nig $_POST . Edl Superglobals enHGacykmkeRbIR)as;BI
xagkg Functions edaymincaM)ac;eRbI global keyword. rhUtdl;CMnan;cgu eRkayrbs; PHP4RtUv)an bgaj Cacug
eRkaybgs; enAfTI 27 Ex F qaM 2002 .
PHP 5 >
edaymantMrUvkarCaeRcInnUvlkNrbs; object-oriented Andi kmanKMnitsresrnUvObject-Oriented
sMrab;CaEpkn Zend Engine. Zeev and Andi )ansresrnUvksarGMBI
Zend Engine II : Feature Overview and Design
ehIycab;epImBiPakSaKaGMBI PHPs
eTAfGnaKtEdlkg CMnan; PHP 5 mancMncu CaeRcInEdlnwgRtUvEkERb bEnm b rMelaHecal .
PHPs minRtwmEtERbRbYledayGaceGayeRbIR)as;nUvlkN Object-Oriented b:eu NaHenaHeT vaEfmTaMg pknUvmux
garfI CaeRcInEdlbBalCamYymuxgarsMrab; XML ehIyCaBiessenaH KW SimpleXML extension EdleFVIeGay
manPaBgayRsYl kg karsRmbsRmYlCamYyksar XML nig SOAP b MySQLi fI ehIynwg extensions epSg
eTotEdlCacMnucsMxan;enAkg PHPs . eKrMBwgfa PHP 5 nwgGackayCaGknaMmuxeK enAelITpI SarnkarGPIvDn_ web
.

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 2

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Building Block

>
VariableKWCaRKwHdsMxan;sMrab;PasakMuBTr vaRtUv)aneKeRbIedIm,IpknUvtMlCabeNaHGasnenAeBlEdlRbtibtikar
script mg . variable RtUv)anpl;tMleTAeGay enAeBlEdl Script cab;epImtMeNIrkar b enAeBlGkeRbIR)as;bBal

b)anmkBIkarcab;ykTinny BI DatabaseGkGaceRbIR)as; variable RKb;eBlTaMgGs; enAeBlEdl script cab;epImtM


eNIrkarCamYyTinny ehIyGkGacEkERb tMlEdl Variable enaHpkBIkarRbtibtikar script mYyeTAkan;karRbtibtikar
rbs; script mYyepSgeTot rhUtdl;eBlEdl script rbs;GkRtUv)anbBab; .
sMrab;Pasa PHP eQaHrbs; variable RtUvEtcab;epImedaynimitsBaa $ (dollar sign)GkGacpln; vU eQaHrbs;
variable CatYGkSr tMlelx b underscore ( _ ) kb:uEnGkminGaceRbIGkSrdkXaCamYyeQaHrbs; variable enaHeT
.
]TahrN_ xageRkamKWCakarple; QaHeTAeGay variable EdlRtwmRtUv
1. (Variables)

$sok ;
$sok_som_neang ;
$_Dara ;
$Chenda22 ;

]TahrN_ karpl;eQaHeTAeGay variable EdlminRtwmRtUv


$123 ;
$*ABC ;
$A+B ;

GacpknUvRbePTTinnyEdlCatMlelx tYGkSr object , arrayBooleans


ehIyral;cMnuHrbs; variable GaceFVkI arpas;br RKb;eBlevla . CaTUeTAkarRbkasVariable b karplt; M leTAeGay
variable GkGacGnuvtn_nUv statement dUcxageRkam .
Variable

rbs;

PHP

$num1 = 5;
$num2 = 8;

karRbkas

BIr xagelIGk )aneRbIR)as;nUv assignment operator (=) Edlnwgerobrab;lMGitenAkg emeron


Expression .bnab;BIGk)anpln
; UvtMleTA variablerYcral;ehIy GkGacykvamk eRbIR)as;)an

variable

Operator and

dUcxageRkam
vamantMlesnI gw kareRbI print 8; dUcecHmannyfa
$num2 pktMm 8
cUrcgcaMfaral;cgu bBab;nr)aykarN_rbs; PHP nimYyRtUvEtbBab;edaysBaa ( ; ) semicolon.
2 Data Types >
RbePTxusKanTinnyRtUv)aneRbIR)as;nvU cMnYnsrubrbs;GgcgcaMepSgKa ehIyvaGacRbRBwte TAenAeBlGk
erobcMvaenAkg script rbs;Gk . manPasakmviFmI YycMnnY TamTareGayGksresrkmviFI RbkasnUvRbePT nTinny
print $num2;

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 3

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

BImxu variable edayELksMrab;Pasa PHP kareRbIR)as; variable KWmanPaBgayRsYl edayvanwgeFVIkarKNna


nUvRbePTTinnyedaysVyRbvtei nAeBlEdlGk)anplt; M leTAeGayva .
Standard Data Types

RbePT

]TahrN_

BiBNna
pknUvtMlelxCacMnYnKt;

Integer

Double

3.234

String

"hello"

pknUvtMlelxCacMnYnTsPaK
pknUvtMlCabnM ntYGkSr

Boolean

True

pknUvtMlBiessKW true b false

Array

emeronTI

Object

emeronTI

]TahrN_ 1
Gettype.php
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:

<html>
<head><titile>Display Data Type</title>
</head>
<body>
<h2>Using gettype</h2>
<?php
$testing;
Print gettype($testing);// NULL
$testing = 5;
print gettype($testing); // integer
print "<br />";
$testing = "five";
print gettype($testing); // string
print "<br />";
$testing = 5.0;
print gettype($testing); // double
print "<br />";
$testing = true;
print gettype($testing); // boolean
print "<br />";
?>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 4

25:
26:
27:

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

</body>
</html>

enAeBlEdl variable $testing RtUv)anRbkasenAbnat;TI 09 edaymin)anpl;tMleTAeGayva


dUcecHenAeBlEdleRbIR)as; gettype() function edIm,IRtYtBinit variable enAbnat;TI10 enaHGknwg TTYl)annUv lTpl
CaGkSr Null . bnab;BIenH variable $testing RtUv)anpl;nUvtMlCatYelxenAbnat;TI 11 KWelx 5 EdlCacMnnY Kt; b
GkGacniyay)anfatMlelxEdlKanek,sdUecHlTplEdlnwgTTYl)anbnab;BkI areRbIR)as;nUv gettype() function
bnat;TI12 KW // integercMENkkarpln; vU tMl "five" eTAeGay variable $testing enAbnat;TI 15 KWCabnM ntYGkSr
.enAeBlEdlGkcg;eFVIkarCamYytMlCa string GkRtUvEtdak;tMlenaHsitenAkgcenaH sBaa ( ) Double quotation
mark b ( ) single quotation mark .
tMlCaRbePT double RtUv)anpl;eTAeGay variable $testing Edlsti enAbnat;TI 18CatMlelx 5.0
EdltMlenHCatMlelxTsPaK b CatMlelxEdlmanek,s. tMlCaRbePT Boolean RtUv)anpl;eTAeGay variable
$testing enAbnat;TI 21 ehIytMlenHGacmanEtBIrb:ueNaHKW true b false .
sMKal;

PaBxusKarvakareRbIR)as;nUv ( ) double quotation mark nig ( ) single quotation mark


GnuBaatieGayeyIgeRbIR)as;nUv variable bBalCamYy BIeRBaH
nwgCMnsY nUvtMlEdlCa variable . sUmBinitemIl]TahrN_xageRkamDouble quotation mark

$name = "Rithya";

>

print "hello, $name"; // hello,Rithya

RbsinebIGkeRbIR)as;nUv

PHP engine

>

single quotation mark

variable

print 'hello, $name'; // hello, $name

minRtUv)anCMnYsedaytMlenaHeT .

>

]TahrN_ 2
Quotation.php
01:
<html>
02:
<head><title>Single Quotation and Double Quotation mark</title>
03:
</head>
04:
<body>
05:
<h2> Using double quatation and Signle quatation mark</h2>
06:
07:
<?
08:
$name = "Rithya";
09:
print "Hello,$name<br/>"; // Hello,Rithya

10:
11:

print 'Hello,$name'; // Hello,$name


?>

12:
13:
14:

</body>
</html>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 5

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

>
gettype() KWCa function EdleRbIedImI,TTYlnUvRbePT variable edayELk var_dump()
eRbIedIm,IR)ab;nvU RbePT variable nig cMnHu rbs;va . eRcInCagenHeTAeTot sMrab;RbePTtMlEdlsKsajdUcCa
arrays nig object
var_dump() pl;eGaynUvBtmanRKb;RbePTEdlmanenAkgVariable enaH .
]TahrN_ 3
3.Displaying Type Information with var_dump()

Var_dump.php

01:
<html>
02:
<head>
03:
<title>Displaying Type Information with var_dump</title>
04:
</head>
05:
<body>
06:
<h2>using Var_dump</h2>
07:
08:
<?php
09:
$testing=5;
10:
print var_dump($testing);
11:
?>
12:
13:
</body>
14:
</html>
4.The Cast Operators

pl;eGaynUvviFIedIm,eFVkI arpas;br nUvRbePTTinnyedayeRbIR)as;castoperators dUcmanerobrab;kg


taragxageRkam
PHP

Operator

Changes Type To

(int), (integer)

Integer

(float), (real), (double)

Floating point

(string)

String

(bool), (Boolean)

Boolean

(array)

Array

(object)

Object

]TahrN_ 5
Casting.php
<html>
<head>
<title>Casting variable</title>
</head>
<body>
<h2>Using Casting to Changing Type</h2>
<?php
$unexpect=3.14;
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 6

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

$holder = (double)$unexpect;
print gettype($holder);
print "--- $holder<br/>";
$holder = (string)$unexpect;
print Gettype($holder);
print "-- $holder<br/>";
$holder = (integer)$unexpect;
print gettype($holder);
print "-- $holder<br/>";
$holder = (Double)$unexpect;
print gettype($holder);
print "---- $holder<br/>";
$holder = (boolean)$unexpect;
print gettype($holder);
print "-- $holder<br/>";
?>
</body>
</html>

>
Operators
KWCanimti sBaaTaMLayNaEdlGkGaceRbItMlmYy b eRcIn begtI ecjCatMlfImyY eTot
ehIytMlEdlRbtibtieday operator enaHRtUv)aneKehAfa operand .
Operand KWCatMlEdlcUlrYmCamYy operator EdlCaTUeTA man operand BIrCamYyOperator mYy .
]TahrN_kareRbI operand BIr CamYy operator edIm,IbegItecjCatMlfmI YyepSgeTot.
4+5>
4 ehIynig 5 KWCa operand EdlRtUv)an operated eday addition operator (+) edIm,IbegtI nUvtMlfI KW 9 . karpMnvU
operand nig operator edIm,Ibegt
I CalTpl RtUv)aneKehAfa expression
5.1 The Assignment Operator >
Assignment operators eRbIedIm,Ipl;nUvtMleTAeGay variable .
dUcEdlGk)anCYbxagelI assignment
operator RtUv)an initialize variable RKb;eBl vaKWCaGkSr ( = ) .Assignment operator cab;yktMlBI operand
xagsaMeTAeGay operand xageqVgdUc]TahrN_
xageRkam
5.Operators and Expressions

$name = DYCHANDOEUN ;
Print $name;

>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 7

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

CaTUeTAxageqVgn Assignment operator eRcInEtCa variable .


5.2 Arithmetic Operators
Arithmetic Operators
Operator
+
/
*
%
-

Name

bUk ( Addition )
Eck ( Division )
KuN ( Multiplication )
yksMNl;BpI lEck ( Modulus )
dk ( Subtraction )

Example

Result

10+5

15

10/3

3.333333333333

10*5

50

10%3

10-2

>
Concatenation operator eRbIedIm,IPab; string sMrab; operator mYyenHvaeFVk
I arCamYyEt string b:ueNaH .
dUecHral; operand EdlminEmnCa string vanwg convert eGayeTACa string sUmBinitemIl]TahrN_
"hello"." world" karsresrEbbenHvaesn
I gw karsresr "hello world" .
$year = 2007; >
Print "Happy khmer new year_".$year ; >
Variable $year EdlCaRbePT integer RtUv)anbMElgeTACa string " 2007 " mun
eBlEdlvaRtUv)anPab;CamYy string Happy khmer new year .
5.4 Combined Assignment Operators >
$x = 4; >
$x = $x + 4; // lTpl $x KW 8
5.3 The Concatenation Operator ( . )

b GkGacCMnYsedaykarsresrdUcxageRkam
$x = 4;
$x += 4; // $

lTpl $x KW 8

Some Combined Assignment Operators


Operator

Example

Equivalent to

+=

$x += 5

$x = $x + 5

-=

$x -= 5

$x = $x 5

/=

$x /= 5

$x = $x / 5

*=

$x *= 5

$x = $x * 5

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 8

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Some Combined Assignment Operators


Operator

Example

Equivalent to

%=

$x %= 5

$x = $x % 5

.=

$x .= " test"

$x = $x." test"

5.5 Comparison Operators

>

Comparison operators

eRbIedIm,IeRboeFobnUv

.
]TahrN_edIm,IRtYtBinittMlEdlmanenAkg
operator .

operands

TaMgLay edaypln; vU tMlRtlb;Ca Boolean (

true or false )

$x

nigCatMlEdltUcCagR)aM GkGaceRbICamYynwg

less than

$x < 5

RbsinebI

pktMl elx 4 expression xagelInwgpl;CatMl


expression nwgpl;nUvtMl false .
$x

true

b:uEnRbsinebI

$x

pktMlCaelx 7 enaH

Comparison Operators
Operator

eQaH

pl;tMl True RbsinebI

==

smmUl

tMlxageqVg esI tMlxag saM

$x == 5

!=

Non-equivalence

tMlxageqVg xusBI tMlxagsaM

$x != 5

===

Identical

tMlxageqVg esI tMlxagsaM ehIy


tMlTaMgBIrRtUvEtmanRbePTdUcKa

$x===5

>

FMCag

tMlxageqVgFMCag tMlxagsaM

$x > 4

>=

FMCag b esI

tMlxageqVgFMCag b esI tMlxagsaM

$x >= 4

<

tUcCag

tMlxageqVgtUcCag tMlxagsaM

$x < 4

($x

tUcCag b esI
tMlxageqVgtUcCag b esItMlxagsaM $x
Operator xagelIenHPaKeRcIneRbICamYy integers or double ehIysMrab;
KWeRbIedIm,IeRbobeFobtMlEdlCa strings .
<=

Developing web Application with PHP

Prepare By: DY CHANDOEUN

KW 4)

<= 4

operator(

==

Page 9

5.6 Logical Operators

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

>

Logical Operators
Operator Name

Returns True if...

Example

Result

||

Or

Left or right is true

true
false

||

Or

Or

Left or right is true

true
false

||

Xor

Xor

Left or right is true but not both

true
true

xor

&&

And

Left and right are true

true
false

&&

And

And

Left and right are true

true
false

&&

Not

The single operand is not true

! true

True
true
false
false
false
false

bMElg operand eGayeTACatMl Boolean rYceFVkI areRbobeFobtMlTaMgenaH .


Or operator b ( || ) pl;tMl true RbsinebI operand xageqVg b xagsaMNamYymantMl true .
]TahrN_ 1> true || false lTplKW true .And operator b ( && ) pl;tMl true enAeBlEdl operand
TaMgBIrmantMl true .
]TahrN_ 2> true && false lTplKW false .
]TahrN_ 3> ( $x > 2 ) && ( $x < 15 )
Logical operators

5.7 Increment/Decrement Operators


Increment/decrement operators

eRbIedIm,IbegnI b bnytMl rbs;

variable

EdlCa

Integer

ehIyCaTUeTAeRbIedIm,Irab; Iteration rbs; loop .


$x = $x + 1; // $x is incremented.
$x += 1; // $x is incremented.
$x++; // $x is incremented
.

$x = $x - 1; // $x is decremented.
$x--; // $x is decremented.
$x- = 1; // $x is decremented.

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 10

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Operator Name

Effect on $var

Value of the Expression

$var++

Post-increment

$var is incremented by 1

The previous value of


$var

++$var

Pre-increment

$var is incremented by 1

The new value of $var


(incremented by 1).

$var--

Post-decrement

$var is decremented by 1

The previous value of


$var

--$var

Pre-decrement

$var is decremented by 1

The new value of $var


(decremented by 1).

]TahrN_
$num1 = 5;

RtUv)anpl;nUvtMledImrbs; $num1
// lTplEdlnwgRtUvbgajKW tMlrbs; $num1 KW 6
// lTplEdlnwgRtUvbgajKW CatMledImrbs; $num1 KW 5

$num2 = $num1++; // post-increment, $num2


print $num1;
print $num2;

]TahrN_
$num1 = 5;
$num2 = ++$num1; // pre-increment, $num2

RtUv)anpl;nUvtMlfIrbs; $num1

eTAeGay $num2 .
print $num1; // lTplEdlnwgRtUvbgajKW tMlrbs; $num1 KW 6
print $num2; // lTplEdlnwgRtUvbgajKW CatMlrbs; $num1 KW 6
6.Constants

>

CaTUeTA Variables RtUv)aneKeRbIedIm,IpknUvtMl BIeRBaHtMl nig RbePTrbs;vaGac


nwgRtUvpas;br )anRKb;eBlevla . RbsinebIGkcg;eFVIkarCamYytMlEdlminERbrRbYlenAkg kar RbtibtikarkUdrbs;Gk
GkGaceRbIR)as;nUv constant . PHP )anpl;nUv define() function edIm,I
begtI nUv constant .
define("CONSTANT_NAME", 42);

Developing web Application with PHP

>
Prepare By: DY CHANDOEUN

Page 11

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

tMlEdlGkGacple; TAeGay constant KWRtUvEtCa tMlelx b tYGkSr ehIysMrab;kar


ple; QaHrbs; constant GkKYrEteRbIGkSrFM . ralkar;eRbIR)as; constant variable GkRKan;yk eQaHrbs;
enaHmkeRbI b:Eu nminmansBaa ($) dollar symbol enABImuxenaHeT .
]TahrN_ 6

constant

constant.php

01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:

<html>
<head>
<title>Defining a constant</title>
</head>
<body>
<div>
<?php
define("USER", "Ankor");
print "Welcome ".USER;
?>
</div>
</body>
</html>

enAbnat;TI 10 eyIg)aneRbI concatenation operator edIm,IPab;tM lrbs; constant nig


GkSr "Welcome" BIeRBaH PHP engine minmanviFsI aRsedIm,IEbgEck rvag constant nig string
EdlenAkg quotation mark enaHeT .
Ca Default constant KW case sensitive b:uEnGkGacpas;br edayTTYlyknUv argument
TI3 Ca boolean mkeRbIkg define() function edIm,IkMNt;eGaykareRbIR)as;eQaH constant Ca
Case insensitive dUcmankg]ThrN_xageRkam .
define("USER", "Ankor", true); >
dUecHGkGaceRbIR)as; constant edayminmankarxVayxVlG; MBIGkSrtUcbFMeLIy .
print User;
print usEr;
print USER;

]TahrN_ 7
constant2.php
<html>
<head>
<title>Defining a constant</title>
</head>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 12

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

<body>
<div>
<?php
define ("USER", "Angkor",true);
print "Welcome".uSER."<br/>";
print "Welcome".uSeR."<br/>";
print "Welcome".usEr."<br/>";
print "Welcome".uSER."<br/>";
?>
</div>
</body>
</html>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 13

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE


[[[[[[[

Going With The Flow

1. The if Statement

KWCaviFsI aRsEdleRbIedIm,IRtYBiniteTAelIkarRbtibtikarrbs; statement EdlenAbnab;va


( GacCa single statement b Ca block of code EdlzitnUvkg
sBaa {-------} )
If statement eFVk
I arvaytm expression EdlenAkg sBaa (---) RbsinebI expression rbs; ifplt; M l true enaH
statement EdlenAxaeRkamnwgRtUvGnuvtn_ .
kUdxageRkambgajBI TMrg;n if statement EdlRtYtBinti expression Ca string .
If statement

if(expression)
{
// code

EdlnwgRtUvGnuvtn_enAeBlEdl expression plt; M l true

]TahrN_ 8
<Html>
<head>
<title> Using if Statement </title>
</head>
<body>
<h2>Using if statement</h2>
<?php
$user="Thanith";
$pwd="123";
If(($user= ="Thanith" && pwd= ="123"))
print "Login successful";
else
print "Login fail !";
?>
</body>
</Html>

kareRbIR)as; comparasion operator (==) edIm,IeRbobeFob variable $user nig tMlCaGkSr " Thanith "
variable $pwd CamYynwgtMl "123" RbsinebItMlEdlRtUveRbobeFobnigtMlrbs; variable
dUcKaenaH expression nwgplt; M l true ehIy code block nwgRtUvGnuvtn_buE: nRbsinebItMlrbs; $user
breTACa "Romchong" b tMlrbs; $pwd breTACa "124" ehIytMeNIrkar scripteLIgvij enaH
expression EdlenAkg if statement niwgpl;tM l falseehIyCode block nwgminRtUvGnuvtn_ Edl
script nwgEbreTAGnuvtn_nUv else statement
CMnsY vij .
else
print "Login fail !";

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 14

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

1.1 Using the else if Clause with the if Statement

GkGaceRbIR)as;nUvTMrg; if/else b else/if edIm,IeFVIkarBinitelI expression muneBlEdl


Script rbs;GkRtUvGnuvtn_ nUv default block of code .
if ( expression )
{
// code

EdlRtUvGnuvtn_ RbsinebI expression plt; m true

}
else if ( another expression )
{

EdlRtUvGnuvtn_ RbsinebI expression dMbUgplt; m false


// ehIy expression rbs;va true
// code

}
else
{
// code

EdlRtUvGnuvtn_ RbsinebIBMuman expression NamYy true

RbsinebI expression dMbgU minpl;nUvtMl true enaH block of code dMbgU kminRtUv)an Gnuvtn_Edr else if
cab;epmI eFVIkarCamYy expression rbs;xn RbsinebI expression enHpl;tMm True enaH block kUdTI2 nwgRtUvGnuvtn_
pymkvijkUdEdlsitenAkg else clausenwgRtUvGnuvtn_ CMnYsvij . GkGaceRbIR)as; else if )anCaeRcIneTA tamkarcg
;)anrbs;Gk ehIyRbsinebI Gkmin cg;eGayman Default action eT GkmincaM)ac;eRbIR)as; else clause enaHeT .
>
switch statement KWCaviFIsaRsEdleRbIedIm,Ipas;br lMdab;nkarGnuvtnk
_ Udrbs;kmviFIEdlGaRsyeTAelI
karvaytMlrbs; expression . kareRbIR)as; if statement CamYy else if GkGaceRbIR)as; expression)aneRcIn eday
ELk switch eRbIR)as;Et expression mYyb:ueNaH .karGnuvtn_ code xusKaKWGaRsyeTAelIlTplnexpression
Edlplt; M lCa simple typedUcCa ( number , string , Boolean. l. ) .
2. The switch Statement

switch (expression)
{
case exp:
// execute this if expression results in result1
break;
case exp:
// execute this if expression results in result2
break;

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 15

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

default:
//

kUdnwgRtUvGnuvtnR_ bsinebIminman expression NadUcnwg expression rbs; case

CaTUeTARtUv)aneRbICa variable ehIy coderbs; switch statement


RtUvsresrenAkg case statement . ral;tMl expression rbs; casenimYy RtUv)anykmkepogpat;CamYy expression
rbs; switch statement RbsinNatMlrbs;case NamYydUcnwg expression rbs; switch statement enaH code block
nwgRtUvGnuvtn_ bnab; mk break statement nwgbBab;karGnuvtn_ switch statement b:uEnRbsinebIBmMu an case expression
NamYy dUcnwg switch expression enaH default statement KWCaGkGnuvtn_ .
Expression

rbs;

switch statement

]TahrN_ 9
<Html>
<head>
<title>
Using switch Statement
</title>
</head>
<body>
<h2>Using switch statement</h2>
<?php
$name="Daro";
switch($name)
{
case "Dara":
print " Hello Dara";
break;
case "Many":
print "Hello Many";
break;
case "Daro":
print "Hello Daro";
break;
Default:
print "No one know";
}
?>
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 16

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

</body>
</Html>

3. Loops

>

GaceGayGkGnuvtnn_ UvkargarmgehIymgeTotenAkg programrbs;Gk rhUtdl;vasMerc


lkN
b GkbBaaeGaycakecjBI loop .
Loop statement

3.1 The while Statement >

KWCaRbePTmYyn loops . expression rbs;vapl;CatMl true b false dUecHRbsinebI


expression plt
; M lCalTpl true enaH code block nwgRtUvGnuvtn_ Edl blockCode sitenAkg loop enaH
RtUv)aneKeGayeQaHfa iteration .
While loops

while ( expression )
{
// do something
}

]TahrN_ 10
while.php

<html>
<head><title>The While Statement</title>
</head>
<body>
<h2>Using the While Statement</h2>
<?php
$sum=0;$i=1;
$str="";
While ($i<=10)
{
$sum+=$i;
$str= $str."$i+";
$i++;
}
echo substr($str,0,-1)."=$sum";
?>
</body>
</html>

>
do..while statement vamanlkNRbhak;RbEhlnwg while statement b:uEnlkNBIrEdlxusKaBI while
statement KW block code rbs; do while statement Gnuvtn_muneBlEdl Expression rbs;vaRtUv)an test nig pl;tMl
true b false .
3.2 The do...while Statement

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 17

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

do
{

// code to be executed

}
while (expression);

Test expression

n do...while statement RtUvEtbBabe; day ( ; ) semicolon. >

]TahrN_ 11
dowhile.php

<html>
<head><title>The Do While Loop Statement</title>
</head>
<body>
<h2>Using the do while Statement</h2>
</body>
</html>
<?php
$sum=0;$i=1;$str="";
Do
{
$sum=$sum+$i;
$str= $str."$i+";
$i=$i+1;
}
While ($i<=10);
{
$i=$i-1;
echo substr($str,0,-1)."=$sum";
}
?>
3.3 The for Statement

>

for ( initialization expression; test expression; modification expression )


{
// code to be executed
}

ral; expression nimYyEdlmanenAkgsBaavg;Rkckrbs; for statement KWRtUvEbgEckKaeday semicolon ( ; )


. expression TImyY cab;epImrab; variable ehIy expression TI2eFVIkarRtYtBinitlkNrbs; for loop nig expression
TI3 begIn b bnynUvcMnYnkarrab; .
]TahrN_ 12
forloop.php

<html>
<head>
<title>The for Statement</title>
</head>
<body>
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 18

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

<h2>Using for Statement</h2>


<?php
$sum=0;$str="";
for ($i=1; $i<=10; $i++ )
{
$sum+=$i;
$str= $str."$i+";
}
echo substr($str,0,-1)."=$sum";
?>
</body>
</html>

enAeBlEdl program tMeNIrkardl; for loop variable $i RtUv)an initialize ehIyTest expression
cab;epmI RtYtBiniteTAelI expression rbs;xn RbsinebI expression plt; M lTrue enaH code block nwgRtUvGnuvtn_
bnab;mk $i variable eFVkI arbegIntMlmYyehIy testExpression cab;epImeFVIkarRtYtBinti eTAelI expression
rbs;xn sarCafImg eTot. RbtibtikarenHbnkarGnuvtn_rhUtdl; test expression plt; M l false .
3.4 Breaking Out of Loops with the break Statement

ral; loop statement KWsuTEtmanPab;mkCamYynUv


edayeRbIR)as; break statement .
]TahrN_ 13

>

test expression

EdlGaceGayGk bBab;va)an b

break.php
01: <html>
02: <head>
03: <title>the break Statement</title>
04: </head>
05: <body>
06: <div>
07:
08: <?php
09:
10: $counter = -5;
11: for ( ; $counter <= 10; $counter++ ) {
12: if ( $counter == 0 ) {
13: break;
14: }
15: $temp = 2000/$counter;
16: print "2000 divided by $counter is.. $temp<br />";
17: }
18: ?>
19:
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 19

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

20: </div>
21: </body>
22: </html>

eyIg)aneRbIR)as;nvU if statement enAbnat;TI 13 edIm,IRtYBinitnUvtMlrbs; variable$counter


RbsinebItM lrbs;vaesInwgsUn 0 break statement nwgRtUvGnuvtn_ EdlRtUvcakecjBIBlock code rbs; for loop
statement ehIyGnuvtn_nUv statement EdlenAbnab;BI for statement .
>
Continue statement bBab;teM NIrkarrbs; iteration EdlkMBugGnuvtn_ bu:EnminbBab; tMeNIrkarrbs; loop
TaMgRsugenaHeT vanwgbneFVkI arCamYy iteration eRkaybneTot rhUtdl; Expression pl;tMl false b CYb nwg break
statement .
]TahrN_ 14 continue.php
3.5 Skipping an Iteration with the continue Statement

01: <!
02: exam continue statement
03: >
04:
<html>
05:
<head>
06:
<title>Using the continue Statement</title>
07:
</head>
08:
<body>
09:
<div>
10:
11:
<?php
12:
13:
$counter = -5;
14:
for( ; $counter <= 10; $counter++ )
15:
{
16:
if ( $counter == 0 )
17:
{
18:
continue;
19:
}
20:
$temp = 2000/$counter;
21:
print "2000 divided by $counter is .. $temp<br />";
22:
}
23:
24:
?>
25:
26:
</div>
27:
</body>
28:
</html>

enAbnat;TI14eyIg)anCMnYs break statement edaykareRbIR)as; continue statementRbsinebI variable


$counter esI 0 iteration nwgRtUvrMlgkarGnuvtn_
ehIybnGnuvtn_ iteration CabneTot .

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 20

3.6 Nesting Loops

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

>

]TahrN_ 15
nestingLoop.php
01:

<html>

02:

<head><title>using nested loop</title>

03:

</head>

04:

<body>

05:

<h2>Using nested loop</h2>

06:
07:

<?php

08:
09:

$j=0;$i=0;

10:

for($i=0;$i<=5;$i++)

11:

12:

print "The Value i=".$i."<br/>";

13:

for($j=0;$j<=3;$j++)

14:

15:

print "value J=".$j."<br/>";

16:

17:

18:
19:

?>

20:
21:

</body>

22:

</html>

kareRbIR)as; for statement edIm,I bgaj table eTAkan; brower .


Nesting Two for Loops
01:
02:
03:
04:
05:

<!
Nesting loops
>
<html>
<head>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 21

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

06:
<title>Nesting Two for Loops</title>
07:
</head>
08:
<body>
09:
<div>
10:
10:
<?php
11:
12:
print "<table border=\"1\">\n";
13:
for ( $y=1; $y<=12; $y++ )
14:
{
15:
print "<tr>\n";
16:
for ( $x=1; $x<=12; $x++ )
17:
{
18:
print "\t<td>";
19:
print ($x*$y);
20:
print "</td>\n";
21:
}
22:
print "</tr>\n";
23:
}
24:
print "</table>";
25:
26:
?>
27:
28:
</div>
29:
30: </body>
31: </html>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 22

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Function

1.What is Functions ?

KWCabnM n block code EdlGkbegtI ehIyGnuBaatieGayGkehA ykmkeRbI enAkg script rbs;Gk


. enAeBlEdlGkehA function kUd EdlenAxagkg nwgRtUvGnuvtn_ ehIyGkkGac bBan tMleTAeGay function b
TTYltMlBI function mkvij .
1.1 Calling Functions >
Function manBIrRbePTKW
Function
EdlmanRsab; Pab;mkCamYynwgPasakmviFI nigFunction
EdlGkbegIteLIgedayxng . enAkgPasa PHP man built-in function CaeRcInEdlpl;nUvPaBgayRsYlsMrab;
karsresrkUdrbs;Gk .
1.2 Defining a Function >
GkGacbegIt function edayeRbI function statement function function_name( $argument1,
Function

$argument2 )
{
//
}

RbsinebI function rbs;GktMrUveGayman argument cab;BIBrI eLIgeTA GkRtUvEtEckvaedayeRbIR)as;sBaa


comma( , ) EdlCaTUeTA argument TaMgenaHKWCa variable ehIytMlrbs;vanwgRtUvpl;eGayenAeBlEdl function
RtUv)anehA .
]TahrN_ 16
Declaring a Function
<html>
<head>
<title>Declaring a Function</title>
</head>
<body>
<?php
function bigsum()
{
$sum=0;

for ($i=1; $i<=10; $i++ )


{

>

$sum+=$i;
$str= $str."$i+";
}
echo substr($str,0,-1)."=$sum";
}
bigsum();
?>
</body>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 23

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

</html>

lTplEdlbgajenAelI browser KWCa string ntYrGkSr 1+2+3++10 = 55]TahrN_xagelIenHKW


CakarbegtI nUv function mYyeQaHfa bigsum()EdlCa function minmannUv Arguments enaHeT .sMrab;]TahrN_TI 20
eyIgnwgbegIt function EdleRbIR)as; argument .
]TahrN_ 20
01:
02:
03:
04:
05:
06
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:

<html>
<head>
<title>Declaring a Function</title>
</head>
<body>
<?php
function bigsum($count)
{
$sum=0;
for($i=1; $i<=$count; $i++ )
{
$sum+=$i;
$str= $str."$i+";
}
echo substr($str,0,-1)."=$sum";
}
bigsum(10);
?>
</body>
</html>

1.2.1 Returning Values from User-Defined Functions

>

enA]TahrN_xagelIeyIgTTYl)annUvlTplCa string enAelI browser edaykareRbIR)as; bigsum()


function . function rbs;Gk
GaceFVkI arpas;br tMlEdlGk)anpl;eGayb maneBlxHGknwgcg;eGay function
pl;nUvtMlfIeGayGk bnab;BIGk)anplt; M leTAva.
Function mYyGacTTYl)antMledaykareRbIR)as; nUv returnstatement CamYynwgtMlEdlRtUvbBanRtlb;
eTAkan; function. return bBab;Rbtibtikarrbs; function ehIy bBan tMlRtlb; eTAvijenAeBlEdl function
RtUv)anehAmkeRbI .xageRkamKWCa]TahrN_nkarbegIt function Edl return tMlBI plbUlcMnnY BIrtMl .
]TahrN_ 21
01:
02:
03:
04:
05:
06:
07:
08
09:
10:

<html>
<head>
<title>A Function That Returns a Value</title>
</head>
<body>
<?php
function addNums($num1,$num2)
{

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 24

11:
12:
13:
14:
15:
16:
17:
18:

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

$result = $num1 + $num2;


return $result;
}
print addNums(3,5);
?>
</body>
</html>

RtUv)anehAykmkeRbIR)as;CamYynwg argument cMnnY BIrEdlCatMlelx 3 nig elx 5


EdltMlTaMgenHRtUv)anrkSaTukenAkg variable $num1 nig $num2addNums function eFVkI arKNnanUvplbUknt
MlEdlrkSaTukenAkg variable TaMgBIrehIyplC; alTpleTAeGay variable $result .GkkGac return
tMledaykarehA function dTeTot)anpgEdr return ( another_function( $an_argument ) );
addNums() Function

2. Variable Scope

EdlRbkasenAxagkg function KWGaceRbIR)as;)anEtenAxagkg function enaHb:eu NaH


mannyfaminGaceRbIR)as;)anenAxageRkA function b enAkg function dTeTot .
sMrab; project FMvaGacCYyGkBIeRKaHfak; nkarEkERbtMlEdlmanenAkg variableeBlEdlGkRbkas
variable BIr ehIymaneQaHdUcKa nig zitenAkg function epSgKa .
xageRkamKWCa]ThrN_ sIBkI arbegIt variable mYyenAkg function ehIyBayamykVariable enaHmkbgajelI
browser BI eRkA function .
cMNaM VariableEdlbegtI enAxagkg function minGaceRbIR)as;BIxageRkA function )anenaHeT.
]TahrN_ 22
Variable

01:
02:
03:
04:
05:
06:
07:
08:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19
20:

<html>
<head>
<title>Local Variable Unavailable Outside a Function</title>
</head>
<body>
<div>
<?php
function test()
{
$testvariable = "this is a test variable";
}
print "test variable: $testvariable<br/>";
?>
</div>
</body>
</html>

Gknwg)aneXIjnUvlTpln]TahrN_xagelI EdltMlrbs; variable $testvariableminRtUv)anbgajenaHeT


BIeRBaHBMuman variable NamYyRtUv)an)anbegtI enAxageRkA functiontest() enaHeT . KYrcMNaMfa karyk variable
Edlminman mkeRbIR)as;KWminmanPaB error eLIy.ma:gvijeTot variable EdlRbkasenAxageRkA function
KWminGacykmkeRbIkg function edaysVyRbvtei naHeT .
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 25

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

2.1 Accessing Variables with the global Statement

>

maneBlxHGkRbEhlCaRtUvkareRbIR)as; variable enAkg function


eGaymankarbBantMltam argument enaHeT . xageRkamKWCa]TahrN_EdleRbIR)as;nUv
global statement edIm,IeRbIR)as;nvU variable EdlRbkasxageRkA function .
]TahrN_ 23
01:
02:
03:
04:
05:
06:
07:
08:
09:
10
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:

rbs;GkedayBMtu rM vU

<html>
<head>
<title>The global Statement</title>
</head>
<body>
<?php
$lottery=42;
function lotteryToday()
{
global $lottery;
print "Lottery today is $lottery<br />";
}
lotteryToday();
?>
</body>
</html>

enAbnat;TI 13 n]TahrN_T2I 3 eyIg)aneRbIR)as;nvU global BImxu variable $lotteryEdl)anRbkasenAkg


function lotteryToday() edIm,IsMedAeTAkan; global variable $lottery Edl)anRbkasenAxageRkA function enAbnat;TI
09 .
GkRtUvEteRbIR)as;nUv global statement enAral; function EdlGkcg;eRbIR)as;nUv global variable.
GkKYrRbugRbytpgEdrenAeBlEdlGkpl;tMleTAeGay variable $lottoeryenAkg function BIeRBaH $lottery
nwgeFVIkarpas;br tMlrbs;xnTaMgGs;enAkg script rbs;Gk .GkkGacRbkas variable CamYy global statement
)aneRcInkg eBlEtmYy)anpgEdr edaykarEcknUv variable nimYyedaysBaa , comma.
]TahrN_ global $var1, $var2, $var3;

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 26

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Array

1. What Is an Array?

Gkk)ansal;rYcmkehIyGMBI variable EdlRtUveKeRbIedIm,IpknUvtMlepSg . edaykareRbIR)as; variable


GkkGacbegtI Ca script eGayRbtibtikar b bgajCaBtmanepSgenAral;eBlEdlGktMeNIrkarva b:Eu nKYreGay
esaksay edayGkGac rkSaTuknUvtMlEtmYyb:ueNaHkgeBlEtmYy nig kg variable mYy .
Array KWCa variable BiessEdlGnuBaateGayGk pknUvtMl)aneRcInenAkg
variablemYy .
ral;tMlnimYyRtUv)anrkSaTukenAkg index rbs; array EdlGac Caelx b Ca tYGkSr . Ca default Faturbs; array
EdlCa index KWcab;epmI BIelx 0 . ehtuG)VI anCaRtUveRbIR)as; array ?
RbsinebIGkmantMlcMnYn 5 EdlRtUvrkSarTuk enaHGkR)akdCaRtUvbegIt variable cMnYnR)aMpgEdrArray KW flexible
eRBaHvaGacpk tMl)anBIr b BIrry tMl edayBMumankaregtI nUvvariablefeI TotehIy array kGaceGayGkeFVIkarCa
mYytMlrbs;va )anya:ggay dUcCa kar loop Faturbs; array nimYy b tMrabFaturbs;vaeTAlMdab;nelxerog b
CatYGkSr eTAtamkarkMnt;enAkg system rbs;Gk . xageRkamKWCakarbgajnUvFaturbs; users array EdlmanFatuT4I
Ca index TI3 n users .
The Elements in the users Array
Index Number

Value

Which Element?

Sok

First

Sao

Second

Setha

Third

Mesa

Fourth

k)anpln; vU lTPaBedIm,IerobcMnvU indexed rbs; array edaykareRbIR)as;TaMg elx nig GkSrpgEdr.


2. Creating Arrays >
GkGacbegItnUv array variable edayeRbiviFIBIrya:gKW kareRbIR)as; array() construct b kareRbIR)as;nUvsBaa square
brackets ( [ ] ) .
PHP

2.1 Defining Arrays with the array() Construct>

vamansarRbeyaCn_enAeBlEdlGkcg;pl;tMleRcIneTAeGay array kg eBlEtmYy.


xageRkamKW]TahrN_nkarbegtI array mYyEdlmaneQaHfa $users ehIyeyIg)anpl;tMlCa string cMnnY bYn
tMleTAeGayva .
array()construct

$users = array ("Sok", "Sao", "Mata", "Mesa");

\LvenHGkGacykFaturbs; $users mkeRbIR)as;edaykareRbIR)as; index rbs; array


print $users[2];

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 27

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

lTpln]TahrN_xagelInwg bgajCaGkSr Mata Edl


brackets ( [2] ) bnab;BIeQaHrbs; array ( $users ) .

index

rbs;vaehIyRtUv)andak;enAcenaH

square

>
GkGacbegIt array fI b bEnmtMleTAeGay array )anedaykareRbIR)as;nUv array Identifier .
array identifier KWCabnM n squre brackets nig index rbs;va Caelx b CaeQaH.xageRkamCa ]TahrN_nkarbegIt
$users array edayeRbIvIFIsaRsmYyepSgeTot .
2.2 Defining or Adding to Arrays with the Array Identifier

$users[] = " Sok";


$users[] = " Sao";
$users[] = " Dara";
$users[] = " Mesa";

]TahrN_xagelIminTamTareGayGkdak;nUvtMlelxEdlCa index enAcenaH square Brackets enaHeLIy


eRBaH PHP nwgpl;tMl index edaysVyRbvtei TAeGay array . ma:gvijeTotGkkGacdak;nUvtMlCa index rbs;
array )anpgEdr b:uEnminmankarKaMRTeGayeFVEI bbenHenaHeTsUmBint
i emIl karsresrkUdxageRkam
$users[0] = "Phanit";
>
$users[200] = "Ratana";

xagelImanFatuRtwmEtBIrb:eu NaH b:uEn index cugeRkayrbs;vaKWCa index TI200 PHP nwgminkMnt


tMlFatueTAeGay index EdlenAcenaH enaHeLIy EdleFVeI GaymankarPan;RcLMenAeBlEdlcg;BayamykFatu
Edlmankg array enaHmkeRbI xNeBlEdlGkcg;eRbInUv Faturbs;va NamYyeTAtamcitrbs;Gk . sMrab;karbegIt array
GkGaceRbI nUv array() contstructrYceRbInUv array identifier edIm,IbEnmnUvFatufIeTotk)an .
sUmBinit]TahrN_xageRkam
$users = array ("Sok", "Sao", "Mata", "Mesa"); >
$users[] = "Menear"; >
3. Populating an Array with array_fill() >
RbsinebIGkcg;dak;nUvtMlCa default enAcenaHn index array enaHGkRbEhlCaeRbInUv array() function
dUcxageRkam .
$member = array ("cambodia", "cambodia", "cambodia","cambodia "); >b GkGaceRbIR)as;nUv array
ma:geTotdUcCa
$member[] = "Cambodia"; >
$member[] = "Cambodia"; >
$member[] = "Cambodia";>
$member[] = "Cambodia"; >
PHP )anpl;nUv function edIm,IedaHRsaynUvbBaaenHedayeRbInUv array_fill() function EdltMrUveGayGkpln
; vU
arguments cMnn
Y 3sMrab; function enH TI1KWCatMl index Edlcab;epIm
Array

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 28

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

TIBIKWCa cMnYnFatuEdlGkcg;)an ehIy argument TI3 KWCatMlEdlGkRtUvple; GayCaFaturbs;Array .


edaykareRbIR)as;nUv array_fill() function GkGacsresrnUvbMENkkUdxagelIeLIgvij dUcxageRkam
$member = array_fill( 0, 4, "Cambodia" ); >
]TahrN_ 24
<?
$member = array_fill(0,4,"Cambodia");
$member[] = "Malaysia";
print $users[2];
?>

4. Associative Arrays >

EdleRbIR)as;nUv index CaGkSrenA cenaH


assosciate array eday array construct( array() )b array identifier (array[])
]TahrN_
$character = array("name" => "Sok", >
Assosciate array

KWCa

array

GkGacbegItnUv

squqre brakets

"occupation" => "Student",


"age" => 12,
"Adr" => "Phnom Pehn" );

\LvenHeyIgGaceRbIR)as;nUvFatu array rbs; $character dUcxageRkam


print $character['occupation']; >
keys EdlenAkg assosciate array KWCa string dUecH engine nwgbgajr)aykarN_ error RbsinebI keys n array minman
quoted . dUecHGkKYrEteRbInvU quotation marks enAeBlEdlGkeRbIkeys n array Ca string .
print $character[occupation]; // minRtwmRtUv
print $character["occupation"]; // RtwmRtUv
RbsinebI key RtUvpkenAkg variable enaH GkmincaM)ac;RtUveRbI quotation mark enaHeLIy .
$occ = "occupation"; >
print $character[$occ]; // RtwmRtUv
4.1 Directly Defining or Adding to an Associative Array >
GkGacbegIt b bEnm eQaHtMl eTAeGay associate array edaykarpl;nUvtMleTAeGayeQaHnFaturbs;
array dYcxageRkam .
$character["name"] = "sok";

>

$character["occupation"] = "Programmer";
$character["age"] = 30;

>

$character["address"] = "Phnom Penh";

Developing web Application with PHP

>

>

Prepare By: DY CHANDOEUN

Page 29

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

>
count() function pl;nUvcMnYnFaturbs; array Edlman bMENkkUdxageRkameyIg)aneRbIR)as; nUv count()function
edIm,IykFatucugeRkayn array $users mkeRbI .
$users = array ("Sambath", "Ratana", "Davy", "Ryda" ); >
print $users[count($users)-1]; >
]TahrN_ 26
5. Getting the Size of an Array

<html>
<body>
<head>
<title>Getting size of array</title>
<body>
<h2>Getting size of array</h2>
<?php
$users[]="Sok";
$users[]="Som";
$users[]="Mom";
$users[]="Mab";
print "<br/>".count($users);
?>
</body>
</html>

cMNaM count() plt; M lncMnnY srubrbs;Fatu array minEmnCatMln index cugeRkayenaHeT .


]TahrN_xageRkamenHKWkarbegIt

array

edaykarpln; vU

index

eTAeGay

array

edayxn Gk

$users[35] ="Sok";
$users[52] ="Som";
$users[890] ="Mom";
$users[52]="Mab";

enAEtpln; vU cMnnY srubnFatu array dEdl KWmancMnYn 4 Fatu . ehIyGkkGacTTYlnUv


Faturbs; array cugeRkay)anedaykareRbInUv end() function EdlTamTarRtwmEt argument
mYy b:eu NaH . ]TahrN_ print end($users);
6. Looping Through an Array >
foreach statement KWCaviFIsaRsmYyya:gRbesIredIm,I loop ral;Fatunimy
Y EdlmanenA kg array .
GkGaceRbIR)as;nUv foreach statement dUcxageRkam
count()

foreach( $arr as $temp )


{

>>>>>>>>>>

//...

>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 30

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

KWCa array EdlGkRtUv loop ehIy $temp KWCa variableEdlGknwgRtUvrkSarTukCabeNaHGasn nUvFatunimYy


kg RKa loop . kUdxageRkamKWCakarbegIt array mYyehIyeyIg eRbI foreach statement edIm,IykFatunmi Yymk
bgajelI browser .
]TahrN_ 26
$arr

<html>
<head>
<title>Looping throught array</title>
</head>
<body>
<h2>Looping througth array</h2>
<?php
$users = array ("Sok", "Som", "Mab", "Mab" );
foreach ( $users as $val )
{
print "$val<br />";
}
?>
</body>
</html>

]TahrN_ 27
<html>
<head>
<title>Looping throught array</title>
</head>
<body>
<h2>Looping througth array</h2>
<?php
$users[]="Sok";
$users[]="Som";
$users[]="Mom";
$users[]="Mab";
foreach( $user as $val )
{
print "$val<br/>
}
?>
</body>
</html>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 31

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

6.1 Looping Through an Associative Array

edIm,IeRbIR)as;nvU foreach statement CamYy


foreach statement dUcxageRkam
foreach( $arr as $key=>$value ) >

>

assosciat array

TaMg

keys

nig

values

GkGaceRbIR)as;CamYynwg

{
//...

>>

KWCa array EdleyIgnwgRtUv loop ehIy $key KWCa variable EdlpknUv key nimYyCabeNaHGasn ehIy
$val KWCa variable EdlpknUv value rbs; array nimYyCabeNaHGasnkg
RKa loop mg .
]ThrN_ 28
$arr

01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:

<html>
<head>
<title>Looping thought associate array</title>
</head>
<body>
<h2> Looping thought associate array</h2>
<?php
$character = array ("name" => "Sao",
"occupation" => "Student",
"age" => 12,
"Adr" => "Phnom Pehn");
foreach ( $character as $key=>$val )
{
print "$key = $val<br />";
}
?>
</body>
</html>

Edl)anbegtI enAbnat;T1I 1 ehIyeRbIR)as;nUv foreach statement enAbnat;TI 15


edIm,I loop nUvFatuEdlCatMl nig key rbs;va . ral; key nimYyRtUv)anpkenAkg
pl;eQaHeGayfa $key nig ral; value nimYyRtUv)anpk enAkg variable Edlpl;eQaHfa $val
ehIyRtUv)anbgajCalTpleTAkan; browser enAbnat;TI 17 .
Array

Developing web Application with PHP

Prepare By: DY CHANDOEUN

variable

Edl

Page 32

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

>
array_merge()
mantYnaTIpMnvU Faturbs; array BIr b array eRcInbBalKa rYcplC; a Array
fmI YyeTotEdlCabnM nFatu array TaMgGs;enaH. ]TahrN_xageRkamKWCa]TahrN_nkarbegtI nUv array BIr KW
array $arr1 nig array $arr2 ehIyeFVIkarbBalKarvagFatun array TaMgBIrrYcplt
; MlTaMgenaHeTAeGay
$arr3 bnab;mk loop ral;FatuEdlmanenAkg
$arr3 .
7. Joining Two Arrays with array_merge()

]TahrN_ 29
array_merge.php

>

<html>
<head>
<title>Joining Two array with array_merge()</title>
</head>
<body>
<h2>Using array_merge()</h2>
<?php
$arr1 = array("a", "b", "c");
$arr2 = array(1,2,3);
$arr3 = array_merge( $arr1,$arr2 );
foreach ( $arr3 as $val )
{
print "$val<br />";
}
?>
</body>
</html>
$arr3
statement

array

nwgbgajnUvbnMnFatu
.

array

pk nUvral;FatuEdlmanenAkg

$arr1

nig

( 'a', 'b', 'c', 1, 2, 3 )

$arr2

array

foreach

CamYynwg <br/> enAcenaHFatunimYy

>
array_push()TTYlyknUv array nig tMlepSgBI parameters EdltMlTaMgenaHKWCaFatuEdlnwgRtUvbEnmeTAeGay
array . array_push() function
minmanlkNdUc array_merge()enaHeT BIeRBaH array
EdlbBan eTACa argument dMbgU nwgRtUvERbRbYl ehIy array_push() nwg pl;mkvijnUvtMlsrubTaMgGs
;EdlmanenAkg array enaHvij .
8. Adding Multiple Variables to an Array

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 33

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

]TahrN_ 30
01:
02:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:

<html>
<head><title>Adding Muliple variables to an Array</title></head>
<body>
<?php
$arr1 = array ("a", "b", "c");
$total = array_push( $arr1,1,2,3);
print "There are $total elements in \$arr1 ";
foreach ( $arr1 as $val )
{
print "$val<br/>";
}
?>
</body>
</html>

\LvenH $arr1 )anbEnmnUvFatuCa integer cMnnY bIFatu Edl)anmkBIkareRbIR)as;nvU array_push() function


dUecH $arr1 pk nUvtMlsrubcMnYn 6 FatuehIyRtUv)anbgajnUvFatunmi YyeTAkan; browser edaykUdEdlmanenAkg foreach
statement .
cMNaM eyIg)aneRbInvU backslash eBlEdl print Ca string "------\$arr1" enAbnat;TI 10
RbsinebIGkeRbInUv nimits BaaenABImuxBak b XaNamYyenaH PHP nwgbBalCatMleTAeGayeTAtameQaH variable .
]TahrN_ xagelIeyIgcg;bgajnUv string '$arr1' EdlminEmnCatMlrbs; variable enaHeT dUecHedIm,I print nUv
special character ($) eyIgRtUvEteRbInUv backslash (\)
enABImux . RbsinebIGkcg;bEnmFatueTAeGay array ehIyCaFatudMbgU eTotenaH GkGaceRbIR)as;CamYynwg
array_unsift() .
]TahrN_ 31
<html>
<head>
<title>Using array_unsift() </title>
</head>
<body>
<h2>Using array_unsift()</h2>
<?php

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 34

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

$arr1 = array ("a", "b", "c");


$total = array_unshift( $arr1, 1, 2, 3 );
print "There are $total elements in \$arr1 ";
foreach ( $arr1 as $val )
{
print "$val<br/>";
}
:
?>
</body>
</html>

\LvenH $arr1 array pknUvtMl 1, 2, 3, "a", "b", "c" .


>
array_shift() mantYnaTIykecjnUvFatuTImy
Y n array .sUmBinit ]TahrN_xageRkam
]TahrN_ 32
9. Removing the First Element of an Array with array_shift()

<html>
<head>
<title>Remove first array element with array_shift()</title>
</head>
<body>
<h2>Using array_shift()</h2>
<?php
$user=array("M","U","T","H");
$total=count($user);
echo "Before use array_shift() threre are $total element<br/>";
foreach($user as $val)
{
echo "$val <br/>";
}
array_shift($user);
$total=count($user);
echo "after use array_shift() there are $total element</br>";
foreach($user as $val)
{
print "$val <br/>";
}
?>>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 35

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

</body>
</html>

>
array_slice() GnuBaateGayGkTajykcMnYnnFatu array EdlTamTareGayGkpln
; vU
argument cMnYnbI TImYyKWCa array variable
TI2CaTItaMEdlRtUvcab;epImyk nigTIbI KWCacMnnY Fatu rbs; array
EdlRtUvkarehIy argument TIbIenHKW (optional) RbsinebIGkmineRbInvU argument enHeT array_slice()
nigcab;yknUvFatuTaMgGs;n array cab;BITItaMgEdlGk)anpl;CatMlenA kg argument TI1mk.
]TahrN_ 33
10. Slicing Arrays with array_slice()

<html>
<head><title>Using array_slice()</title>
</head>
<body>
<h2>Using array_slice()</h2>
<?php
$first = array ("a", "b", "c", "d", "e", "f");
$second = array_slice($first, 2, 3);
foreach ( $second as $val )
{
print "$val<br />";
}
?>
</body>
</html>

kUdEdlbegtI enA]TahrN_ 33 nwgbgajnUvlTpl 'c', 'd', nig 'e' EdlCaFaturbs;


$secend bnab;BIeRbInvU array_slice() edayykFatuTaMgGs;rbs; $first .
11. Sorting Arrays >
11.1 Sorting Numerically Indexed Arrays with sort() >
sort() TTYlyknUv argument mYyEdlCa array ehIyeFVIkartMerobvaeTAtamlMdab;ntY GkSrbBItUceTAFM
]TahrN_ 34 KWCakarbegIt array edaypl;nUvtMlCa string eTAeGaybnab;mkeyIgeRbI
sort()
edIm,IteM robFatuTaMgenaHBI A-Z b BItUceTAFM rYcbgajCalTpleTAkan; Browser .

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 36

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

sUmBinitkg ]TahrN_ 34
<html>
<head><title> sorting array with sort() function</title>
</head>
<body>
<h2>Using sort() function </h2>
<?php
$s_array = array ("Bayon", "Taprom", "Angkor", "Presh vihear");
sort( $s_array );
foreach ( $s_array as $var )
{
print "$var<br />";
}
?>
</body>
</html>

GkkGacpas;br nUvlMdab;nkartMerobFaturbs; array BIldM ab; tUceTAFM b BIldM ab;FM eTAtUcvijedaykareRbInUv


rsort(). sUmkMuBayameRbI sort()b rsort() CamYy associate array BIeRBaH vanwgeFVIeGayGk)at;bg;nvU key rbs; array .
11.2 Sorting an Associative Array by Value with asort() >
assort() TTYlyk argument EdlCaRbePT associate array ehIyeFVIkartMerobtMl rbs; array enaHBI A-Z b
CatMlelx BItUceTAFM GaRsyeTAelIRbePTntMl .
]TahrN_ 35
<html>
<head><title> sorting an associate array by value with assort() </title>
<head>
<body>
<h2>sorting an associate array by value with assort()</h2>
<?php
$first = array("Cocacola"=>3,"Pepsi"=>2,"Fanta"=>1);
echo "<b>an associate Array before use asort </b> <br/>";
foreach ( $first as $key => $val )
{

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 37

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

print "$key = $val<br />";


}
echo "<b>an associate Array after asort </b><br/>";
asort( $first );
foreach ( $first as $key => $val )
{
print "$key = $val<br />";
}
?>
</body>
<html>

sMrab;karbrlMdab;nkartMerobBItUceTAFM b BIFeM TAtUc GkGaceRbIrnUv arsort() .


11.3 Sorting an Associative Array by Key with ksort() >
ksort() TTYlnUv argument EdlCa associate array ehIyeFVk
I artMerobtMl rbs;va nimYyeTAtamlMdab;BI AZ b Caelx BIFeM TAtUc edayGaRsyeTAelI key rbs; array enaH .
]TahrN_ 36
<html>
<head><title> sorting an associate array by key with assort() </title>
<head>
<body>
<h2>sorting an associate array by key with kssort()</h2>
<?php
$first = array("Cocacola"=>3,"Pepsi"=>2,"Fanta"=>1);
echo "<b>an associate Array before use ksort </b> <br/>";
foreach ( $first as $key => $val )
{
print "$key = $val<br />";
}
echo "<b>an associate Array after use ksort </b><br/>";
ksort( $first );
foreach ( $first as $key => $val )
{
print "$key = $val<br />";
}
?>
</body>
<html>
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 38

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

GkkGacps;br lMdab;nkartMerob BIFMeTAtUv b BI Z-A vijedayeRbI krsort() .

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 39

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

[[

Object

1. What Is an Object ?

KWCa bNM n variables nig functions EdlzitenAkg template BiessmYyEdl eKehAfa class .
object lak;nvU tMeNIrkarEdlmanenAxagkg
BIkareRbIR)as;va edayplC; a Interface sMrab;eGayGkbBan nUv
bBaaredIm,ITTYlBtmanRtlb;mkvij . interface TaMgenaHKWCa Function BiessEdleKeGayeQaH methods ehIyral;
methods TaMgGs;n object KWRtUvEt Access eTAkan; special variable ehAfa properties.
KuNsm,tri bs; object-oriented code KWpl;nUvkarkat;bnykarsresrkUd dEdlBIeRBaH class Edl)an
begtI Ca object manPaBgayRsYlykeTAeRbIR)as;BI project mYyeTAkan;Project mYyepSgeTot .
bEnmBIenHvamanlTPaBbegIt nUv child classes Edl inherit ehIynwgOverride nUvlkNepSgBI parents class .
Object

2. Creating an Object

edIm,IbegtI object mYyGkRtUvEterobcMnUv template mYyedIm,IeGayvaGac instantiated Edl template enHKWCa


class enAkgPasa PHP edIm,IRbkas class mYyGkRtUvEteRbI class Keyword .
class Person
{
// a very minimal class
}

KWCamUldandsMxan;mYyEdlGkGac instantiate ral;tMlnimYyBIPersonObject . edIm,IbegIt


instance mYyn object GkRtUvEteRbI new statement .
Person class

$obj1 = new Person();


$obj2 = new Person();

>
>

print "\$obj1 is an ".gettype($obj1)."<br />";


print "\$obj2 is an ".gettype($obj2)."<br />";

>
>

GkGac test nUv $obj1 nig $obj2 CamYynwg gettype() function . gettype
nimYyehIypl;Ca string mkvijEdlR)ab;GkGMBIGEVI dlGkkMBgu EteFVIkarCamYy .

function

TTYltMlVariable

3. Object Properties

Edl access eTAkan; special variable RtUv)aneKehAfa properties . GkGacRbkasnUv special


variable TaMgenaH)anenARKb;Tk
I EngTaMgGs;n class b:uEnedIm,IeGaymanPaBgayRsYlGkKYrEtRbkas;vaenAxagelI .
sMrab; property mYyvaGacCa value b Ca array b CaObject epSg .
class Person >
Object

{
var $name = "Vichet";
}

>

>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 40

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

eyIg)an declared nUv variable CamYynwg var keyword EdlenHKWCaviFIsaRsEtmYyKt;edIm,I declare nUv property
mYyenAkgPasa PHP 4 eyIgnwgeXIjBIlkNbEnmrbs; PHP 5 enA]TahrN_eRkayeTot .
dUecHRbsinebIGkcg;sresrkUdeGay compatible CamYy PHP 4 enaH GkRtUvEteRbI var keyword.
\LvenH Person objet Edl)anbegtI KWmanpk nUv property mYy EdleGayeQaHfa $name
CamYynwgtMlrbs;vaKW
"Vichet" . GkGac access nUv
property enH BIxageRkA object
nigeFVIkarpas;br tMlrbs;vaedayeRbI]TahrN_ 37 .
<?
class Person >
{
var $name = "Vichet"; >
}
$obj1 = new Person(); >
$obj2 = new Person(); >
$obj1->name = "Soporn"; >
print "$obj1->name<br />"; >
print "$obj2->name<br />"; >
?>

enHGnuBaateGayGkeFVIkar access b pas;brnUvtMlrbs; propertiesnObject .


eyIg)anpln; vU tMl "Soporn" eTAeGay $name property tamry $obj1->name .
4. Object Methods >
Method KWCa function Edl defined enAkg class . RKb; object Edl)an instantiatedBI class EtgEtman
methods Canic eyIgnwgbEnmnUv method mYyeTAeGay Person class enA
]TahrN_ 38 .
( -> ) operator

01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:

<?php
class Person
{
var $name = "Vichet";
function getName()
{
return "Ratana";
}
}
$person = new Person();
print $person->getName();
// outputs "Ratana"
?>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 41

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

dUcEdlGk)anCYbRbTHmkehIyGMBI method n]TahrN_ 37 EdlemIleTAvamanlkNdUcKaeTAnwg


function FmtaEdr . GkGac call object method edaykareRbIR)as;nimt
i sBaa ( -> ). method Edl)an access
eTAkan; member variables n class xagelI)an return nUv string "Ratana" EdlenHminEmnCakarGnuvtnE_ dlRtwmRtUv
enaHeT method KYrEt return tMlEdl copy BI $name property nwg minEmnCa string literal.
Gkk)ansal;rYcmkehIyGMBIkaraccess a property BIxageRkA object b:Eu netIRtUveFVyI a:gNaedIm,I refer vaenAxagkg class
xng? sUmBinitemIl]TahrN_ 39 .
5. Accessing a Property from Within a Method

>

]TahrN_ 39
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:

<html>
<head><titile>Accessing a property from within a method</title>
</head>
<body>
<h2>Accessing a property from within a method</h2>
<?php
class Person
{
var $name = "Thary";
function getName()
{
return $this->name;
}
}
$person = new Person();
$person->name = "Bopha";
print $person->getName();
//outputs "Bopha"
?>
</body>
</html>

Edl)anbegtI kg]TahrN_ 39 eyIg)aneRbIR)as;nvU special variable $this edIm,I refer eTAkan;


current instantiated object enAbnat;TI 15 KW $name . object Edl refereTAkan;xngRtUvEteRbI $this variable
Pab;CamYysBaa ( -> ) edaykareRbIviFIenHGkGac accessral; property b method EdlzitenAkg class xng.
GkGacKitfacg;eGay object mannUvtMln $name property epSgKa edayGkGaceFVkI arerobcMnUvtMlrbs; $name
property dUcEdl)anGnuvtn_enAkg
]TahrN_ 39 b GkGacbegItCamethod sMrab;eFVkI arCamYyvadUcmanbgajkg
]TahrN_ 40 .
Class

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 42

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

6. Changing the Value of a Property from Within a Method

>

]TahrN_ 40
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:

<html>
<body>
<head><title>Changing the value of a property from within a method</tile>
</head>
<body>
<h2>Changing the value of a property from within a method</h2>
<?php
class Person
{
var $name = "tepy";
function setName( $n )
{
$this->name = $n;
}
function getName()
{
return $this->name;
}
}
$person = new Person();
$person->setName("darya");
print $person->getName();
// outputs "darya"
?>
</body>
</html>

n object cab;epmI edaytMl string "tepy"enAbnat;TI12 b:uEnbnab;BI setName() method


RtUv)anehAenAbnat;TI 26 tMlrbs;vaRtUv)anbr eTACa "darya" vij . Object KWmanlTPaBpas;br nUv property
rbs;xn g)an ehIysMrab;karbBan nUv arguments eTAkan; method vijKWGkGaceRbInUvviFI dUcEdlGkGnuvtn_vaCamYy
function FmtaEdr .
7. Object Constructors >
enA]TahrN_muneyIg)aneRbIR)as; method mYyeQaHfa setName() edIm,IeFVIkarpas;br tMlrbs; $name
property ma:gvijeTot karpl;nUvtMltMbg
U sMrab; $name property enAkg Class KW hard-code .var $name = "tepy";
>
RbsinebIeyIgKitfa $name property pk nUvtMlepSgKa ral;eBlEdl instance n Person class
eyIgGaceFVeI Gaykan;EtRbesIrCagmunedaykar set $name property enAeBlEdl Object RtUv)an initialize.
eyIgGaceRbIR)as; special function EdleKeGayeQaHfa constructor edIm,I set properties
$name property

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 43

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

nigbMeBjkargarepSgeTAtamtMrvU karnkargar. constructor KWRtUvehAeday sVy RbvtienAeBlEdl object RtUv)an


instantiated edaykareRbIR)as; new keyword .
GkGacbegItnUv constructor tamviFsI aRsBrI ya:g TI1 KW constructor EdlCa functionmaneQaHdUc class .
]TahrN_ 41 nwgbEnmnUv constructor samBamYyeTAeGay Person Class EdlkUdxageRkamenHeRbIR)as;)ansMrab;Et
PHP 5 b:ueNaH .
]TahrN_ 41 A Class with a Constructor
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:

<html>
<head>
<title>A Class with a Construct</title>
</head>
<body>
<h2>A Class with a Construct</h2>
<?php
class Person
{
var $name;
function Person($name="tepy")
{
$this->name = $name;
}
function setName( $n)
{
$this->name = $n;
}
function getName()
{
return $this->name;
}
}
$person = new Person("darya");
print $person->getName ();
// outputs "Darya"
?>
</body>
</html>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 44

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

bnat;T1I 4KWRtUv)anehAedaysVyRbvtei nAeBlEdleyIgInstantiate nUv Person


object bnat;T2
I 9 eyIgk)anerobcMnUvtMl default mYyCa string "tepy" pl;eTAeGay parameter pgEdr
vaKWCakarCMnYseGay xNEdleyIgmin)anplC; a argument enAeBlEdleyIgbegIt Object.
PHP 5 )anbgajnUv syntax fm
I YyedIm,IbegIt constructor methods edayCMnsY eGaykareRbIR)as;nUv function
EdlmaneQaHdUc class mkCakareRbI special syntax fKI W__construct()dUecHeyIgGaceFVkI arpas;brbnat;TI5n
]TahrN_xagelI mkeRbInUv syntax fIedayeFVIkarCMnYsnUv function Person() mkeRbI __construct() vij.
Person() constructor method

>

function __construct( $name="tepy")


{
.
}

8. Limiting Access to Object Properties

>

min)anpl;nUvkar karBarsMrab; object properties enaHeT Client code Gac getb set object
properties)aneTAtamkarKitrbs;BYkeK.mansMnYrsYrfaetImanbBaaGVeI TkgkarGnuvtn_EbbenH? vaminmanCabBaakg
kareRbI
R)as;nvU Public accessible properties enaHeT Edl CaTUeTA vaCakarGnuvtns_ Mrab;kar access eTAkan; object
EdlmanlkNtUc. enA]TahrN_xag eRkameyIgnwg)aneXIjnUvlkN
mYyEdlkMNt;nUvRBMEdnnkar access eTAkan;
$name propertyrbs; Person class .
]TahrN_ 42 Class with Public Properties
PHP 4

01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:

<?php
class Person
{
var $name;
var $pid;
var $personStr;
function Person( $name="somphy", $pid=0 )
{
$this->name = $name;
$this->pid = $pid;
}
function setName( $n )
{
$this->name = $n;
$this->$personStr=$this->name." ".$this->pid;
}
function getName ()
{
return $this->name;
}
}
$person = new Person("sovan",5233);
print $person->PersonStr();
// outputs "sovan 5233"

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 45

28:
29:
30:

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

print "<br />";


$person->name = "makara";
?>

pl;nvU viFIsaRsepSgedIm,I declare nUv properties rbs;eyIgedaykarCMnYsnUv Var keyword mkeRbInUv


keywords fm
I Yykg cMeNam keyword TaMgbI EdlmanlkN Rsedog eTAnwg programming Java eyIgnwgbgajBIkar
declarenUv property feI nHenAkg
taragxageRkam
PHP 5

PHP 5 Property Declaration Keywords

Privacy Level

Description

public

Accessible to all. Equivalent to var.

private

Available only to the containing class.

protected

Available only to the containing class and subclasses.

dUecHeyIgGacpas;br
keyword vij .

rbs;eyIgEdlmanenAkg]TahrN_xagelIedayeRbIprivate CMnsY eday

properties

var

ex.
private $name;
private $pid;

>

>

\LvenHkarBayampas;br nUvtMlrbs;
message dUcxageRkam .
Fatal

error:

Cannot

access

classPrivateProperty.php on line 30

$name property

private

property

n Person object enAbnat;TI 30 nwgbgajnUv error


Person::$name

in

c:\Inetpub\wwwroot\

>

dUecH Client coders RtUvEteRbIR)as;nvU setName() method edIm,IeFVkI arEkERbeTAelItMlrbs; $name property .
maneBlNamYyGkRbEhlCacg;eGay child classes Gac accsess eTAkan; property
EdlenAkg eBlenaHGkKYrEteRbInUv protected keyword eRBaHvaGnuBaateGayGk accesse vaBClass EdlGk)an
derived ehIyeyIgnwg)aneXIjvaenAkg
EpkmYyEdlniyayBI Inheritance .
9. Limiting Access to Object Methods >
lkNsMxan;n object-oriented code KWCa class . Object RtUvEtkMNt;nUvmuxgarnig Public interface
eGay)anc,as;las;enAeBlGkbegItnUv methods epSg .bMENkEdlmanenAkg classKWpknUvmuxgarepSgsMrab;tM
eNIrkardUecHGkKYrEtlak;nUvmuxgarTaMgenaHBIBiPBxageRkA. sMrab;Ca]TahrN_xagelIeyIgKYrEtbegtI nUv method
sMrab; $personStr property BIeRBaHral;tMeNIrkarTaMgGs;rbs; $personStr RtUv)anpkenAkg setName() method .
function setName( $n )
{
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 46

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

$this->name = $n;
$this->$personStr=$this->name." ".$this->pid;

>
GkRbEhlCaRtUvkarnUv method edIm,I reset nUv string rbs; $personStr dUecHeyIgnwgbegtI nUv
Method fm
I YysMrab; pl;tMleTAeGay $personStr property .
}

function setName( $n )
{
$this->name = $n;
$this->makePersonStr( $n, $this->code );
}
function makePersonStr( $string , $code)
{
return $this->personStr = "$string $code";
}

\LvenHeyIgenAEtmanbBaaenAeLIyCamYynwg method rbs;eyIg BIeRBaH client code enAEtGacAccess nUv


makePersonStr() method ehIyvaGaceFVI Tinn
y rbs;eyIgmankarBi)ak RKb;RKg . eyIgcg;eGayRtwmEt object
EdlCaGkbegItnUv property EtmYyKt;EdlmansiT Access mk kan; property enH enAkgCMnan;rbs; PHP 5
eyIgGacpln; vU lkN pravicy eTAeGay methods dUcEdleyIg)anGnuvtn_CamYynwg private property BI]TahrN_mun .
private function makePersonStr($string , $code) >
{
// ...
}

\LvenH makePersonStr() function Gac access )anEtenAkg method TaMgLayNaEdlzitkg Person class
b:ueNaH .
Public, protected ehIynwg private vatMeNIr)anEtCamYynwg PHP 5 Etb:eu NaH dUecHRbsinebIGkBayam
eRbInUv keyword TaMgbIenHCamYy PHP 4 enaH script rbs;GknwgRtUvbraCyTaMgRsug .
10.Inheritance
>
edIm,IbegtI class mYyEdlGac inherits function BI parent class eyIgRbEhlCaRtUvEkERbnUvkar declare class
rbs;eyIgbnicbnc . ]TahrN_fIxageRkamenH KWCakarbegItnUv Item Class ehIynig begtI nUv inheriting class
Edlple; QaHfa PriceItem .
]TahrN_ 43
Creating a Class That Inherits from Another
01:
02:
03:
04:
05:
06:
07:

>

<html>
<body>
<h1>Creating Class That Inherits from Another</h1>
<?php
class Item
{

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 47

08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:

21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:

class PriceItem extends Item


{

}
$item = new PriceItem( "Angkor", 4545 );
print $item->getName ();
// outputs "Angkor"
?>
</body>
</html>

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

var $name;
function Item( $name="item", $code=0)
{
$this->name = $name;
$this->code = $code;
}
function getName()
{
return $this->name;
}

eyIg)anbegtI nUv class mYyeTotEdlmaneQaHfa PriceItem enAbnat;TI 21 . KYrcMnaM


fa extends clause EdleRbIR)as;enAxagkg kar declare class enAbnat;TI21 enHmannyfa PriceItem object
inherits ral; function TaMgGs;EdlmanenAkg Item class dUecH PricteItem Object nimYyKWmanlTPaB access
eTAkan; getName() method b $name property b:uEn kGaRsyeTAelIkareRbIR)as;nUv privacy settings pgEdr .
edaysarEteyIgBMu)anbegtI nUv Constructor method sMrab; PriceItem class dUecHetI $name property
vaGaceFVIkarpas;pr tMl BI default "item" eTACa "Angkor" edaybBan eTAtam PriceItem )any:agdUcemc ?
BIeRBaHeyIg
BM)u anpl;nUv contructor enAkg PriceItem enaHeT dUecHRbsinebI class Edl extend BI class dT
eTotminmannUv constructor method enaH contructor EdlCarbs; parent class nwgRtUv)an
ehAedaysVy RbvtienAeBlEdl child object cab;epmI bgIteLIg .
11. Overriding the Method of a Parent Class >
enAkglkNn object-oriented kUdrbs; child classes Gac override methods BI Parents class
nwgGnuBatieGay objects Gac instantiated BI parent class .
The Method of a Child Class Overriding That of Its Parent >>
]TahrN_ 44
01:

<?php

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 48

02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

class Item
{
var $name;
function Item( $name="item", $code=0)
{
$this->name = $name;
$this->code = $code;
}
function getName()
{
return $this->name;
}
}
class PriceItem extends Item
{
function getName()
{
return "(price)."$this->name;
}
}
$item = new PriceItem( "widget", 5442 );
print $item->getName();
// outputs "(price) Angkor"
?>

EdlbegtI enAkg PriceItem class enAbnat;TI 20 RtUv)anehA


edayeRbIR)as;nUv $name property rbs; parent class EdlenAcMnucenHeyIgKYrEteFVIkarsMerccit
begtI nUv $name property EdlmanenAkg Item class Ca private .
getName() method

class Item
{
private $name;
// ...
}

karpas;br nUv]TahrN_xagelIeFVIeGaylTplmanPaBERbRbYldUcxageRkamlTplEdlTTYl)anmuneBleFVIkarpas;br KW (price) Angkor lTplfEI dlnwgTTYl)anKW (price) \LvenH PriceItem


class minGac access eTAkan; $name property eTot)aneT b:uEnRbsinebI Child class RtUvkar access eTAkan;
methods b property n ancestor classes eyIKYrEteRbInvU Protected keyword CMns
Y eGay private vij .
12. Calling an Overridden Method >
maneBlxH function EdlmanenAkg parent class GacmanplRbeyaCn_sMrab;Gk dUecH
sMrab; Object-oriented-programmingGnuBaatieGayGk refer eTAkan; parent class edayeRbInUv
parent keyword . ]TahrN_xageRkamenH getName() method EdlzitenAxagkg
PriceItem
Class nwg call nUv method enAkg Item class Edl)anRtUv override.
Calling an Overridden Method (PHP 5 Syntax) >
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 49

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

]TahrN_ 45
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:

<?php
class Item {
private $name;
function __construct( $name="item", $code=0 ) {
$this->name = $name;
$this->code = $code;
}
function getName() {
return $this->name;
}
}
class PriceItem extends Item {
function getName() {
return "(price) ".parent::getName ();
}
}
$item = new PriceItem ("widget", 5442);
print $item->getName();
// outputs "(price) widget"
?>

eyIg)aneFVkI arCamYynwg getName() method enAkg PriceItem class bnat;TI 17 .


PriceItem class mineFVk
I arpal;CamYynwg $name property rbs; Item class enaHeT dUecHenAcMncu enHeyIgGac declare
$name
property
Ca
private
EdlmineFVIeGaymanplb:HBal;CamYynwg lTplenaHeT
ehIyRbsinebIeyIgeRbIvaCamYynwg PHP 5 eTotenaH vaKWCakarGnutn d_ l edIm,I Lock nUv methods nig property
rbs;eyIg .
13. Working with Constructors >
eyIgFab;)aneXIjmkehIyfa constructor rbs; parent class nwgRtUv called edaysVy
RbvtRi bsinebI child class min)anbegItnUv constructor sMrab;xnvaenaHeT . eyIgnwgbEnmnUv
Constructor method eTAeGay PriceItem class rbs;eyIgCamYynwg]TarhN_xageRkam .
]TahrN_ 46 Adding a Constructor to PriceItem
01:
02:
03
04:
05:
06:
07:
08:
09:
10:
11:

<?php
class Item
{
private $name;
function __construct( $name="item", $code=0 ) {
$this->name = $name;
$this->code = $code;
}
function getName () {
return $this->name;
}

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 50

12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

}
class PriceItem extends Item
{
private $price;
function __construct( $name, $code, $price ) {
parent::__construct( $name, $code );
$this->price = $price;
}
function getName() {
return "(price) ".parent::getName ();
}
}
$item = new PriceItem ("widget", 5442, 5.20);
print $item->getName ();
// outputs "(price) widget"
?>

eyIg)anbegtI nUv constructor method enAbnat;TI16 edIm,ITTYl argument sMrab;


$name nig $codeRBmCamYynwg argument fs
I Mrab; price. eyIg)aneRbIR)as; parent keyword
edIm,I call constructor rbs; Item class enAbnat;TI22 muneBlEdleyIgeFVIkarerobcMtMleGay
$price property EdlenHbgajeGayeyIgeXIjBIehtuplmYysMrab;eRbInUv syntax frI bs; PHP5 edIm,IbegIt contructor .
parent::__construct( $name, $code );

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 51

enAelI

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Form

pl;nUvlTPaBenkarbBannUvBtmanBIGk eRbIR)as;BI Client


eTAkan; Server . PHPRtUv)anrcnaeLIgedIm,IeFVIkarCamYynwgBtmanTaMgenaHenAeBlEdl HTML forms RtUv)an submit
.
1. User Input>
GkR)akdCacg;eGaykmviFIrbs;GkmanskmPaB b TMnak;TnM gCamYynwgGkeRbIR)as;kgxNeBlNamYy .
]TahrN_xaeRkamKWCakarbegItnUv Form mYyedIm,ITTYlnUvBtmanBIGk eRbIR)as;dUcCa first-name , last-name , date of
birth , email address nig password.
internet (world wide web ) Form

<html>
<head>
<title>Registration form </title>
</head>
<body>
<CENTER>
<h2>Registration Form</h2>
<hr width="50%">
<form method="GET" action="register.php" >
<table>
<tr><td>First-Name</td>
<td><input type="Text" name="txtFname"></td>
</tr>
<tr><td>Last-Name</td>
<td><input type="Text" name="txtLname"></td>
</tr>
<tr><td>Date of Birth</td>
<td>
<Select name="cboday">
<option value="01">01</Option>
<option value="02">02</Option>
<option value="03">03</Option>
</select>
<Select name="cbomonth">
<option value="01">Jan</Option>
<option value="02">Feb</Option>

>

<option value="03">Mar</Option>
</select>
<Select name="cboyear">
<option value="1980">1980</Option>
<option value="1981">1981</Option>
<option value="1982">1982</Option>
<option value="1983">1983</Option>
</select>
</tr>
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 52

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

<tr><td>E-mail</td>
<td> <input type="text" name="txtemail"></td>
</tr>
<tr><td align=right colspan=2> <input type="submit" value="Submit">
</td>
</tr>
<tr><td>Password</td>
<td> <input type="password" name="txtpwd" size=22></td>
</tr>
</table>
</body> </html>

enAbnat;EdleyIg)aneRbInvU form tage<form method="get" action="register.php">eyIg)aneRbInvU get method


EdlCa attribute dMbgU enAkg form tag . HTTP get method eFVkI arbBan TinnyBI form eTAtam URL
EdleFVIeGayTinn yTaMgenaHGacbgajenAelI address bar rbs; browser CaehtueFVeI GaylTplEdl)anBI form
GacRtUvrkSarTukCa bookmark . GkRbEhlCaRtUveRbI post method vijCakarRbesIrCag RbsinebIGkcg;
eRbIR)as;nUv passwordBIeRBaH POST eFVkI arbBan Tinn yEdlmanenAkg form eTAtam body n HTTP request dUcecH
Tinny TaMgenaHminRtUv)anbgajeGayeXIjCamYy URL b Ca bookmarked enaHeT .
edIm,I processes data BI form EdleRbI get method enAkg Script GkGaceRbICamYy $_GET bRbsinebIGkeRbI nUv post
method GkGaceRbICamYy $_POST b eRbI $_REQUEST GkGaceRbI)as;)anTaMgBIr method.
]TahrN_ kareRbIR)as; get method enAkg script
register.php
<html>
<body>
<head>
<title>Personal Information</title>
</head>
<center>
<h2>Personal Information</h2>
<hr width=50%>
<?php
$fname =
$lname =
$day =
$month =
$year =
$dob =

$_GET['txtFname'];
$_GET['txtLname'];
$_GET['cboDay'];
$_GET['cboMonth'];
$_GET['cboYear'];
$day."-$month"."-$year";

print "<table>";
print "<tr>";
print "<td><b>First-Name :</b></td>";
print "<td> $fname </td>";
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 53

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

print "</tr>";
print "<tr>";
print "<td><b>Last-Name :</b></td>";
print "<td> $lame </td>";
print "</tr>";
print "</table>";
?>
</body>
</html>

xageRkamKWCalTplEdlTTYl)anbnab;BI form RtUv)an submit edayeRbI


bar rbs; browser EdlBtmanbBanmkenaH RtUv)anPab;mkCamYynwg url

get mehod

. sUmBinitemIlnUv

address

]TahrN_ 49 kareRbIR)as; post method enAkg script


register.php
<html>
<body>
<?php
$fname = $_POST['txtFname'];
$lname = $_POST['txtLname'];
print "<table>";
print "<tr>";
print "<td><b>First-Name :</b></td>";
print "<td> $fname </td>";
print "</tr>";
print "<tr>";
print "<td><b>Last-Name :</b></td>";
print "<td> $lame </td>";
print "</tr>";
print "</table>";

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 54

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

?>
</body>
</html>

Gknwg)aneXIjBIPaBxusKarvagkareRbIR)as;nUv post method nig get method enAelI Address bar rbs;
brower nimy
Y . xageRkamKWCalTplEdlTTYl)anbnab; BI form RtUv)an Submit edayeRbIR)as;nUv post method .

>
]TahrN_ 49 pl;lTPaBeGayGkTTYlnUvBtmanBI HTML element Edl)an Submit
nUvtMlmYysMrab;Etelement mYyb:ueNaHEdlenHBMuTan;manlkNRKb;RKan;enAeLIyenaHeTRbsin ebIGkcg;eFVIkarCamYynwg
multiple select .
]TahrN_ 50
2. Accessing Form Input with User-Defined Arrays

01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:

<html>
<head>
<title>HTML Form with a 'select' Element</title>
</head>
<body>
<center>
<h2>Multiple Select</h2>
<hr width="50%">
<form action="multiple.php" method="POST">
<select name="products[]" multiple="multiple">
<option> Cocacola </option>
<option> Fanta </option>
<option> Sprite </option>
<option> Merinda </option>
<option> Pepsi </option>
</select><br><br>
<input type="submit" value="submit">
</body>
</html>

eyIgnwgbegIt script edIm,IEsVgrk input BI "products[]" form element EdlbegtI enAbnat;TI 12edaypl;eQaHCa array
indexed ehAfa
products. products[]KWCa select element Edlple; GaynUvCMerIssMrab;GkeRbIR)as;edaykareRbI
option element enAbnat;TI 13 dl; bnat;TI 17eyIgnwgbgajBIlTplEdlGkeRbIR)as;)aneRCIserIsBI form xagelI
EdlbegtI Ca array enAkg ]TahrN_ 51
01:
02:
03:

<html>
<body>
<head>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 55

04:
05:
06:
07:
08:
09:
10:
08:
10:
11:
12:
13:
14:
15:
16
17:
18:
19:

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

<title>Reading Input from the form multiple select</title>


</head>
<?php
if ( is_array( $_POST['products'] ) )
{
echo "<b>Your products choice are :</b><br/>";
foreach($_POST['products'] as $val)
{
print "$val<br>";
}
}
?>
</body>
</html>

enAbnat;TI 09 n ]TahrN_ 51 eyIgeFVIkarRtYtBiniteTAelI $_POST['products'] Element RbsinebI


element enHCa array eyIgnwg loop ral;Fatunimy
Y rbs;vaenAbnat;TI 10 edIm,I bgajCalTpleTAkan; Browser .
GkkGacGnuBaatieGayGkeRbIR)as; eRCIerIsnUvCMerIseRcInedayeRbI check boxes EdlRtUvpl;nUveQaHdUcKasMrab;
element nimy
Y ehIyPab;CamYy empty brakets . PHP nwg compiles nUvGVIEdlGkeRbIR)as;)an select eTACa array .
eyIgnwgeFVIkarpas;br BIkareRbI select element enA]TahrN_xagelI mkeRbI check boxes vijdUcmankg]TahrN_ 52.
]TahrN_ 52
<html>
<head>
<title>HTML Form with a 'select' Element</title>
</head>
<body>
<center>
<h2>Multiple Select</h2>
<hr width="50%">
<form action="multiple.php" method="POST">
<input type="checkbox" name="products[]" value="Cocacola" />Cocacola
<input type="checkbox" name="products[]" value="Fanta" />Fanta
<input type="checkbox" name="products[]" value="Sprite" />Sprite
<input type="checkbox" name="products[]" value="Merinda" />Merinda
<input type="checkbox" name="products[]" value="Pepsi" />Pepsi
<br><br>
<input type="submit" value="submit">
</body>
</html>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 56

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

multiple.php

]TahrN_ 52
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
08:
10:
11:
12:
13:
14:
15:
16
17:
18:
19:

<html>
<body>
<head>
<title>Reading Input from the form multiple select</title>
</head>
<?php
if ( is_array( $_POST['products'] ) )
{
echo "<b>Your products choice are :</b><br/>";
foreach($_POST['products'] as $val)
{
print "$val<br>";
}
}
?>
</body>
</html>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 57

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

MySql

>
MySql KWCaRbePT Open Source Sql databases management system EdlmanRbCaRbiybMpt
u sMrab;
kareRbIR)as; edayRtUv)anGPivDn_ngi KaMRTeday MySQL AB . MySQL AB KWCaRkumhnu EdlbegtI eLIg
edayRkumGkGPivDn_ MySql .
1.1 MySQL is a relational database management system. >
A relation databases KWrkSaTuknUvTinny
kg table epSgBIKaEdlmanlkNRbesIrCagkarrkSaTuknUvTinnyTaMg
Gs;enAkg storeroom dFmM Yy ehIyviFIenHGacCYybegnI el,n nig manPaBgayRsYleRbIkan;EtRbesIreLIgCamYy
nwgTinny . SQL KWCabMENkmYyn MySQL Edl eRbI CaBakeBjfa Structured Query Language SQL
KWCaPasaEdleRbIR)as;Ca standard edIm,I access eTAkan; databases ehIyRtUv)ankMNt;eday ANSI/ISO SQL
Standard .SQL standard
RtUv)anvivtn_eLIgenAkgGMLgqaM 1986 EdlbegtI )anCaCMnan;rbs; SQL-92
edaysMedAeTAelI SQL standard EdleFVkI ardak;ecjnUvCMnan;rbs;xnenAkg GMLugqaM 1992 nig bnab;mkKW SQL-1999
nigeRkaymkeTotKW SQL-2003 .
1.2 MySQL software is Open Source. >
Open Source KWmannyfaGkeRbIR)as;manlTPaBEkERbnUv software enaH)an ehIy GacTajyknUv
Software TaMgenaHenAelI Internet nigGaceRbIR)as;va edayminmankarbg;R)ak; eTAelIesvakmGT
VI aMgGs; . MySQL
software eRbIR)as; GPL( General Public License ) edIm,Ipl;eGayGknUvGVIEdlRtUvkar nig GVIEdlGkminRtUvkarcMeBaH
software enH . KWmannyfa RbsinebIGkminmanGarmN_Tukcit CamYynig
w GPL b Gkcg;bgbn; UvkUdeTAkg MySQL
edIm,IeFVCI aCommercial application GkGacTijnUvc,ab;GnuBaatieGayeFVBI aniCkmBIRkumhun MySQL Edl
BtmanlMGti GkGaceRbIR)as;nvU eKhTMBr (http://www.mysql.com/company/legal/licensing/)
1. What is MySql ?

>
EpkxageRkamnwgbgajBIkareRbIR)as; SQL commands enAkg MySQL context .
RKb; commands TaMgGs;suTEt)anTTYlsal;eday MySQL system kgGMLg eBlEdl design SQL databases
environment . command rbs; MySQL nimy
Y RtUvEtbBab;CamYynwgsBaa Semicolon ( ; ) .
show databases KWCa command dMbg
U EdleRbIedIm,IbgajnUveQaH database TaMgGs;EdlmanenAkg MySQL
kg enaHman database cMnnY BIrPab;mkRsab;CamYy MySQL package.
2. SQL commands in mysql

mysql> show databases;


+----------+
| Database |
+----------+
| mysql
|
| test
|

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 58

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

+----------+
2 rows in set (0.00 sec)

EdlmaneQaHfa mysql pknUv MySQL settings ehIynig


eyIgnwgbegIt database mYyeQaHfa BbuDb .
Database

users

epSg .sMrab;Ca]TahrN_

create database databaseName ;

>
eyIgGacBinitemIl database Edl)anbegtI xagelIedayeRbIR)as; show database command.
>mysql> show databases;
syntax : mysql>create database BbuDb ;

+------------+
| Database |
+------------+
| mysql
|
| BbuDb |
| test
|
+------------+
3 rows in set (0.00 sec)

edIm,Ilb;nvU database NamYyenaHGkGaceRbI SQL command : drop database databaseNameGkKYrRbugRbytpgEdr


cMeBaHkareRbIR)as; command enH BIeRBaHvanwgeFVIkarlb; database edayminmankarsaksYr b eFVkI arbBaak;BI
GkmgeToteLIy.SQL syntax EdleRbIedIm,IbegIt table eyIgnwgbgajCamYy]TahrN_xageRkam b:EnmuneBlEdleRbI
command enHGkRtUvEtkMNt;nUv database mYyeGayCak;lak;Camunsin edayeRbI command use:
mysql>use BbuDb ;. eyIgnig
w eRbI command edIm,IbegIt table Edlmanattributes dUcCa id , username , password ,
name nig email CamYynwg]TahrN_xageRkam .The general form of the syntax is:>
create table tableName ( col1Name datatype otherSettings, etc) >
>mysql> create table tblpeople
( id int(5) not null auto_increment ,
username varchar(20) binary not null,
password varchar(20) binary not null,
name
varchar(20)
not null,
email
varchar(30)
not null,
primary key(id)

>
ral; attribute nimYysuTEtRtUv)ankMNt;nvU cMMnYntYGkSrEdlRtUvrkSaTukenAkg table ehIy fieldnimYyn table
suTE tTamTareGaymannUvtMlCanic . cMENk id attribute tMlrbs;vaniwgRtUvekIneLIgedaysVy RbvtienAeBl
EdlTinnyRtUv)anbBaleTAkan; tblpeople mYyelIk .varchar KWCatMlEdleRbICatYGkSr bCatYelx cMENk
binary eKeRbIedIm,IeFVIeGaytMl eTACa case-sensitive rI name ehIy nig email attribute KWminRtUv)aneRbI binary
enaHeT dUecHvaminmanlkN case-sensitive eLIy . id KWRtUv)anbegItCa primary key sMrab; table edIm,I
identify row nimYyn table .
mysql> desc tblpeople ;>
);

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 59

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

>

+----------+-------------+------+-----+---------+--------------+
| Field
| Type
| Null | Key | Default | Extra
|
+----------+-------------+------+-----+---------+--------------+
| id
| int(5)
|
| PRI | NULL
|auto_increment
| username | varchar(20) |
|
|
|
| password | varchar(20) |
|
|
|
| name
| varchar(20) |
|
|
|
| email
| varchar(30) |
|
|
|
+----------+-------------+------+-----+---------+--------------+
5 rows in set (0.01 sec)

>

bnab;BImkeTotGkGaceRbIR)as; insert command edIm,IbBalTinnyeTAkg table .


]TahrN_
mysql>insert into tblpeople values (null, 'muth', ' muth07 ', 'monen', ' muth_monen@hotmial.com ');

mysql>insert into tblpeople values(null, 'lou', ' army ', ' lou cy ', ' lou_cy@gmail.com ');

>

enAeBlEdl id attribute Ca auto_increment eyIgeRbI null sMrab;Ca data entry Edl null Value
minmanlkNdUcnwg blank (" ") enaHeT . id attribute cab;epmI edaytMlCa integer 1 ehIyvanwgeFVIkarbegIntMl 1
nenAeBlEdlmankarbBal Tinny eTAkan; row fmI g. GkGacBinitemIlBtman TaMgGs;EdlmanenAkg
tablebnab;BI)anbBaledayeRbIR)as; SQL command mysql>select * from tblpeople ; >
+----+----------+----------+------------+---------------------+
| id | username | password | name
| email
|
+----+----------+----------+------------+---------------------+
| 1 | muth
| muth07
| monen
|muth_monen@hotmail.com |
| 2 | lou
| army
| lou cy
|lou_cy@gmail.com
|
+----+----------+----------+------------+---------------------+
2 rows in set (0.00 sec)

edIm,Ilb;nvU table NamYyecjBI database GkGaceRbI command :mysql> drop table tableNamesMrab; command
EdleRbIedIm,Ilb; row BI table TamTareGayGkpln; vU eQaHn table ehIynigwhere condition EdlbBaak;BI row(s)
EdlnwgRtUvlb; .
delete from tableName where Where-condition

sUmRbugRbytRbsinebIGkmineRbI
where-condition
enaHeT RKb; rows TaMgGs;EdlmanenAkg table
nwgRtUvlb;ecalTaMgGs;. enAkg ]TahrN_xageRkameyIgnwgeRbItM lrbs; attribute name nig username edIm,Ilb; row
ecjBI table tblpeople .
delete from tblpeople where name= monen and username = muth ;>
UPDATE command RtUv)aneRbIedIm,IEkERbBtmanEdlmanenAkg table GkGac select yk
BtmanNamYymkEkERbBtmanedayminmankar)at;bg;nvU record b row edImTaMgRsugeLIy .
The syntax is:
UPDATE table-name SET field1=val1, field2=val2, field3=val3
WHERE condition;
ex.
update tblpeople set password=maco where username=muth ;

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 60

3. PHP/MySQL Functions

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

>

>
muneBlEdlcab;epmI eFVIkarCamYynwg database rbs;Gk GkRtUvEt connect eTAkan; Server Camunsin .
PHP pl;nUv mysql_connect () function edIm,IGnuvtn_nUvParkicenH .
bMENkkUdxageRkamnwgbgajBIkareRbIR)as; mysql_connect() Pab;eTAkan ; MySQL database Server .
3.1 Connecting to MySQL

$link = mysql_connect( "localhost", "root", "123" );


if ( ! $link )
{
die( "Couldn't connect to MySQL" );
}

3.2 Selecting a Database

>

bnab;BI)anbegIt connection edIm,IPa b;eTAkan; MySQL rYcral;ehIy GkRtUvEteRCIerIsDatabase


NamYyedIm,IeFVkI arCamYyva edayGkGaceRbIR)as;nUv mysql_select_db() function .
bMENkkUdxageRkameyIgnwg select yk database mYyEdlmaneQaHfa BbuDb .
$database = "BbuDb"; >
mysql_select_db( $database ) or die ( "Couldn't open $database ); >
3.3 Adding Data to a Table >
\LvenHeyIgmanlTPaBRKb;RKan;edIm,I access eTAkan; database ehIyeyIgGacbBalnUvBtmaneTAkan;
table n database . sMrab;Ca]ThrN_eyIgnwgeRbIR)as; table Edl)anbegt
I enAkg database BbuDb EdlmaneQaHfa
tblpeople .
Adding a Row to a Table >

01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:

<html>
<head>
<title>Listing 13.2 Adding a Row to a Database</title>
</head>
<body>
<div>
<?php
$user = "root";
$pass = " ";
$db = "BbuDb";
$link = @mysql_connect( "localhost", $user, $pass );

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 61

12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

if ( ! $link )
{
die( "Couldn't connect to MySQL: ".mysql_error() );
}
print "<h2>Successfully connected to server</h2>\n\n";
@mysql_select_db( $db )
or die ( "Couldn't open $db: ".mysql_error() );
print "Successfully selected database \"$db\"<br />\n";
$query = "insert into tblpeople(username , password , name , email )
values( ' ratana07 ', ' 1234 ', ' som ratana ', ' ratana@example.com ' )";
mysql_query( $query, $link )
or die ( "INSERT error: ".mysql_error() );
mysql_close( $link );
?>
</div>
</body>
</html>

sMrab;]TahrN_enHeyIgmin)anbBaltMleTAeGay id column enaHeT


eRBaH field enHCaRbePT
auto_increments . vaCakarBit ral;eBlEdleyIg reload script n]TahrN_xagelITn
i ny dEdlnwgRtUvbBaleTAkan;
row fm
I YyeTotn table .
3.4 Adding User Input to a Database >
Registration.html
<html>
<head>
<title>Adding user input to a database</title>
</head>
<body>
<CENTER>
<h2> Adding user input to a databases </h2>
<hr width=550>
<form action="insert.php" method="Post">
<table>
<tr>
<td>Name :</td>
<td><input type="TextBox" size="18" name="txtname"/></td>
</tr>
<tr>
<td>UserName :</td>
<td><input type="TextBox" size="18" name="txtusr"/></td>
</tr>
<tr>
<td>Password :</td>
<td><input type="Password" name="txtpwd"/></td>
</tr>
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 62

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

<tr>
<td>Email :</td>
<td><input type="TextBox" size="18" name="txtemail"/></td>
</tr>
<tr>
<td align="right" colspan="2">
<input type="Submit" value="Submit">
</td>
</tr>
</table>
</body>
</html>
Inser.php
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
30
31

>

<html>
<head>
<title>Listing 13.3 Adding user input to a database</title>
</head>
<body>
<?php
$username = $_REQUEST['txtusr'] ;
$name =$_REQUEST['txtname'] ;
$pwd =$_REQUEST['txtpwd'] ;
$email = $ REQUEST['txtemail'] ;
if ( ! empty($username) && ! empty( $name ) && ! empty($pwd )&&
!empty($emial) ) // check user input here!
{
$db = "BbuDb";

$link = @mysql_connect( "localhost", $user, $pass );


if ( ! $link )
{
die( "Couldn't connect to MySQL: ".mysql_error() );
}
@mysql_select_db( $db ) or die ( "Couldn't open $db: ".mysql_error() );
$query = " insert into tblpeople(username , password , name , email )
values( '" .$username. '", '" .$name. '", '". $pwd .'", '" .$email. '" )";
mysql_query( $query, $link ) or die ( "INSERT error: ".mysql_error() );
mysql_close( $link );
?>
</body>
</html>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 63

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

eyIg)an select nUv database Edlpk table eQaHfa tblperson enAbnat;TI 22 ehIynwgbegIt SQL query
edIm,IbBaltMlEdl)anmkBI user-submitted edaybBanBtmaneTAeGaymysql_query() enAbnat;TI 26 .
3.5 Accessing a Resultset >
GkGacmanPaBgayRsYledIm,ITTYl)an array BICYr nimYyn filds edaykareRbIR)as; CamYynwg mysql_fetch_row()
function . function enHtMrUveGayGkpl; result resource mYy ehIy vanwg return vijnUv row nimYyEdlmanenAkg

field .
Listing All Rows and Fields in a Table
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23
24:
25:
26:
27:
28:
29:
30: }
31:
32:
33:
34:
35:

<html>
<head>
<title> Selecting Data</title>
</head>
<body>
<?php
$user = "root";
$pass = "1235";
$db = "BbuDb";
$link = mysql_connect( "localhost", $user, $pass );
if ( ! $link )
{
die( "Couldn't connect to MySQL: ".mysql_error() );
}
mysql_select_db( $db, $link )
or die ( "Couldn't open $db: ".mysql_error() );
$result = mysql_query( " SELECT * FROM tblperson " );
$num_rows = mysql_num_rows( $result );
print "<table border=\"1\">\n";
while ( $a_row = mysql_fetch_row( $result ) )
{
print "<tr>\n";
foreach ( $a_row as $field )
{
print "\t<td>".$field."</td>\n";
}
print "</tr>\n";
print "</table>\n";
mysql_close( $link );
?>
</body>
</html>

bnab;BIeyIg)an connected eTAkan; database server ehIynwg selected database rYcral;eyIg )aneRbI mysql_query()
enAbnat;TI 18 edIm,IbBan select statement eTAkan; database serverbnab;mkeyIgrkSarnUv return result resource
enAkg varible mYyeQaHfa $result ehIyeRbIvaedIm,I TTYlykcMnYn row EdlmanenAkg table .
sMrab; test expression n while statement enAbnat;TI 22 eyIg)anpl;nUvlTplEdl)anBI
mysql_fetch_row() eTAeGay variable $a_row. zitkgtMeNIrkarrbs; while statement
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 64

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

eyIg)an loop nUv row array Edlpk kg $a_row enAbnat;TI 25 ehIyeFVkI arbecjnUvlTplBIFatunmi Yy
bBal eTAkg table cell rYcRtUv)anbgajeday web browser . GkkGac accessFields
edayeRbIR)as;eQaHrbs;vaeTAtamviFsI aRsBrI ya:gKW mysql_fetch_row() va return Ca
Numerics
array
nig mysql_fetch_row() va return Ca associative array
CamYynwgeQaHrbs;Fields edayeRbICa keys rbs; array. bMENkkUdxageRkameyIgnwgCMnYsbnat;TI 23-33
edaykareRbIR)as; mysql_fetch_array() CMnsY vij .
print "<table border=\"1\">\n";
while ( $a_row = mysql_fetch_array( $result ) )
{
print "<tr>\n";
print "<td>".$a_row['name']."</td>";
print "<td>".$a_row['username']."</td>";
print "<td>".$a_row['email']."</td>";
print "</tr>\n";
}
print "</table>\n";

ma:gvijeTotGkGaccab;yk fields BICYrNamYymkeFVCI a properties n


mysql_fetch_object() enaHeQaH field TaMgGs;nwgkayCaeQaHrbs; properties .
print "<table border=\"1\">\n";

object

eday eRbI

>

while ( $a_row = mysql_fetch_object( $result ) )


{
print "<tr>\n";

print "<td>".$a_row->name."</td>";
print "<td>".$a_row->username."</td>";
print "<td>".$a_row->email."</td>";
print "</tr>\n";
}
print "</table>\n";

cMeBaHkareRbIR)as; mysql_fetch_array() nig mysql_fetch_object() TaMgBIrenHsuTE t


pl;nUvPaBgayRsYlsMrab;cab;yk BtmanBI row NamYy. eTaHbICaya:gNakedayCaFmta PaK eRcIneKniymeRbIR)as;
mysql_fetch_array() .

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 65

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 66

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

Saving State with Cookies and Session

>

>

1. Cookie

KWCaTinnyEdlrkSaTukeday users browserEdlRbRBwte TA)anedaykar requestBI server b script .


vaGacrkSaTuk)anRtwmEt 20 cookies nig TMhMpk Tinny )anRtwm 4 kilobyte b:ueNaH ehIyral; cookie
nimYyRtUvEtmannUv eQaH tMl nig kalbriecTQb;eRbIR)as;; .
bnab;BI cookieRtUv)an set manEt ma:snIu kMBTr Edl set nUv cookie enaHb:eu NaHeTIbGacmansiT read
nUvTinnyEdlmanenAxagkg )an b:uEnkGaRsyeTAelI users privacy Edl userGaceFVIkar configure enAelI browser
rbs;BYkeK edIm,IeGay cookie TaMgGs; manlTPaB set b kbdiesFmineGaymankar request cookie . cookie
GacCaviFsI aRsdRbesIrsMrab;rkSarTuknUvBtmanxBI IGkeRbIR)as; BI page mYyeTA page mYyeTot . .
Cookies rbs; PHP bBan
eTAkan; web server edayeRbIR)as; setcookie() function .RbsinebI cookie )an set
nUv time-out browser nwgeFVIkarcgcaMnvU cookie eTaHbICaGk restartma:snIu keday b:uEnRbsinebIGkmin)an set nUv timeout sMrab; cookie enaHeT browser nwgbM)at;ecalnUv cookie enaHPamenAeBlEdlGk close browser.sMrab;Ca]TahrN
_eyIgnwg set cookie enAeBlEdl user bBalnUv username nig password )anRtwmRtUvCamYynwg login form .
cookie

Auth.php
<?php
class Auth
{
function Auth()
{
mysql_connect('localhost', 'root');
mysql_select_db('my_own_bookshop');
}
public function authUser($user , $password)
{
$q = ' SELECT username , password FROM tblpeople WHERE
password ="'.$password. '"' ;
$r = mysql_query($q);
if (mysql_num_rows($r) == 1)
{ return TRUE; }
else { return FALSE; }
}

username="'. $user. '" AND

}?>

login.php

>

<?
ob_start();
?>
<html>
<head><title>Login</title></head>
<body>
<?php
require("auth.php");
$auth = new Auth();

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 67

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

if (isset ($_POST['login']) && ($_POST['login'] == 'Log in') &&


$auth->authUser($_POST['txtuid'] , $_POST['txtpwd'] ) )
{
$uid = $_POST['txtuid'];
/* User successfully logged in, setting cookie */
setcookie('uid', $uid, time() + 14400, '/');
header("Location: http://localhost/index.php");
exit();
}
else {
?>
<h1>Log-in</h1>
<form method="post" action="login.php">
<table>
<tr><td>User name :</td>
<td><input type='text' size='18' name='txtuid'/></td></tr>
<tr><td>Password :</td>
<td><input type='password' name='txtpwd'/></td></tr>
<tr><td colspan='2' align='right'>
<input type='submit' name='login' value='Log in'/></td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>

cMeBaH superglobal EdleRbIedIm,I read cookies KW $_COOKIE EdleyIgnwgGnuvtn_vaCa mYynwg]TahrN_enAkg


file mYyeQaHfa index.php .
index.php
<?php
if (isset ($_COOKIE['uid']) && $_COOKIE['uid'])
{
?>
<html>
<head><title>Index page</title></head>
<body>
Logged in with UID: <?php echo $_COOKIE['uid']; ?><br />
<a href='logout.php'>Log out</a>.
</body>
</html>
<?php
}
else {
/* If no UID is in the cookie, we redirect to the login .page */
header('Location: http://localhost/login.php');
}
?>

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 68

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

sMrab;kareRbIR)as user id rbs;eyIgenH KWvamanPaBcaM)ac;Nas; dUcCakarcg;caMsMrab;Authentication data


dUcEdleyIg)anGnuvtn_enAkg script rbs;eyIg ) .b:Eu nvaminTan;CaKMnti EdlRtwmRtUvenaHeT BIeRBaH
GkeRbIR)as;GacEkERb cookies TaMgenaH b install tMlepSg)aneTAtamGMeBIcit .
mantMeNaHya:gRbesIrmYysMrab;bBaaenHKWkareRbIR)as; PHP Sessions EdleyIgI nwgGnuvtn_enAkg]TahrN_eRkay
mYyeTot . edIm,I lb; cookie GkRKan;EteRbIR)as; parameters dUcEdlGk set cookie b:unGkmincaM)ac;pl;nUv value
sMrab; cookie enaHeT ehIy kalbriecTQb;eRbIR)as;GkRtUvpl;eGayCakalbriecTnGtItkal . enAkg logout page
eyIgnwglb; cookie edayeRbIviFI dUcxageRkam.
logout.php
<?php
setcookie('uid', '', time() - 86400, '/');
header('Location: http://localhost/login.php');
?>

KWCakalbriecTEdlknghYseTAmYyf nwgCakalbriecTnGtItkal
edIm,IR)ab;eGay browser bM)at;ecalnUv cookie data enaH .
2. SESSIONS >
PHP
session
GnuBaatieGay application rbs;GkrkSarTukBtmanenAkgcurrent session
xNeBlEdlGkeRbIR)as;)an logged in eTAkan; application rbs;Gk . session RtUv)ankMNt; eday session ID
EtmYyKt; PHP begtI session ID eday MD5 hash n remote IP addressnig bEnmnUvsBaaepSgeday random
eTAkg hexadecimal string . eyIgnwgsresreLIgvijnUv]TahrN_elIkmun EdleyIg)aneRbIR)as; cookie
mkCMnsY edaykareRbIR)as; session vij .
time()-86400

login.php
<html>
<body>
<?php
require("auth.php");
$auth = new Auth();
session_start();
if (isset ($_POST['login']) && ($_POST['login'] == 'Log in') &&
$auth->authUser($_POST['txtuid'] , $_POST['txtpwd'] ) )
{
$uid = $_POST['txtuid'];
$_SESSION['uid'] = $uid;
header("Location: http://localhost/index.php");
exit();
}
else
{
?>
/* HTML form comes here */
Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 69

POLYTECHNIC INSTITUTE OF BATTAMBANG PROVINCE

<?php
}
?>
</body>
</html>
index.php

>

<?php
if (isset ($_SESSION['uid']) && $_SESSION['uid'])
{
?>
<html>
<head><title>Index page</title></head>
<body>
Logged in with UID: <?php echo $_SESSION['uid']; ?><br />
<a href='logout.php'>Log out</a>.
</body>
</html>
<?php
}
else
{
/* If no UID, we redirect to the login page */
header('Location: http://localhost/login.php');
}
?>
logout.php
<?php
session_start();
$_SESSION = array();
session_destroy();
header('Location: http://localhost/login.php');
?>

eyIgenAEt

nUv session CamYynwg session_start() bnab;BIeyIgGac clear nUvsession )anedayeFVIeGay


$_SESSION subperglobal eTACa empty array bnab;mkeyIgeFVk
I arDestroy session ehIynwg associate data edaykar
call session_destroy() function .
cMnaM edIm,Ilb;ecjnUvFatuTaMgGs;rbs; session GkRtUvEtpl; empty array eTAeGay variableenaH .
initialize

Good Luck For You

Developing web Application with PHP

Prepare By: DY CHANDOEUN

Page 70

You might also like