Professional Documents
Culture Documents
Outline
26.1
26.2
26.3
26.4
26.5
26.6
26.7
26.8
26.9
26.10
26.11
Introduction
PHP
String Processing and Regular Expressions
Viewing Client/Server Environment Variables
Form Processing and Business Logic
Verifying a Username and Password
Connecting to a Database
Cookies
Dynamic Content in PHP
Operator Precedence
Web Resources
Objectives
In this chapter, you will learn:
26.1 Introduction
PHP
Platform independent
26.2 PHP
Basic application
Scripting delimiters
<? php ?>
2
3
4
Scripting delimiters
6
7
<?php
$name = "LunaTic";
8
9
first.php
(1 of 1)
// declaration
?>
10
11 <html xmlns = "http://www.w3.org/1999/xhtml">
12
13
14
<head>
<title>A simple PHP document</title>Single-line
comment
</head>
15
16
17
18
19
20
21
22
23
</p>
24
</body>
25 </html>
26.2 PHP
Fig. 26.1
26.2 PHP
Variables
settype
Concatenation operator
. (period)
Combine strings
7
26.2 PHP
D
a
taty
p
e
D
e
s
c
rip
tio
n
i
n
t
,i
n
t
e
g
e
r W
h
o
len
u
m
b
e
rs(i.e
.,n
u
m
b
e
rsw
ith
o
u
tad
e
c
im
a
lp
o
in
t).
f
l
o
a
t
,d
o
u
b
l
eR
e
a
ln
u
m
b
e
rs(i.e
.,n
u
m
b
e
rsc
o
n
ta
in
in
gad
e
c
im
a
lp
o
in
t).
s
t
r
i
n
g
T
e
x
te
n
c
lo
s
e
dine
ith
e
rs
in
g
le('
'
)o
rd
o
u
b
le("
"
)q
u
o
te
s
.
b
o
o
l
,B
o
o
l
e
a
nT
ru
eo
rfa
ls
e
.
a
r
r
a
y
G
ro
u
po
fe
le
m
e
n
tso
fth
es
a
m
ety
p
e
.
o
b
j
e
c
t
G
ro
u
po
fa
s
s
o
c
ia
te
dd
a
taa
n
dm
e
th
o
d
s
.
R
e
s
o
u
r
c
e
A
ne
x
te
rn
a
ld
a
tas
o
u
rc
e
.
N
U
L
L
N
ov
a
lu
e
.
F
ig
.2
6
.2
P
H
P
d
a
taty
p
e
s
.
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.3: data.php
-->
data.php
(1 of 3)
<head>
<title>PHP data types</title>
</head>
11
12
<body>
13
14
<?php
15
16
17
18
$testDouble = 79.2;
19
$testInteger = 12;
20
?>
21
22
23
24
25
data.php
of 3)
Print each variables (2
value
26
27
<br />
28
29
<?php
30
31
32
33
print( "$testString" );
34
35
36
print( "$testString" );
37
38
39
40
function
settype
print( "Converting back toCall
a string
results
in
41
42
43
to
convert
the data type
$testString <br /><br
/>"
); settype
Call function
to of
variable
to a
convert
the data$testString
type of
double.
$data = "98.6 degrees";
variable
$testString to an
integer.
Convert variable $testString
back to a string
10
4
4
4
5
/
/u
s
et
y
p
ec
a
s
t
i
n
gt
oc
a
s
tv
a
r
i
a
b
l
e
st
oa
4
6
/
/d
i
f
f
e
r
e
n
tt
y
p
e
4
7
p
r
i
n
t
("
N
o
wu
s
i
n
gt
y
p
ec
a
s
t
i
n
gi
n
s
t
e
a
d
:<
b
r/
>
4
8
A
sas
t
r
i
n
g-".(
s
t
r
i
n
g
)$
d
a
t
a.
4
9
"
<
b
r/
>
A
sad
o
u
b
l
e-".(
d
o
u
b
l
e
)$
d
a
t
a.
5
0
"
<
b
r/
>
A
sa
ni
n
t
e
g
e
r-".(
i
n
t
e
g
e
r
)$
d
a
t
a)
;
5
1
?
>
5
2
<
/
b
o
d
y
>
5
3<
/
h
t
m
l
>
data.php
(3 of 3)
Use type casting to cast variable
$data to different types
11
26.2 PHP
Fig. 26.3
Type conversion.
12
26.2 PHP
Arithmetic operators
Assignment operators
Syntactical shortcuts
Before being assigned values, variables have value
undef
Constants
Named values
define function
13
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.4: operators.php
-->
operators.php
(1 of 3)
<head>
<title>Using arithmetic operators</title>
</head>
11
12
13
<body>
<?php
14
$a = 5;
15
16
17
18
define( "VALUE", 5 );
19
20
21
$a = $a + VALUE;
22
23
is $a <br />" );
24
14
25
// multiply variable $a by 2
26
$a *= 2;
27
28
operators.php
50
Print if variable $a isTest
lesswhether
than 50.variable $a is less(2than
of 3)
29
30
if ( $a < 50 )
31
32
33
// add 40 to variable $a
34
$a += 40;
35
36
37
38
if ( $a < 51 )
39
40
41
42
43
44
45
46
47
else
print( "Variable a is now greater than 100
<br />" );
48
15
49
50
51
52
53
54
55
56
Print anAdd
uninitialized
variable
$nothing
).
constant VALUE
to (an
uninitialized
57
58
59
60
$a += $str;
61
64
variable.
<br />" );
62
63
operators.php
(3 of 3)
?>
</body>
65 </html>
16
26.2 PHP
Fig. 26.4
17
26.2 PHP
Keywords
ifelseifelse
Arrays
Elements
count function
array function
18
26.2 PHP
Arrays, cont.
Built-in iterators
reset
key
next
foreach
loops
19
26.2 PHP
P
H
P
k
e
y
w
o
rd
s
a
n
d
b
r
e
a
k
c
a
s
e
c
l
a
s
s
c
o
n
t
i
n
u
e
d
e
f
a
u
l
t
d
o
f
o
r
i
n
c
l
u
d
er
e
q
u
i
r
et
r
u
e
e
l
s
e
f
o
r
e
a
c
hl
i
s
t
r
e
t
u
r
n v
a
r
e
l
s
e
i
f f
u
n
c
t
i
o
nn
e
w
s
t
a
t
i
c v
i
r
t
u
a
l
e
x
t
e
n
d
sg
l
o
b
a
l n
o
t
s
w
i
t
c
h x
o
r
f
a
l
s
e i
f
o
r
t
h
i
s
w
h
i
l
e
F
ig
.2
6
.5
P
H
P
k
e
y
w
o
rd
s
.
20
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.6: arrays.php -->
5 <!-- Array manipulation
arrays.php
(1 of 3)
-->
6
7 <html xmlns = "http://www.w3.org/1999/xhtml">
8
9
10
<head>
<title>Array manipulation</title>
</head>
11
12
13
<body>
<?php
14
15
16
17
<br />" );
18
$first[ 0 ] = "zero";
19
$first[ 1 ] = Assign
"one";
22
23
24
20
21
25
21
26
27
28
</strong><br />" );
29
30
// call
31
$second
32
33
34
35
36
37
38
39
40
$third[
41
$third[
42
43
44
45
46
next( $third ) )
47
48
22
49
</strong><br />" );
50
51
52
53
// string indices
54
$fourth = array(
55
"January"
=> "first",
56
"March"
=> "third",
"April"
arrays.php
(3 of 3)
=> "fourth",
60
used
in",function array to assign each
"May"
=> "fifth", Operator
"June" =>=is
>"
sixth
a string
index.
value to the left of the
"July"
=> "seventh",element
"August"
=> "e
ighth"The
,
index,
and the value to the right is
"September" => "ninth", operator
"Octoberis
" the
=> array
"tenth
",
elements
value.
"November" => "eleventh"the
,"De
cember" =>
"twelfth"
61
);
57
58
59
62
63
64
65
66
?>
67
</body>
68 </html>
23
26.2 PHP
Fig. 26.6
Array manipulation.
24
String processing
Relational operators
25
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.7: compare.php -->
5 <!-- String Comparison
-->
compare.php
(1 of 2)
<head>
<title>String Comparison</title>
</head>
11
12
13
<body>
<?php
14
15
16
17
18
// iterate through
19
for ( $i = 0; $i <
20
21
22
// to string "banana"
23
24
26
25
print( $fruits[ $i ].
26
27
else
28
29
30
31
32
// to string "apple"
33
34
35
36
37
38
39
}
40
41
42
?>
</body>
43 </html>
27
28
Regular expressions
POSIX
preg_match function
Perl
ereg_replace function
Metacharacters
$, ., ^
Brackets [ ]
29
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.8: expression.php -->
5 <!-- Using regular expressions -->
6
expression.php
(1 of 3)
<head>
<title>Regular expressions</title>
</head>
11
12
<body>
14
15
13
<?php
16
17
18
// in variable search
19
20
21
30
22
23
// the string
24
25
26
27
28
//
29
30
31
32
33
34
35
$match ) )
36
37
38
The expression
the expressions
parentheses,[[:<:]]
[a-zA-Z]*ow
The specialinside
bracket
and ,
matches
any
word
ending
in ow. The
quantifier
Placing
a pattern
in the
parentheses
stores
the of
matched
[[:>:]]
match
beginning
and
end
a*
with 't' found: ");
matches
thethe
preceding
pattern
0 or more
times.
string
in
array that
is specified
in the
third argument
word,
respectively.
to function ereg.
39
40
41
42
43
$search, $match ) ) {
44
45
4
6
/
/
r
e
m
o
v
e
t
h
e
f
i
r
s
t
o
c
c
u
r
r
e
n
c
e
o
f
a
w
o
r
d
b
e
g
i
n
n
i
n
g
4
7
/
/
w
i
t
h
'
t
'
t
o
f
i
n
d
o
t
h
e
r
i
n
s
t
a
n
c
e
s
i
n
t
h
e
s
t
r
i
n
g
4
8
$
s
e
a
r
c
h
=
e
r
e
g
_
r
e
p
l
a
c
e
(
$
m
a
t
c
h
[
1
]
,
"
"
,
$
s
e
a
r
c
h
)
;
}
4
9
5
0
5
1
5
2
5
3
p
r
i
n
t
(
"
<
b
r
/
>
"
)
;
?
>
<
/
b
o
d
y
>
5
4<
/
h
t
m
l
>
expression.php
After printing a match of a word beginning with t, function
(3 of
3)
ereg_replace is called to remove the word from the
string.
This is necessary be because to find multiple instances of a
given pattern, the first matched instance must first be removed.
Function ereg_replace takes three arguments: the pattern to
match, a string to replace the matched string and the string to
search.
32
33
M
a
tc
h
e
s
{
n
}
{
m
,
n
}
{
n
,
}
+
*
?
E
x
a
c
tlyn
tim
e
s
.
B
e
tw
e
e
nm
a
n
dn
tim
e
sin
c
lu
s
iv
e
.
n
o
rm
o
retim
e
s
.
O
n
eo
rm
o
retim
e
s(s
a
m
ea
s{
1
,
}
).
Z
e
roo
rm
o
retim
e
s(s
a
m
ea
s{
0
,
}
).
Z
e
roo
ro
n
etim
e(s
a
m
ea
s{
0
,
1
}
).
F
ig
.2
6
.9
S
o
m
e
P
H
P
q
u
a
n
tifie
rs
.
34
A
lp
h
a
n
u
m
e
r
ic
c
h
a
r
a
c
te
r
s(
i.e
.,le
tte
r
s[
a
z
A
Z
]o
rd
ig
its[
0
9
]
)
.
W
o
r
d
c
h
a
r
a
c
te
r
s(
i.e
.,le
tte
r
s[
a
z
A
Z
]
)
.
D
ig
its
.
W
h
ite
s
p
a
c
e
.
L
o
w
e
r
c
a
s
e
le
tte
r
s
.
U
p
p
e
r
c
a
s
e
le
tte
r
s
.
F
ig
.2
6
.1
0 S
o
m
e
P
H
P
c
h
a
r
a
c
te
rc
la
s
s
e
s
.
35
Environment variables
36
37
1
2
3
4
-->
6
7
8
9
10
env.php
(1 of 1)
11
12
13
<body>
<table border = "0" cellpadding = "2" cellspacing = "0"
width = "100%">
14
15
<?php
16
17
18
19
20
<strong>$key</strong></td>
The foreach loop
21
22
23
?>
24
</table>
25
</body>
26 </html>
38
39
Form processing
action property
method property
post
40
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.13: form.html
-->
form.html
(1 of 4)
<head>
<title>Sample form to take user input in XHTML</title>
</head>
11
12
13
14
15
<body>
16
17
18
19
20
21
22
23
41
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
42
48
49
50
51
52
53
54
</select>
55
form.html
(3 of 4)
56
57
58
59
60
61
62
63
64
65
Windows XP
66
67
68
69
Windows 2000
70
71
72
73
43
7
4
<
i
n
p
u
tt
y
p
e="
r
a
d
i
o
"n
a
m
e="
o
s
"v
a
l
u
e="
L
i
n
u
x
"/
>
7
5
L
i
n
u
x
7
6
7
7
<
i
n
p
u
tt
y
p
e="
r
a
d
i
o
"n
a
m
e="
o
s
"v
a
l
u
e="
O
t
h
e
r
"/
>
7
8
O
t
h
e
r
<
b
r/
>
7
9
form.html
(4 of 4)
8
0
<
!
-c
r
e
a
t
eas
u
b
m
i
tb
u
t
t
o
n>
8
1
<
i
n
p
u
tt
y
p
e="
s
u
b
m
i
t
"v
a
l
u
e="
R
e
g
i
s
t
e
r
"/
>
8
2
8
3
<
/
f
o
r
m
>
8
4
8
5
<
/
b
o
d
y
>
8
6<
/
h
t
m
l
>
44
45
Business logic
JavaScript
Conserves server resources
Ending a script
die function
46
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.14: form.php
-->
form.php
(1 of 4)
<head>
<title>Form Validation</title>
</head>
11
12
13
14
15
16
17
18
19
if ( !ereg( "^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$",
20
21
$phone ) ){
47
22
23
font-size: 2em\">
24
25
26
<strong>(555)555-5555</strong><br />
27
28
29
30
Thank You.</span></p></body></html>" );
form.php
(2 of 4)
31
die(); // terminate script execution
32
}
33
34
?>
35
36
37
38
39
40
<p>Hi
<span style = "color: blue">
<strong>
<?php print( "$fname" ); ?>
</strong>
41
</span>.
42
43
48
44
45
46
47
</strong>
48
49
</span>
50
mailing list.
51
</p>
52
53
form.php
(3 of 4)
54
55
56
57
58
59
60
61
</tr>
62
63
64
<tr>
<?php
65
49
66
67
68
<td>$email</td>
69
<td>$phone</td>
70
<td>$os</td>" );
71
?>
72
</tr>
73
</table>
form.php
(4 of 4)
74
75
76
77
78
79
80
</div>
</body>
81 </html>
50
51
Private website
fopen
newline character
function
52
function
function
53
1
2
3
4
-->
6
7
8
9
password.html
(1 of 4)
10
11
12
13
14
15
16
17
18
19
<br />
20
21
font-weight: bold">
22
23
24
</span>
</p>
25
54
26
27
28
<br />
29
30
31
32
password.html
(2 of 4)
33
34
35
<tr>
<td colspan = "3">
<strong>Username:</strong>
36
37
38
</td>
</tr>
39
40
41
<tr>
<td colspan = "3">
<input size = "40" name = "USERNAME"
42
43
44
45
</td>
</tr>
46
55
47
48
<tr>
<td colspan = "3">
<strong>Password:</strong>
49
50
51
</td>
password.html
(3 of 4)
</tr>
52
53
54
<tr>
<td colspan = "3">
<input size = "40" name = "PASSWORD"
55
56
57
58
59
<br/></td>
</tr>
60
61
62
63
<tr>
<td colspan = "1">
<input type = "submit" name = "Enter"
64
65
66
</td>
67
68
69
70
71
</td>
56
7
2
<
/
t
r
>
7
3
<
/
t
a
b
l
e
>
7
4
7
5
<
/
f
o
r
m
>
<
/
b
o
d
y
>
7
6
<
/
h
t
m
l
>
password.html
(4 of 4)
57
58
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.16: password.php
-->
password.php
(1 of 7)
<head>
<?php
extract( $_POST );
11
12
13
if ( !$USERNAME || !$PASSWORD ) {
14
fieldsBlank();
15
die();
16
17
18
19
if ( isset( $NewUser ) ) {
20
21
22
23
"a" ) ) ) {
24
59
25
26
27
print( "<title>Error</title></head><body>
28
29
</body></html>" );
die();
30
}
31
password.php
Print an error message and terminate script
(2 ofexecution
7)
if the file cannot be opened.
32
33
34
35
36
userAdded( $USERNAME );
37
38
else {
39
40
// if a new user
41
// for reading
42
43
"r" ) ) ) {
44
print( "<title>Error</title></head>
45
46
</body></html>" );
die();
47
48
49
60
50
$userVerified = 0;
51
52
53
// and password
54
while ( !feof(
loop, variable
Function$userVerified
fgets reads a line
from
is set
to 0the
. text file.
$file
) && !$userVerified
) {
The result
is assigned to variable
$line.
55
56
57
58
59
60
61
62
63
password.php
(3 of 7)
64
65
// verify username
66
if ( $USERNAME == $field[ 0 ] ) {
67
$userVerified = 1;
68
69
function
// call function checkPassword to If
verify
70
// users password
71
permission
if ( checkPassword( $PASSWORD, $field
)
72
== true )
73
accessGranted( $USERNAME );
74
75
else
wrongPassword();
61
76
77
78
81
82
83
84
if ( !$userVerified )
85
accessDenied();
79
80
86
87
88
89
90
{
if ( $userpassword == $filedata[ 1 ] )
91
return true;
92
else
93
return false;
94
95
96
62
97
98
99
{
print( "<title>Thank You</title></head>
100
101
102
font-size: 1em;
103
104
105
106
password.php
(5 of 7)
107
108
109
110
111
{
print( "<title>Thank You</title></head>
112
113
114
115
116
117
118
119
63
120
121
function wrongPassword()
122
125
126
127
128
been denied.</strong>" );
123
124
129
130
131
132
function accessDenied()
133
{
print( "<title>Access Denied</title></head>
134
135
136
137
<strong>
138
139
<br /></strong>" );
140
141
64
1
4
2
/
/p
r
i
n
t am
e
s
s
a
g
ei
n
d
i
c
a
t
i
n
gt
h
a
tf
i
e
l
d
s
1
4
3
/
/h
a
v
eb
e
e
nl
e
f
tb
l
a
n
k
1
4
4
f
u
n
c
t
i
o
nf
i
e
l
d
s
B
l
a
n
k
(
)
1
4
5
1
4
6
1
4
7
1
4
8
f
o
n
t
s
i
z
e
:1
e
m
;c
o
l
o
r
:r
e
d
\
"
>
1
4
9
<
s
t
r
o
n
g
>
1
5
0
P
l
e
a
s
ef
i
l
li
na
l
lf
o
r
mf
i
e
l
d
s
.
1
5
1
<
b
r/
>
<
/
s
t
r
o
n
g
>
")
;
}
1
5
2
1
5
3
1
5
4
?
>
<
/
b
o
d
y
>
1
5
5<
/
h
t
m
l
>
65
66
1a
c
c
o
u
n
t
1
,
p
a
s
s
w
o
r
d
1
2a
c
c
o
u
n
t
2
,
p
a
s
s
w
o
r
d
2
3a
c
c
o
u
n
t
3
,
p
a
s
s
w
o
r
d
3
4a
c
c
o
u
n
t
4
,
p
a
s
s
w
o
r
d
4
5a
c
c
o
u
n
t
5
,
p
a
s
s
w
o
r
d
5
6a
c
c
o
u
n
t
6
,
p
a
s
s
w
o
r
d
6
password.txt
(1 of 1)
7a
c
c
o
u
n
t
7
,
p
a
s
s
w
o
r
d
7
8a
c
c
o
u
n
t
8
,
p
a
s
s
w
o
r
d
8
9a
c
c
o
u
n
t
9
,
p
a
s
s
w
o
r
d
9
1
0a
c
c
o
u
n
t
1
0
,
p
a
s
s
w
o
r
d
1
0
67
Databases
68
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.18: data.html
-->
data.html
(1 of 2)
<head>
<title>Sample Database Query</title>
</head>
11
12
13
14
15
16
17
18
19
20
21
-->
69
<
s
e
l
e
c
tn
a
m
e= "
s
e
l
e
c
t
"
>
22
23
<
o
p
t
i
o
ns
e
l
e
c
t
e
d= "
s
e
l
e
c
t
e
d
"
>
*
<
/
o
p
t
i
o
n
>
24
<
o
p
t
i
o
n
>
I
D
<
/
o
p
t
i
o
n
>
25
<
o
p
t
i
o
n
>
T
i
t
l
e
<
/
o
p
t
i
o
n
>
26
<
o
p
t
i
o
n
>
C
a
t
e
g
o
r
y
<
/
o
p
t
i
o
n
>
27
<
o
p
t
i
o
n
>
I
S
B
N
<
/
o
p
t
i
o
n
>
<
/
s
e
l
e
c
t
>
28
<
/
p
>
29
30
<
i
n
p
u
tt
y
p
e="
s
u
b
m
i
t
"v
a
l
u
e="
S
e
n
dQ
u
e
r
y
"
31
32
s
t
y
l
e= "
b
a
c
k
g
r
o
u
n
d
c
o
l
o
r
:b
l
u
e
;
33
c
o
l
o
r
:y
e
l
l
o
w
;f
o
n
t
w
e
i
g
h
t
:b
o
l
d
"/
>
34
35
<
/
f
o
r
m
>
<
/
b
o
d
y
>
36 <
/
h
t
m
l
>
70
71
SQL
mysql_connect
mysql_select_db
mysql_query
mysql_error
mysql_fetch_row
mysql_close
72
1
2
3
4
-->
database.php
(1 of 3)
-->
7
8
9
10
11
12
13
14
15
<?php
16
17
extract( $_POST );
18
19
20
21
22
// Connect to MySQL
23
24
"httpd", "" ) ) )
25
73
26
27
28
Function)mysql_query
if ( !mysql_select_db( "Products", $database
)
29
30
31
//
32
if
33
die( mysql_error() );
34
}
35
36
returns an object
die( "Could not open Products database"
); the result set of the query, which
containing
we assign to variable $result.
database.php
query Products database
(2 of 3)
( !( $result
= mysql_query(
$query, $database
) ) { the
Function
mysql_select_db
is called to) specify
print( "Could not execute query! <br />" );
database to be queried.
?>
37
38
39
Search Results</h3>
40
41
42
43
44
45
46
47
48
49
50
<?php
51
52
print( "<tr>" );
53
foreach ( $row as $key => $value )
54
database.php
(3 of 3)
print( "</tr>" );
The foreach loop iterates through the
}
array containing the elements of each row
and prints out each element in an
mysql_close( $databaseThe
); total number of results are printed to the
individual table cell.
client.
print( "<td>$value</td>" );
55
56
57
58
59
60
?>
61
62
63
</table>
64
65
66
67
68
69
70
</a>
71
72
</h5>
73
74
</body>
75 </html>
75
76
26.8 Cookies
Cookies
Security risk
Name
Value
Expiration date
77
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.20: cookies.html -->
5 <!-- Writing a Cookie
-->
cookies.html
(1 of 2)
<head>
<title>Writing a cookie to the client computer</title>
</head>
11
12
13
14
15
16
78
17
18
19
<strong>Name:</strong><br />
20
21
22
<strong>Height:</strong><br />
23
cookies.html
(2 of 2)
24
25
26
27
<input type = "submit" value = "Write Cookie"
28
29
30
31
32
</form>
</body>
33 </html>
79
26.8 Cookies
Fig. 26.20
80
1 <?php
2
4
5
extract( $_POST );
10
cookies.php
(1 of 2)
11 ?>
12
13
14
15
<head>
<title>Cookie Saved</title>
</head>
20
21
22
23
81
24
<
!
-p
r
i
n
te
a
c
hf
o
r
mf
i
e
l
d
sv
a
l
u
e>
25
<
b
r/
>
<
s
p
a
ns
t
y
l
e="
c
o
l
o
r
:b
l
u
e
"
>
N
a
m
e
:
<
/
s
p
a
n
>
Each
<
?
p
h
pp
r
i
n
t
($
N
A
M
E)?
>
<
b
r/
>
26
27
28
<
s
p
a
ns
t
y
l
e= "
c
o
l
o
r
:b
l
u
e
"
>
H
e
i
g
h
t
:
<
/
s
p
a
n
>
<
?
p
h
pp
r
i
n
t
($
H
E
I
G
H
T)?
>
<
b
r/
>
29
30
31
<
s
p
a
ns
t
y
l
e= "
c
o
l
o
r
:b
l
u
e
"
>
F
a
v
o
r
i
t
eC
o
l
o
r
:
<
/
s
p
a
n
>
32
33
<
s
p
a
ns
t
y
l
e= "
c
o
l
o
r
:<
?
p
h
pp
r
i
n
t
("
$
C
O
L
O
R
\
"
>
$
C
O
L
O
R
")?
>
34
<
/
s
p
a
n
>
<
b
r/
>
35
<
p
>
C
l
i
c
k<
ah
r
e
f="
r
e
a
d
C
o
o
k
i
e
s
.
p
h
p
"
>
h
e
r
e
<
/
a
>
t
or
e
a
dt
h
es
a
v
e
dc
o
o
k
i
e
.<
/
p
>
36
37
<
/
b
o
d
y
>
38 <
/
h
t
m
l
>
Hyperlink to readCookies.php.
82
26.8 Cookies
Fig. 26.21 Writing a cookie to the client.
83
26.8 Cookies
Reading cookies
$_COOKIE environment
Array
foreach loop
variable
84
26.8 Cookies
Cookie storage
Internet Explorer
85
26.8 Cookies
Fig. 26.22 Cookies directory before a cookie is written.
86
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.24: readCookies.php
-->
readCookies.php
(1 of 2)
<head><title>Read Cookies</title></head>
9
10
11
12
13
<p>
<strong>
14
15
computer.
16
17
</strong>
</p>
18
87
19
<
t
a
b
l
eb
o
r
d
e
r="
5
"c
e
l
l
s
p
a
c
i
n
g="
0
"c
e
l
l
p
a
d
d
i
n
g="
1
0
"
>
<
?
p
h
p
20
The foreach
loop
iterates
through
the $_COOKIE
PHP
creates
array
$_COOKIE
which contains all
array and prints
thevalues
name indexed
and valuebyoftheir
eachnames.
cookie
cookie
/
/i
t
e
r
a
t
et
h
r
o
u
g
ha
r
r
a
y$
_
C
O
O
K
I
Ea
n
dp
r
i
n
t
in an XHTML table.
readCookies.php
/
/n
a
m
ea
n
dv
a
l
u
eo
fe
a
c
hc
o
o
k
i
e
(2 of 2)
f
o
r
e
a
c
h($
_
C
O
O
K
I
Ea
s$
k
e
y=
>$
v
a
l
u
e)
21
22
23
24
p
r
i
n
t( "
<
t
r
>
25
26
<
t
db
g
c
o
l
o
r
=\
"
#
F
0
E
6
8
C
\
"
>
$
k
e
y
<
/
t
d
>
27
<
t
db
g
c
o
l
o
r
=\
"
#
F
F
A
5
0
0
\
"
>
$
v
a
l
u
e
<
/
t
d
>
28
<
/
t
r
>
")
;
?
>
29
30
31
32
<
/
t
a
b
l
e
>
<
/
b
o
d
y
>
33 <
/
h
t
m
l
>
88
26.8 Cookies
Fig. 26.24 Displaying the cookies content.
89
variable
$$variable syntax
90
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.25: dynamicForm.php
-->
dynamicForm.php
(1 of 9)
<head>
<title>Sample form to take user input in XHTML</title>
10 </head>
11
12 <body>
13
<?php
14
extract ( $_POST );
15
$iserror = false;
16
17
18
19
20
21
22
91
23
24
25
"Windows 2000",
26
"Windows 98",
27
"Linux",
28
"Other");
dynamicForm.php
(2 of 9)
29
30
// array of name and alt values for the text input fields
31
32
33
34
"phone" =>
35
36
if ( isset ( $submit ) ) {
37
if ( $fname == "" ) {
38
39
$iserror = true;
40
41
42
if ( $lname == "" ) {
43
44
$iserror = true;
45
46
92
47
if ( $email == "" ) {
48
49
$iserror = true;
50
51
52
53
54
$iserror = true;
55
56
57
58
dynamicForm.php
(3 of 9)
if ( !$iserror ) {
59
60
61
62
63
64
65
// Connect to MySQL
66
67
"httpd", "" ) ) )
68
69
70
71
72
93
73
74
75
76
77
die( mysql_error() );
78
dynamicForm.php
(4 of 9)
79
80
print( "<p>Hi
81
82
<strong>$fname</strong></span>.
83
84
85
86
87
<strong>$book</strong></span>
88
mailing list.
89
</p>
90
91
92
93
94
<tr>
95
96
97
94
98
99
</tr>
100
<tr>
101
102
103
<td>$fname $lname</td>
104
<td>$email</td>
105
<td>$phone</td>
106
<td>$os</td>
107
</tr></table>
dynamicForm.php
(5 of 9)
108
109
110
111
112
113
114
115
116
</div></body></html>" );
die();
117
}
118
119
120
121
122
95
123
124
if ( $iserror ) {
print( "<br /><span style = 'color : red'>
125
126
127
dynamicForm.php
(6 of 9)
128
129
130
131
132
133
134
</span>
135
<!-- create four text boxes for user input -->" );
136
137
138
139
140
141
142
143
if ( $formerrors[ ( $inputname )."error" ] == true )
144
145
146
147
148
96
149
150
151
152
153
if ( $formerrors[ "phoneerror" ] )
print( "; color : red" );
154
155
156
dynamicForm.php
(7 of 9)
157
158
159
160
161
162
163
</span><br />
164
165
166
167
168
169
170
171
172
if ( ( $currbook == $book ) )
print( " selected = 'true'" );
173
97
print( ">$currbook</option>" );
174
175
176
177
178
179
180
181
<br /></span>
dynamicForm.php
(8 of 9)
182
<!-- create five radio buttons -->" );
183
184
185
$counter = 0;
186
187
188
value =
189
190
191
192
193
print( " />$currsystem" );
194
195
196
197
$counter++;
198
199
98
2
0
0
p
r
i
n
t
(
"
<
!
c
r
e
a
t
e
a
s
u
b
m
i
t
b
u
t
t
o
n
>
2
0
1
<
b
r
/
>
2
0
2
<
i
n
p
u
t
t
y
p
e
=
'
s
u
b
m
i
t
'
n
a
m
e
=
'
s
u
b
m
i
t
'
v
a
l
u
e
=
'
R
e
g
i
s
t
e
r
'
/
>
2
0
3
<
/
f
o
r
m
>
<
/
b
o
d
y
>
<
/
h
t
m
l
>
"
)
;
2
0
4 ?
>
dynamicForm.php
(9 of 9)
99
100
101
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4 <!-- Fig. 26.26: formDatabase.php
-->
-->
formDatabase.php
(1 of 3)
7
8 <html xmlns = "http://www.w3.org/1999/xhtml">
9
10
11
<head>
<title>Search Results</title>
</head>
12
13
14
15
<?php
16
17
18
19
20
21
22
// Connect to MySQL
23
24
"httpd", "" ) ) )
25
102
26
27
28
29
30
31
32
33
34
die( mysql_error() );
}
35
36
formDatabase.php
(2 of 3)
?>
37
38
39
40
41
42
43
44
<tr>
45
<td>ID</td>
46
<td>Last Name</td>
47
<td>First Name</td>
48
<td>E-mail Address</td>
49
<td>Phone Number</td>
50
<td>Book</td>
103
<td>Operating System</td>
51
52
</tr>
53
<?php
54
55
56
for ( $counter = 0;
57
58
$counter++ ){
59
60
// build table to
61
print( "<tr>" );
formDatabase.php
(3 of 3)
62
63
64
print( "<td>$value</td>" );
65
print( "</tr>" );
66
}
67
68
mysql_close( $database );
69
?>
70
71
72
</table>
73
74
</body>
75 </html>
104
105
Type
Associativity
constructor
subscript
bitwise not
not
increment
decrement
unary negative
error control
multiplication
division
modulus
addition
subtraction
concatenation
bitwise shift left
bitwise shift right
less than
greater than
less than or equal
greater than or equal
equal
not equal
identical
not identical
none
right to left
right to left
left to right
left to right
left to right
none
none
106
Type
Associativity
bitwise AND
bitwise XOR
bitwise OR
logical AND
logical OR
assignment
addition assignment
subtraction assignment
multiplication assignment
division assignment
bitwise AND assignment
bitwise OR assignment
bitwise exclusive OR assignment
concatenation assignment
bitwise shift left assignment
bitwise shift right assignment
logical AND
exclusive OR
logical OR
list
left to right
left to right
left to right
left to right
left to right
left to right
left to right
left to right
left to right
left to right