Đăng ký Đăng nhập
Trang chủ Công nghệ thông tin Kỹ thuật lập trình Kỹ thuật lập trìnhhướng dẫn lập trình php- phần 3...

Tài liệu Kỹ thuật lập trìnhhướng dẫn lập trình php- phần 3

.PDF
44
246
109

Mô tả:

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 $b $c $d = = = = "Toi thich hoc PHP"; //day la bien chuoi 4; //day la bien so 4.837; //day la bien so thuc "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 $b $c $d = = = = "Toi thich hoc PHP"; //day la bien chuoi 4; //day la bien so 4.837; //day la bien so thuc "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 = <<$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 = <<\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" => "[email protected]" ); 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:
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:
- Xem thêm -

Tài liệu liên quan