PHP xử lý các biến rất linh động. Nó có thể nhận biết được kiểu của biến và làm cho cú pháp câu lệnh đơn giản hơn. Ai đã từng lập trình với C, Java hoặc Perl sẽ cảm thấy rất dễ dàng khi sử dụng PHP. Tuy nhiên việc dễ dãi này cũng gây ra một trở ngại nhất định....
44 trang |
Chia sẻ: diunt88 | Lượt xem: 3136 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu LẬP TRÌNH WEB ĐỘNG VỚI PHP / MySQL (Phần 3), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LAÄP TRÌNH WEB ĐỘNG VÔÙI
PHP / MySQL
GUESTBOOK
CATALOG
FORUM
SHOPPING CART
PHAÀN 3
Toáng Phöôùc Khaûi (toång hôïp & bieân dòch)
BIEÁN (variables)
vaø caùc pheùp xöû lyù treân bieán
PHP
1- Bieán vaø caùch söû duïng Bieán
2- Xöû lyù döõ lieäu töø FORM
3- Tìm hieåu saâu hôn veà Bieán
Baïn ñoïc thaân meán,
Vöøa qua toâi ñaõ soaïn xong phaàn 1 vaø phaàn 2 cuûa giaùo trình töï hoïc PHP/MySQL. Toâi ñaõ nhaän
ñöôïc email cuûa nhöõng baïn quan taâm, chôø ñôïi phaàn 3 cuûa giaùo trình naøy. Ñaùng leõ phaàn 3 ñaõ
cho ra ñôøi sôùm nhöng vì baän roän quaù nhieàu coâng vieäc (hieän toâi ñang phuï traùch vaø coù raát nhieàu
coâng vieäc trong nhoùm Hanosoft - software Haùn Noâm) neân vieäc bieân soaïn saùch töï hoïc naøy ít
nhieàu bò trì hoaõn.
Do hoaøn caûnh treân, chaéc chaén coâng vieäc bieân soaïn naøy khoâng traùnh ñöôïc nhöõng sai soùt. Nhöng
duø sao ñi nöõa, bieát ñöôïc caùc baïn coù theå aùp duïng giaùo trình naøy vaøo thöïc teá thì toâi phaàn naøo
cuõng laáy ñoù laøm söï khích leä cho rieâng mình.
Ñuùng lyù ra phaàn 3 naøy laø daønh troïn cho vieäc noùi veà ngoân ngöõ SQL nhöng phaàn 2 ñaõ baøn veà
CSDL roài, neáu phaàn naøy neáu cuõng baøn veà noù thì coù veû hôi nhaøm phaûi khoâng caùc baïn? Vôùi yù
nghó naøy toâi ñaõ daønh troïn phaàn 3 ñeå noùi veà bieán trong PHP.
Haún nhieân toâi bieát moät soá baïn mong moûi nhöõng gì trong ñaây coù theå aùp duïng lieàn thì ñôõ chaùn
hôn. Nhöng theo toâi nghó tröôùc tieân heát baïn caàn phaûi naém roõ moïi ngoùc ngaùch cuûa PHP vaø
MySQL thì môùi coù theå thieát keá ñöôïc nhöõng chöông trình ñaït tieâu chuaån. Do vaäy mong caùc baïn
haõy kieân nhaãn khi ñoïc nhöõng chöông höôùng daãn suoâng nhö theá naøy! Ñöøng naûn loøng vaø neân ghi
nhôù ñaây laø coäi reã cho caùc öùng duïng thöïc teá cuûa caùc baïn.
Ñeå baét ñaàu chöông naøy ít nhaát baïn cuõng phaûi coù chuùt ñænh kieán thöùc veà Cô Sôû Laäp Trình. Toâi
nghó neáu baïn ñaõ hoïc qua moät khoaù laäp trình caên baûn thì baïn coù theå hieåu ñöôïc. Neáu khoâng, ñoøi
hoûi baïn caàn phaûi ñoäng naõo hoaëc tìm toøi hôi nhieàu. Naøo, chuùng ta baét ñaàu ñi thoâi!
PHP xöû lyù caùc bieán raát linh ñoäng. Noù coù theå nhaän bieát ñöôïc kieåu cuûa bieán vaø laøm cho cuù phaùp
caâu leänh ñôn giaûn hôn. Ai ñaõ töøng laäp trình vôùi C, Java hoaëc Perl seõ caûm thaáy raát deã daøng khi
söû duïng PHP. Tuy nhieân vieäc deã daõi naøy cuõng gaây ra moät soá trôû ngaïi nhaát ñònh.
Taát caû nhöõng bieán khai baùo trong PHP ñeàu ñöôïc baét ñaàu vôùi daáu ñoâ la ($). Duø cho bieán
cuûa baïn kieåu chuoãi, nguyeân hay thaäp phaân hoaëc thaäm chí laø maûng thì chuùng khoâng coù gì khaùc
bieät nhau. PHP chæ theo doõi döõ lieäu chöùa trong bieán thay ñoåi nhö theá naøo thoâi.
Noùi chung, khi laøm vieäc vôùi PHP baïn seõ quan taâm ñeán 3 vò trí khaùc nhau cuûa bieán ñoù laø: (1)
khai baùo ngay trong maõ leänh PHP, (2) chuyeån tieáp töø moät trang HTML hoaëc (3) laø bieán saün coù
trong cuûa heä thoáng PHP.
Chuùng ta seõ tìm hieåu veà töøng loaïi treân ôû phaàn tieáp theo. Neân löu yù raèng bieán cuõng coù theå ñöôïc chuyeån tieáp
töø caùc nôi khaùc nhö töø caùc URL hoaëc töø caùc SESSION.
Gaùn bieán trong moät Script
Baïn khoâng caàn phaûi khai baùo EXPLICIT cho bieán nhö trong moät soá ngoân ngöõ khaùc. Chæ caàn
khai baùo teân bieán laø noù seõ saün saøng laøm vieäc. Baïn haõy xeùt caùc ví duï sau ñeå hieåu caùch khai
baùo bieán trong PHP uyeån chuyeån nhö theá naøo:
$a = "Toi thich hoc PHP"; //day la bien chuoi
$b = 4; //day la bien so
$c = 4.837; //day la bien so thuc
$d = "2"; //day cung la bien chuoi
Ñeå yù raèng daáu = laø daáu duøng ñeå gaùn. Coøn khi thöïc hieän pheùp so saùnh baèng thì baïn duøng hai daáu baèng (= = ). Ví
duï: IF ($x= =1)
PHP raát thoâng minh trong vieäc bieán ñoåi kieåu. Ví duï, baïn thöïc hieän pheùp coäng moät soá nguyeân
vôùi moät chuoãi chöùa kyù töï soá (trong ví duï treân laø $b vaø $d).
$a = "Toi thich hoc PHP"; //day la bien chuoi
$b = 4; //day la bien so
$c = 4.837; //day la bien so thuc
$d = "2"; //day cung la bien chuoi
$e = $b + $d;
echo $e;
PHP seõ nhaän ra raèng baïn muoán xem chuoãi trong $d (chuoãi "2") nhö laø moät soá nguyeân. Theá laø
noù seõ hoaùn chuyeån sang trò nguyeân vaø thöïc hieän pheùp toaùn coäng cho ra keát quaû laø $e = 6.
Ngoaøi ra, PHP coøn coù theå hieåu ñöôïc caùc chuoãi vöøa soá vöøa chöõ nhö ví duï sau:
$a = 2;
$b = "2 con heo con";
$c = $a + $b;
Keát quaû cho ra laø $c = 4. Neáu moät soá nguyeân hay thaäp phaân ñöùng ôû vò trí ñaàu moät chuoãi thì
PHP coù theå hieåu ñöôïc nhö ví duï treân. Töông töï, PHP thöïc hieän töông töï ñoái vôùi caùc kieåu soá
khaùc nhau:
$f = 2; //$f la mot so nguyen
$g = 1.444; // $g la mot so thuc
$f = $f + $g; //$f tu bien doi thanh so thuc
Vieäc xöû lyù naøy thaät laø hay, nhöng noù coù theå daãn ñeán moät soá raéc roái ñoù laø seõ coù nhöõng luùc baïn
khoâng bieát ôû taïi thôøi ñieåm naøo baïn seõ laøm vieäc vôùi kieåu cuûa bieán laø kieåu gì. Toâi seõ trình baøy
trong phaàn Kieåm Tra Bieán.
Qui ñònh veà chuoãi
Trong caùc ví duï treân, baïn thaáy taát caû caùc chuoãi ñeàu ñöôïc bao trong daáu nhaùy ñoâi. Coù hai caùch
khaùc ñeå baïn theå hieän moät cho PHP hieåu ñoù laø chuoãi.
Trong moät chuoãi maø baïn ñaõ bao laïi baèng caëp nhaùy ñoâi "...", xong baïn cheøn moät bieán vaøo giöõa,
thì PHP vaãn hieåu ñöôïc bieán ñoù. Ví duï:
$my_name = "Jay";
$phrase = "Hello, my name is, $my_name";
echo $phrase;
Keát quaû cho ra laø: Hello, my name is, Jay. Thaät khaùc thöôøng phaûi khoâng caùc baïn?! (Ñaùng leõ ra
daáu nhaùy " thöù hai phaûi sau chöõ is roài ñaët moät daáu coäng chuoãi vôùi bieán $my_name)
Trong tröôøng hôïp sau ñaây, toâi muoán xuaát ra moät chuoãi: Toâi ñaêng kyù hosting heát $20 thì phaûi
laøm sao? Bôûi vì trong chuoãi naøy coù chöùa $, ñieàu naøy seõ laøm cho PHP hieåu ñoù laø moät bieán môùi.
Chuùng ta xem caùch giaûi quyeát nhö sau:
Neáu nhö trong chuoãi baïn muoán coù chöùa caùc kyù töï ñaëc bieät nhö: daáu nhaùy ñoâi "", daáu slash \,
daáu ñoâ la $ , baïn phaûi söû duïng ñeán kyù töï chuyeån (goïi laø daáu escape) ñoù laø daáu slash (\).
Toâi quen ñoïc daáu / laø "daáu suyeät traùi" vaø \ laø "daáu suyeät phaûi".
Giaû söû, ñeå xuaát ra maøn hình moät doøng chöõ: , nhö
baïn thaáy trong ñoù chöùa tôùi 4 daáu nhaùy ñoâi - thuoäc daïng kyù töï ñaëc bieät. Ta phaûi söû duïng tôùi 4
daáu suyeät phaûi nhö sau:
echo "";
Thì ñeán khi chaïy chöông trình môùi mong cho ra keát quaû nhö mong muoán.
Taùc duïng cuûa daáu nhaùy ñôn ñoái vôùi PHP:
Baïn seõ thaáy daáu nhaùy ñôn trong PHP coù taùc duïng hôn daáu nhaùy ñoâi nhö theá naøo! Neáu chuoãi
cuûa baïn coù chöùa caùc bieán (baét ñaàu baèng $), baïn bao laïi baèng daáu nhaùy ñôn thì bieán ñoù seõ bò
bieán thaønh chuoãi luoân, chôù khoâng ñöôïc hieåu laø moät bieán nhö caùch bao baèng daáu nhaùy ñoâi:
$my_name = "Jay";
echo ‘Hello, my name is, $my_name’;
Keát quaû cho ra laø Hello, my name is, $my_name chöù khoâng phaûi Hello, my name is Jay.
Cuoái cuøng, trong PHP4 baïn coù theå söû duïng daáu Here Documents. Ñaây laø moät loaïi kyù hieäu
töông tôï hai loaïi nhaùy ñôn vaø nhaùy ñoâi. Trong moät soá tröôøng hôïp khi söû duïng noù baïn seõ caûm
thaáy raát tieän lôïi. Here Docs xaùc ñònh giôùi haïn ôû ñaàu chuoãi vôùi 3 daáu nhoû hôn <<< vaø kyù hieäu
nhaän daïng (trong saùch naøy toâi söû duïng kyù hieäu nhaän daïng EOQ) Chuoãi ñöôïc keát thuùc cuõng vôùi
kyù hieäu nhaän daïng nhö vaäy vaø keøm theo laø daáu chaám phaåy (;). Sau ñaây laø ví duï chuoãi Toi
thich hoc PHP ñöôïc gaùn cho bieán $mystring ñöôïc xaùc ñònh baèng caùch söû duïng Here Doc.
$my_string = <<<EOQ
Toi thich hoc PHP.
EOQ;
Söû duïng Here Doc, caùc bieán seõ chæ aûnh höôûng trong chuoãi cho neân khi theå hieän daáu nhaùy ñoâi
trong chuoãi thì khoâng caàn söû döïng daáu escape.
$element = <<<EOQ
<textarea name="$name" cols="$cols" rows="$rows"
wrap="$wrap">$value
EOQ;
Nhö ví duï treân caùc baïn thaáy khoâng caàn phaûi hao phí nhieàu daáu suyeät (\), chuùng ta vaãn coù theå
coù ñöôïc moät chuoãi chöùa caùc kyù hieäu daïng bieán khoâng coù taàm aûnh höôûng ra beân ngoaøi.
Caùc phaàn töû maûng söû duïng khoaù lieân hôïp (baïn seõ tìm hieåu ôû phaàn tieáp theo) khoâng theå söû
duïng Here Doc ñöôïc. Ví duï sau ñaây seõ xuaát hieän loãi:
$array = array ("fname"=>"jay", "lname"=>"greenspan");
$str = <<<EOQ
print my string $array["fname"]
EOQ;
Maûng (array) trong PHP
Maûng laø moät daïng cuûa bieán trong ñoù coù chöùa nhieàu giaù trò. Ví duï moät daïng ñôn giaûn cuûa maûng
laø thaùng:
$thang = array("Gieng", "Hai", "Ba", "Bon", "Nam",
"Sau", "Bay", "Tam", "Chin", "Muoi", "Muoi Mot", "Muoi Hai");
Maûng naøy coù chöùa 12 phaàn töû, vaø baïn coù theå ñònh vò chuùng baèng thöù töï ôû trong maûng, baét ñaàu
baèng vò trí 0. Do ñoù leänh echo $thang[0] seõ cho ra laø Gieng vaø echo $thang[11] seõ cho ra Muoi
Hai. Ñeå truy xuaát ñöôïc taát caû caùc phaàn töû trong maûng, baïn coù theå tính ra chieàu daøi cuûa maûng
vaø thöïc hieän voøng laëp:
for ($i=0; $i<count($months); $i++)
{
echo $thang[$i] . "\n" ;
}
Chi tieát veà voøng laëp seõ ñöôïc trình baøy ôû caùc phaàn sau. Baïn coù theå gaùn giaù trò vaøo maûng vôùi
moät pheùp toaùn ñôn giaûn nhö sau:
$dogs = array();
$dogs[0] = "kiki";
$dogs[1] = "lulu";
Neáu baïn khoâng xaùc ñònh chæ soá beân trong ngoaëc vuoâng thì giaù trò seõ ñöôïc gaùn cho phaàn töû cuoái
maûng. Trong ví duï sau "nana seõ ñöôïc gaùn vaøo $dogs[2]:
$dogs[] = "nana";
Maûng lieân hôïp
Cuõng gioáng nhö caùc ngoân ngöõ khaùc, PHP taän duïng khaû naêng cuûa maûng lieân hôïp (associative
array). Coù theå baïn caûm thaáy môùi meû vôùi khaùi nieäm naøy. Ñeå toâi noùi sô qua moät chuùt: Moãi phaàn
töû trong maûng lieân hôïp mang khoaù(key) rieâng. Caùc phaàn töû cuûa maûng seõ ñöôïc truy caäp thoâng
qua khoaù. Ñieàu naøy gioáng nhö caùch thöùc truy xuaát trong caùc query khi laøm vieäc vôùi Database.
Trong ví duï sau, baïn seõ thaáy caùc phaàn töû first_name, last_name, e-mail söû duïng caùc key:
$person = array (
"first_name" => "Jay",
"last_name" => "Greenspan",
"e-mail" => "jgreen_1@yahoo.com"
);
Neáu nhö baïn muoán theâm phaàn töû vaøo maûng, baïn coù theå gaùn tieáp moät giaù trò khaùc. Doøng leänh
sau seõ theâm moät soá nguyeân vaøo trong maûng, do ñoù maûng naøy seõ chöùa taát caû 4 phaàn töû.
$person["age"] = 32;
Neáu baïn muoán truy caäp caû khoaù vaø giaù trò cuûa moät maûng lieân hôïp, baïn seõ duøng list() = each()
nhö sau:
while (list($key, $value) = each($person))
{
echo "key : $key, value = $value \n";
}
Caùc chöông sau naøy toâi seõ noùi kyõ veà list() = each() moät caùch chi tieát hôn. Treân cô
baûn each() truy xuaát ñöôïc caû khoaù vaø giaù trò cuûa phaàn töû trong maûng. List() giöõ caùc giaù trò
vaø gaùn vaøo $key vaø $value. Tieán trình naøy tieáp tuïc cho ñeán khi moãi phaàn töû trong maûng ñöôïc
truy caäp. Neáu baïn muoán duyeät qua heát maûng baïn caàn phaûi söû duïng reset($person).
Neáu baïn chæ muoán söû duïng giaù trò cuûa phaàn töû trong maûng maø thoâi hoaëc baïn muoán söû duïng
maûng khoâng lieân lôïp vaø vaãn muoán söû duïng caáu truùc list()=each() baïn phaûi thöïc hieän nhö sau:
while (list( , $value) = each($person))
{
echo "value = $value \n";
}
Hoaëc baïn chæ muoán truy xuaát khoaù, baïn seõ laøm nhö sau:
while (list($key) = each($person))
{
echo "key = $key \n";
}
Haõy nhaän ñònh veà maûng trong PHP nhö sau:
- Taát caû caùc maûng trong PHP ñeàu laø maûng lieân hôïp. Taïi vì sao? Bôûi vì nhöõng maûng khoâng phaûi laø lieân hôïp thì
PHP cuõng seõ töï ñoäng gaùn cho chuùng caùc key. Ví duï: $x= array ("pug", "poodle"), PHP seõ töï gaùn cho $x caùc khoaù
laø caùc con soá nguyeân theo thöù töï baét ñaàu töø soá 0. Baïn seõ ñöôïc tìm hieåu kyõ ôû chöông 6.
Mảng đa chiều
PHP cuõng hoã trôï maûng ña chieàu. Maûng ña chieàu thöôøng söû duïng nhaát ñoù laø maûng hai chieàu.
Chuùng chöùa thoâng tin döïa treân hai khoaù. Giaû söû, neáu chuùng ta chöùa thoâng tin hai ngöôøi trôû leân
thì maûng hai chieàu seõ hoã trôï vieäc naøy raát toát. Chuùng ta seõ xaùc laäp moät maûng $people. Trong
maûng $people laïi chöùa maûng cho töøng caù nhaân:
$people = array (
"khai" => array ("ho_lot" => "tongphuoc", "tuoi" => 30),
"minh" => array ("ho_lot" => "leanh" , "tuoi" => 52)
);
Ta thaáy $people chöùa caùc thoâng tin cuûa 2 ngöôøi, Khai vaø Minh. Ñeå truy caäp moät trò trong baát
kyø thoâng tin cuûa caù nhaân naøo baïn seõ phaûi duøng caû hai khoaù. Ví duï ñeå truy xuaát tuoåi cuûa Minh
baïn seõ thöïc hieän leänh nhö sau:
echo $people["minh"]["tuoi"];
Baïn coù theå truy caäp taát caû caùc phaàn töû trong maûng hai chieàu baèng caùch söû duïng voøng laëp treân
caû hai chieàu cuûa maûng:
while(list($person, $person_array) = each($people))
{
echo "Ban biet gi ve $person\n";
while(list($person_attribute, $value) = each($person_array))
{
echo "$person_attribute = $value\n";
}
}
Bieán gaùn töø trình duyeät (web browser)
Quan ñieåm chung cuûa vieäc söû duïng PHP cuõng nhö caùc ngoân ngöõ khaùc laø cung caáp khaû naêng
nhaäp thoâng tin theo yù muoán cuûa khaùch. Thoâng thöôøng caùc thoâng tin naøy ñöôïc nhaäp vaøo thoâng
qua moät form HTML. Nhöng cuõng coù theå chuùng xuaát phaùt töø caùc nguoàn khaùc nhö: HTML,
cookie, session.
Bieán töø Form cuûa HTML
Daïng thoâng thöôøng nhaát ñeå khaùch coù theå nhaäp thoâng tin rieâng laø thoâng qua moät form HTML.
Trong phaàn phuï luïc A coù trình baøy chi tieát veà caùc taïo moät form HTML. Neáu baïn chöa bieát gì
veà caùch taïo form naøy thì haõy ñoïc phaàn phuï luïc. Baïn haõy taïo trang sign.php chæ chöùa 100% maõ
leänh HTML nhö sau (coù theå ñaët laø sign.htm cuõng ñöôïc):
Moät khi khaùch nhaáp chuoät vaøo nuùt SUBMIT (chaáp nhaän) thì caùc bieán nhö $email,
$first_name, vaø $submit seõ ñöôïc chuyeån giao sang trang action laø mypage.php. Sau ñoù, trong
trang mypage.php baïn seõ xöû lyù caùc bieán naøy tuyø thuoäc vaøo muïc ñích chöông trình. Ñeå yù raèng
phaàn lôùn caùc öùng duïng trong saùch naøy ñeàu söû duïng giaù trò cuûa nuùt leänh SUBMIT.
Trong trang mypage.php baïn phaûi vieát caùc leänh ñeå xöû caùc thao taùc cuûa ngöôøi truy caäp. Baïn
haõy xem caùch xöû lyù trong trang mypage.php maãu nhö sau:
<?php
if (isset($submit) && $submit=="OK")
{
echo "Cam on ban da gui thong tin cho chung toi.";
} else {
?>
<?php
}
?>
Baïn haõy xem kyõ ví duï treân, neáu nhö ngöôøi truy caäp nhaäp ñuû thoâng tin vaø nhaán nuùt OK töø trang
sign.php (chöùa toaøn maõ leänh html), thì noù chuyeån sang trang mypage.php vaø xuaát ra doøng
thoâng baùo: Cam on ban da gui thong tin cho chung toi. Ngöôïc laïi, neáu nhö nhaán nuùt Cancel
thì noù seõ thöïc hieän maõ leänh trong leänh Else vaø seõ hieån thò form ñeå buoäc nhaäp laïi.
Chuù yù: Baïn haõy xem laïi caùch thöùc submit trong ví duï GuestBook ôû taäp moät. Trong taäp 1, neáu
baïn khoâng choïn Submit thì chöông trình seõ goïi laïi trang sign.php laø trang chöùa Form nhaäp lieäu
baèng leänh include. Coøn ôû ñaây khoâng goïi laïi trang sign.php nöõa, bôûi vì chuùng ta laøm theo kieåu
khaùc laø gaén Form nhaäp lieäu ngay trong file Action laø mypage.php.
Caùc bieán cuõng coù theå ñöôïc truy xuaát thoâng qua maûng $HTTP_POST_VARS hoaëc
$HTTP_GET_VARS, döïa vaøo method söû duïng trong form cuûa baïn. Vieäc naøy raát thuaän tieän,
neáu caùc bieán töø caùc forms coù theå mang cuøng teân vôùi bieán trong script cuûa baïn, hoaëc neáu baïn
coù caùc bieán chöa ñònh nghóa ñöôïc chuyeån giao thì baïn seõ tìm ñöôïc ôû ñoù.
Baïn coù theå truy caäp baát kyø phaàn töû rieâng bieät naøo nhö ñaõ laøm trong maûng lieân hôïp
($HTTP_POST_VARS["e-mail"]). Hoaëc baïn coù theå taïo voøng laëp duyeät qua taát caû caùc phaàn töû
cuûa maûng:
while (list($key, $value) = each($HTTP_POST_VARS))
{
echo "variable = $key value = $value ";
}
Truyeàn maûng
Coù nhöõng tröôøng hôïp khi vieäc chuyeån giao bieán khoâng theå thöïc hieän ñöôïc. Ví duï nhö khi baïn
choïn caû hai giaù trò cho cuøng moät bieán. Vieäc naøy thöôøng xaûy ra khi laøm vieäc vôùi form coù chöùa
listbox vaø coù theå laø baïn seõ giöõ phím Ctrl ñeå choïn phaàn töû thöù 2 trong list. Ta giaûi quyeát baèng
caùch söû duïng pheùp truyeàn maûng.
Caùc leänh ñöôïc söû duïng nhö sau:
John
Jay
Jackie
Jordan
Julia
Ñeå yù raèng trong trong leänh caâu leänh select name, toâi söû duïng daáu ngoaëc vuoâng ñeå baûo PHP
bieát raèng ñaây laø moät maûng. Neáu khoâng söû duïng daáu [ ] thì seõ coù tôùi 2 giaù trò gaùn cho cuøng moät
bieán.
Moät khi ñöôïc SUBMIT baïn coù theå truy caäp maûng nhö sau:
if (is_array($j_names))
{
echo "the select values are: ";
while(list($key, $value) = each($j_names))
{
echo $value . "\n";
}
}
Vieäc truyeàn maûng raát thoâng duïng khi baïn Submit Form coù moät loaït caùc checkbox (teân caùc maët
haøng chaúng haïn). Khaùch truy caäp coù theå seõ nhaáp chuoät vaøo nhieàu checkbox hoaëc khoâng coù
checkbox naøo. Trong chöông 8, coù ví duï cho pheùp ngöôøi quaûn trò coù theå söû duïng checkbox ñeå
choïn vaø xoaù caùc phaàn töû.
Maûng ñöôïc chuyeån giao töø form coù theå coù khoaù lieân hôïp, ngay caû ñoái vôùi maûng nhieàu chieàu.
Teân cuûa phaàn töû form thöôøng coù teân laø name = "array_name[element_name]". Hoaëc ñoái vôùi
maûng nhieàu chieàu laø array_name[element_name] [subelement_name]".
Cookies
Cookie laø nhöõng file nhoû chöùa moät soá caùc thoâng tin truy caäp Web. Caùc cookie do Websever
phaùt sinh, löu giöõ laïi, sau ñoù seõ ñöôïc ñoïc ôû nhöõng laàn truy caäp veà sau.
Cookie ñôn thuaàn chæ laø thoâng tin ghi nhaän laïi nhöõng ñoäng taùc truy caäp web cuûa khaùch. Khi
toàn taïi treân ñóa cöùng, cookie trôû thaønh caùc thænh caàu cuûa giao thöùc HTTP, ñöôïc gôûi ñeán
Webserver.
Ñeå coù theå phaùt sinh moät cookie baïn caàn phaûi söû duïng haøm setcookie() nhö sau:
setcookie(name, value, time_to_expire, path, domain, security
setting);
Chuùng ta seõ tìm hieåu chi tieát veà cookie ôû chöông 6. Coøn baây giôø baïn tìm hieåu sô löôïc caùc chöùc
naêng thoâng qua moät ví duï:
setcookie("my_cookie",
"my_id",time()+(60*60*24*30),"/",".mydomain.com", 0)
Leänh treân seõ phaùt sinh moät cookie vôùi caùc chöùc naêng sau:
- Chöùa moät bieán teân laø my_cookie
- Giaù trò cuûa mycookie my_id
- Cookie toàn taïi trong voøng 30 ngaøy keå töø ngaøy noù phaùt sinh (time()+(30*24*60*60)
ngaøy giôø hieän taïi + 30 ngaøy ñöôïc quy ra giaây).
- Cookie coù taùc duïng ñeán taát caû caùc trang trong domain. Baïn coù theå haïn cheá laïi baèng caùc chæ
ra ñöôøng daãn ñeán moät soá trang naøo ñoù trong domain.
- Noù seõ hieän dieän trong taát caû caùc website coù ñòa chæ
- Khoâng coù xaùc laäp ñaëc bieät naøo veà baûo maät.
Moät khi cookie ñöôïc xaùc laäp, caùc bieán phaùt sinh töø cookie coù taùc duïng gioáng nhö bieán phaùt
sinh töø form maø chuùng ta ñaõ baøn tröôùc ñaây. Chuùng seõ hieän dieän vôùi chöùc naêng laø bieán global.
Sau khi script PHP xaùc laäp cookie, caùc script khaùc trong domain coù theå truy caäp cookie moät
caùch töï ñoäng.
Neáu nhö baïn muoán caån thaän hôn ñeå $mycookie khoâng xung ñoät vôùi moät bieán naøo khaùc cuõng
coù teân $mycookie, baïn coù theå truy xuaát noù thoâng qua maûng HTTP_COOKIE_VARS vaø söû
duïng leänh: HTTP_COOKIE_VARS["mycookie"].
Baïn coù theå xaùc laäp cookie cung caáp khaû naêng truy xuaát nhö laø moät maûng:
setcookie("mycookie[first]","dddd",time()+2592000,"/","192.168.1.
1", 0);
setcookie("mycookie[second]","my_second_id",time()+2592000,"/","1
92.168.1.1", 0);
Caû hai bieán treân ñeàu coù theå truy caäp ñeán nhö laø moät maûng lieân hôïp.
Sessions
PHP4 cuõng gioáng nhö ASP vaø