giáo trình php và mysql-daihoc.com.vn

Upload: cuong-viet

Post on 17-Feb-2018

240 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    1/44

    LAP TRNH WEB NG VI

    PHP / MySQL GUESTBOOK CATALOG FORUM SHOPPING CART

    PHAN 3

    Tong Phc Khai (tong hp & bien dch)

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    2/44

    BIEN (variables)

    va cac phep x ly tren bienPHP

    1- Bien va cach s dung Bien2- X ly d lieu t FORM3- Tm hieu sau hn ve Bien

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    3/44

    Ban oc than men,Va qua toi a soan xong phan 1 va phan 2 cua giao trnh t hoc PHP/MySQL. Toi c email cua nhng ban quan tam, ch i phan 3 cua giao trnh nay. ang le pcho ra i sm nhng v ban ron qua nhieu cong viec (hien toi ang phu trach va co rcong viec trong nhom Hanosoft - software Han Nom) nen viec bien soan sach t honhieu b tr hoan.Do hoan canh tren, chac chan cong viec bien soan nay khong tranh c nhng sai sodu sao i na, biet c cac ban co the ap dung giao trnh nay vao thc te th toi pcung lay o lam s khch le cho rieng mnh.ung ly ra phan 3 nay la danh tron cho viec noi ve ngon ng SQL nhng phan 2 a

    CSDL roi, neu phan nay neu cung ban ve no th co ve hi nham phai khong cac banngh nay toi a danh tron phan 3 e noi ve bien trong PHP.Han nhien toi biet mot so ban mong moi nhng g trong ay co the ap dung lien th hn. Nhng theo toi ngh trc tien het ban can phai nam ro moi ngoc ngach cua MySQL th mi co the thiet ke c nhng chng trnh at tieu chuan. Do vay monghay kien nhan khi oc nhng chng hng dan suong nh the nay! ng nan long va

    nh ay la coi re cho cac ng dung thc te cua cac ban.

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    4/44

    e bat au chng nay t nhat ban cung phai co chut nh kien thc ve C S Lap Trngh neu ban a hoc qua mot khoa lap trnh can ban th ban co the hieu c. Neu khhoi ban can phai ong nao hoac tm toi hi nhieu. Nao, chung ta bat au i thoi!PHP x ly cac bien rat linh ong. No co the nhan biet c kieu cua bien va lam chocau lenh n gian hn. Ai a tng lap trnh vi C, Java hoac Perl se cam thay rat de s dung PHP. Tuy nhien viec de dai nay cung gay ra mot so tr ngai nhat nh.Tat ca nhng bien khai bao trong PHP eu c bat au vi dau o la($). Du cua ban kieu chuoi, nguyen hay thap phan hoac tham ch la mang th chung khong cobiet nhau. PHP ch theo doi d lieu cha trong bien thay oi nh the nao thoi.

    Noi chung, khi lam viec vi PHP ban se quan tam en 3 v tr khac nhau cua bien khai bao ngay trong ma lenh PHP, (2) chuyen tiep t mot trang HTML hoac (3) la bietrong cua he thong PHP.

    Chung ta se tm hieu ve tng loai tren phan tiep theo. Nen lu y rang bien cung co the c cht cac ni khac nh t cac URL hoac t cac SESSION.

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    5/44

    Gan bien trong mot ScriptBan khong can phai khai bao EXPLICIT cho bien nh trong mot so ngon ng khac.khai bao ten bien la no se san sang lam viec. Ban hay xet cac v du sau e hieu cbao bien trong PHP uyen chuyen nh the nao:

    $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 chuoie y rang dau = la dau dung e gan. Con khi thc hien phep so sanh bang th ban dung hai dau bangdu: IF ($x= =1)

    PHP rat thong minh trong viec bien oi kieu. V du, ban thc hien phep cong mot so nvi mot chuoi cha ky t so (trong v du tren 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 chuoiSu tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    6/44

    $e = $b + $d;echo $e;

    PHP se nhan ra rang ban muon xem chuoi trong $d (chuoi "2") nh la mot so nguyenno se hoan chuyen sang tr nguyen va thc hien phep toan cong cho ra ket qua la

    Ngoai ra, PHP con co the hieu c cac chuoi va so va ch nh v du sau:

    $a = 2;$b = "2 con heo con";$c = $a + $b;Ket qua cho ra la $c = 4. Neu mot so nguyen hay thap phan ng v tr au mot

    PHP co the hieu c nh v du tren. Tng t, PHP thc hien tng t oi vi cackhac 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

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    7/44

    Viec x ly nay that la hay, nhng no co the dan en mot so rac roi o la se co nhngkhong biet tai thi iem nao ban se lam viec vi kieu cua bien la kieu g. Toi se ttrong phan Kiem Tra Bien.

    Qui nh ve chuoiTrong cac v du tren, ban thay tat ca cac chuoi eu c bao trong dau nhay oi. Co khac e ban the hien mot cho PHP hieu o la chuoi.Trong mot chuoi ma ban a bao lai bang cap nhay oi "...", xong ban chen mot bien vth PHP van hieu c bien o. V du:

    $my_name = "Jay";$phrase = "Hello, my name is, $my_name";echo $phrase;

    Ket qua cho ra la: Hello, my name is, Jay. That khac thng phai khong cac ban?! (dau nhay " th hai phai sau ch is roi at mot dau cong chuoi vi bien $my_name)

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    8/44

    Trong trng hp sau ay, toi muon xuat ra mot chuoi: Toi ang ky hosting het $20lam sao? Bi v trong chuoi nay co cha $, ieu nay se lam cho PHP hieu o la mot bChung ta xem cach giai quyet nh sau:Neu nh trong chuoi ban muon co cha cac ky t ac biet nh: dau nhay oi"", dadau o la$ , ban phai s dung en ky t chuyen (goi la dau escape) o la dau slash (\Toi quen oc dau / la "dau suyet trai" va \ la "dau suyet phai".

    Gia s, e xuat ra man hnh mot dong ch:

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    9/44

    $my_name = "Jay";echo Hello, my name is, $my_name;

    Ket qua cho ra laHello, my name is, $my_name ch khong phai Hello, my name is Jay

    Cuoi cung, trong PHP4 ban co the s dung dau Here Documents. ay la mot loaitng t hai loai nhay n va nhay oi. Trong mot so trng hp khi s dung no banthay rat tien li. Here Docs xac nh gii han au chuoi vi 3 dau nho hn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    10/44

    $element =

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    11/44

    Mang (array) trong PHP

    Mang la mot dang cua bien trong o co cha nhieu gia tr. V du mot dang n gian cla thang:

    $thang = array("Gieng", "Hai", "Ba", "Bon", "Nam","Sau", "Bay", "Tam", "Chin", "Muoi", "Muoi Mot", "Muoi Hai"

    Mang nay co cha 12 phan t, va ban co the nh v chung bang th t trong mangbang v tr 0. Do o lenh echo $thang[0] se cho ra la Gieng va echo $thang[11] se choHai. e truy xuat c tat ca cac phan t trong mang, ban co the tnh ra chieu dai c

    va thc hien vong lap:

    for ($i=0; $i

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    12/44

    $dogs = array();$dogs[0] = "kiki";$dogs[1] = "lulu";

    Neu ban khong xac nh ch so ben trong ngoac vuong th gia tr se c gan cho phanmang. Trong v du sau "nana se c gan vao $dogs[2]:

    $dogs[] = "nana";

    Mang lien hpCung giong nh cac ngon ng khac, PHP tan dung kha nang cua mang lien hp (asarray). Co the ban cam thay mi me vi khai niem nay. e toi noi s qua mot chut: Mt trong mang lien hp mang khoa(key) rieng. Cac phan t cua mang se c truy cqua khoa. ieu nay giong nh cach thc truy xuat trong cac query khi lam viec vi DTrong v du sau, ban se thay cac phan t first_name, last_name, e-mail s dung cac k

    $person = array ("first_name" => "Jay",

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    13/44

    "last_name" => "Greenspan","e-mail" => "[email protected]");

    Neu nh ban muon them phan t vao mang, ban co the gan tiep mot gia tr khac. Dosau se them mot so nguyen vao trong mang, do o mang nay se cha tat ca 4 phan t

    $person["age"] = 32;

    Neu ban muon truy cap ca khoa va gia tr cua mot mang lien hp, ban se dung list() =nh sau:

    while (list($key, $value) = each($person)){echo "key : $key, value = $value
    \n";}

    Cac chng sau nay toi se noi ky ve list() = each() mot cach chi tiet hn.ban each() truy xuat c ca khoa va gia tr cua phan t trong mang. List() gi ca

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    14/44

    va gan vao $key va $value. Tien trnh nay tiep tuc cho en khi moi phan t trong matruy cap. Neu ban muon duyet qua het mang ban can phai s dung reset($person).

    Neu ban ch muon s dung gia tr cua phan t trong mang ma thoi hoac ban muon mang khong lien lp va van muon s dung cau truc list()=each() ban phai thc hien n

    while (list( , $value) = each($person)){echo "value = $value
    \n";}

    Hoac ban ch muon truy xuat khoa, ban se lam nh sau:

    while (list($key) = each($person)){echo "key = $key
    \n";}

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    15/44

    Hay nhan nh ve mang trong PHP nh sau:- Tat ca cac mang trong PHP eu la mang lien hp. Tai v sao? Bi v nhng mang khong phai la lPHP cung se t ong gan cho chung cac key. V du: $x= array ("pug", "poodle"), PHP se t gan cho $la cac con so nguyen theo th t bat au t so 0. Ban se c tm hieu ky chng 6.

    Mng a chiuPHP cung ho tr mang a chieu. Mang a chieu thng s dung nhat o la mang hChung cha thong tin da tren hai khoa. Gia s, neu chung ta cha thong tin hai ngth mang hai chieu se ho tr viec nay rat tot. Chung ta se xac lap mot mang $peoplmang $people lai cha mang cho tng ca nhan:

    $people = array ("khai" => array ("ho_lot" => "tongphuoc", "tuoi" => 30),"minh" => array ("ho_lot" => "leanh" , "tuoi" => 52));

    Ta thay $people cha cac thong tin cua 2 ngi, Khai va Minh. e truy cap mot tr troky thong tin cua ca nhan nao ban se phai dung ca hai khoa. V du e truy xuat tuoi cu

    ban se thc hien lenh nh sau:

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    16/44

    echo $people["minh"]["tuoi"];

    Ban co the truy cap tat ca cac phan t trong mang hai chieu bang cach s dung vong ca hai chieu cua mang:

    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";}

    }

    Bien gan t trnh duyet (web browser)Quan iem chung cua viec s dung PHP cung nh cac ngon ng khac la cung cap knhap thong tin theo y muon cua khach. Thong thng cac thong tin nay c nhap v

    qua mot form HTML. Nhng cung co the chung xuat phat t cac nguon khac nhcookie, session.

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    17/44

    Bien t Form cua HTMLDang thong thng nhat e khach co the nhap thong tin rieng la thong qua mot formTrong phan phu luc A co trnh bay chi tiet ve cac tao mot form HTML. Neu ban ch

    ve cach tao form nay th hay oc phan phu luc. Ban hay tao trang sign.php ch cha 1lenh HTML nh sau (co the at la sign.htm cung c):

    Mot khi khach nhap chuot vao nut SUBMIT (chap nhan) th cac bien nh$first_name, va $submitse c chuyen giao sang trang action la mypage.php. Sau trang mypage.php ban se x ly cac bien nay tuy thuoc vao muc ch chng trnh. phan ln cac ng dung trong sach nay eu s dung gia tr cua nut lenh SUBMIT.

    Trong trang mypage.php ban phai viet cac lenh e x cac thao tac cua ngi truy chay xem cach x ly trong trang mypage.php mau nh sau:

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    18/44

    Ban hay xem ky v du tren, neu nh ngi truy cap nhap u thong tin va nhan nut OKsign.php (cha toan ma lenh html), th no chuyen sang trang mypage.php va xuatthong bao: Cam on ban da gui thong tin cho chung toi. Ngc lai, neu nh nhan nuth no se thc hien ma lenh trong lenh Else va se hien th form e buoc nhap lai.

    Chu y: Ban hay xem lai cach thc submit trong v du GuestBook tap mot. Trong taban khong chon Submit th chng trnh se goi lai trang sign.php la trang cha Form n

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    19/44

    bang lenh include. Con ay khong goi lai trang sign.php na, bi v chung ta lam tkhac la gan Form nhap lieu ngay trong file Action la mypage.php.

    Cac bien cung co the c truy xuat thong qua mang $HTTP_POST_VAR$HTTP_GET_VARS, da vao method s dung trong form cua ban. Viec nay rat thu

    neu cac bien t cac forms co the mang cung ten vi bien trong script cua ban, hoac co cac bien cha nh ngha c chuyen giao th ban se tm c o.

    Ban co the truy cap bat ky phan t rieng biet nao nh a lam trong mang lien hp($HTTP_POST_VARS["e-mail"]). Hoac ban co the tao vong lap duyet qua tat ca cac cua mang:

    while (list($key, $value) = each($HTTP_POST_VARS)){echo "variable = $key value = $value
    ";}

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    20/44

    Truyen mangCo nhng trng hp khi viec chuyen giao bien khong the thc hien c. V du nhchon ca hai gia tr cho cung mot bien. Viec nay thng xay ra khi lam viec vi formlistbox va co the la ban se gi phm Ctrl e chon phan t th 2 trong list. Ta giai quy

    cach s dung phep truyen mang.Cac lenh c s dung nh sau:

    JohnJayJackieJordanJulia

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    21/44

    e y rang trong trong lenh cau lenh select name, toi s dung dau ngoac vuong e bbiet rang ay la mot mang. Neu khong s dung dau [ ] th se co ti 2 gia tr gan cho cbien.

    Mot khi c SUBMIT ban co the truy cap mang nh sau:

    if (is_array($j_names)){echo "the select values are:

    ";while(list($key, $value) = each($j_names)){echo $value . "
    \n";}

    }

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    22/44

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    23/44

    Viec truyen mang rat thong dung khi ban Submit Form co mot loat cac checkbox (tenhang chang han). Khach truy cap co the se nhap chuot vao nhieu checkbox hoac kcheckbox nao. Trong chng 8, co v du cho phep ngi quan tr co the s dung checchon va xoa cac phan t.Mang c chuyen giao t form co the co khoa lien hp, ngay ca oi vi mang nhieu

    Ten cua phan t form thng co ten la name = "array_name[element_name]". Hoac mang nhieu chieu la array_name[element_name] [subelement_name]".

    CookiesCookie la nhng file nho cha mot so cac thong tin truy cap Web. Cac cookie do Wphat sinh, lu gi lai, sau o se c oc nhng lan truy cap ve sau.Cookie n thuan ch la thong tin ghi nhan lai nhng ong tac truy cap web cua khton tai tren a cng, cookie tr thanh cac thnh cau cua giao thc HTTP, c Webserver.e co the phat sinh mot cookie ban can phai s dung ham setcookie() nh sau:

    setcookie(name, value, time_to_expire, path, domain, securi

    setting);

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    24/44

    Chung ta se tm hieu chi tiet ve cookie chng 6. Con bay gi ban tm hieu s lc cnang thong qua mot v du:

    setcookie("my_cookie","my_id",time()+(60*60*24*30),"/",".mydomain.com", 0)

    Lenh tren se phat sinh mot cookie vi cac chc nang sau:- Cha mot bien ten la my_cookie- Gia tr cua mycookie my_id- Cookie ton tai trong vong 30 ngay ke t ngay no phat sinh (time()+(30*24*ngay gi hien tai + 30 ngay c quy ra giay).- Cookie co tac dung en tat ca cac trang trong domain. Ban co the han che lai bang c

    ra ng dan en mot so trang nao o trong domain.- No se hien dien trong tat ca cac website co a ch http://mydomain.com- Khong co xac lap ac biet nao ve bao mat.

    Mot khi cookie c xac lap, cac bien phat sinh t cookie co tac dung giong nh bsinh t form ma chung ta a ban trc ay. Chung se hien dien vi chc nang la bie

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    25/44

    Sau khi script PHP xac lap cookie, cac script khac trong domain co the truy cap coocach t ong.Neu nh ban muon can than hn e $mycookie khong xung ot vi mot bien nao khco ten $mycookie, ban co the truy xuat no thong qua mang HTTP_COOKIE_VARdung lenh: HTTP_COOKIE_VARS["mycookie"].

    Ban co the xac lap cookie cung cap kha nang truy xuat nh la mot mang:

    setcookie("mycookie[first]","dddd",time()+2592000,"/","192.1", 0);

    setcookie("mycookie[second]","my_second_id",time()+2592000,

    92.168.1.1", 0);

    Ca hai bien tren eu co the truy cap en nh la mot mang lien hp.

    Sessions

    PHP4 cung giong nh ASP va ColdFusion eu co ho tr session, viec nay giup ch rcho viec truy cap web. Vay session la g?

    Su tm bi:www.daihoc.com.vn

    i h l i khi h i

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    26/44

    n gian no ch la mot cach thc e duy tr va truyen bien trong khi chuyen tiep trang web. Chng trnh cua ban khai bao mot session c bat au vi ham start_sPHP ang ky mot SesssionID duy nhat, va thng th ID nay c gi en user thongcookie. PHP sau o tao mot tap tin tren server e theo doi s thay oi cua bien. Tapco ten giong nh ten cua SessionID.

    Mot khi session c tao, ban co the ang ky bat ky so lng bien. Cac gia tr cua nhnay c lu gi trong tap tin tren server. Cung nh s ton tai cua cookie, cac bisession se hien dien tren bat ky trang nao c truy cap en trong pham vi mot domaxac lap nay rat thuan tien hn la chuyen tiep cac bien t trang nay sang trang khac thcac phan t an trong form hay cookie.Session noi chung la kha n gian. Hay xem script sau se ang ky mot bien sessio

    $my_var, va se gan cho no mot gia tr la "hello world".

    Su tm bi:www.daihoc.com.vn

    T h t ti th bi $ hi di h h khi b h

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    27/44

    Tren nhng trang tiep theo bien $my_var se hien dien, nhng ch sau khi ban chsesssion_start(). Ham nay bao PHP tm kiem mot session xem co ton tai hay khongcho cac bien session tr thanh global. No co the s dung cau lenh IF e lam cho session hoan toan co the truy cap c. Hay xem xet v du sau:

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    28/44

    //run and make an assignment to $your_name.} elseif (isset($submit) && empty($your_name)){$your_name = $first_name . " " . $last_name;echo "Thank you, $your_name";}

    Sau khi chay chng trnh nay, chon refresh tren trnh duyet. Ban se thay script se nrang ban la ai.Cac ham setcookie() va session_start() nen v tr gan au tap tin. Neu ban th chutrnh duyet trc e xac lap mot cookie ban se nhan c mot thong bao loi.

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    29/44

    Bien san coCo rat nhieu bien san co cua PHP va Server. Ban co the liet ke mot danh sach ay u

    cach s dung lenh phpinfo() e xem. Ban hay tao mot file php va cho chay th xem:

    Ban co the s dung cac bien nay bang nhieu cach thc khac nhau. Toi se trnh bay

    ngay sau ay, va se ch ra ban nen dung vao trng hp nao. Mot so bien en t PHPmot so khac bat nguon t Webserver.

    Su tm bi:www.daihoc.com.vn

    Bi PHP

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    30/44

    Bien san co cua PHP

    PHP_SELFBien nay nhan gia tr la a ch hien tai cua tap tin .php ang c duyet. a ch nay

    ch ay u t goc (bat au t http://) . Ban se s dung no khi muon truy cap lai chnh tweb ang thi thanh.Xet v du sau, ay la mot form tng t nh form sign.php ma cac ban a co dp xet qkhach thc hien thao tac khac vi submit th chnh form nay se c thi hanh lai:

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    31/44

    HTTP_POST_VARSay la mot mang cha tat ca cac bien c chuyen tiep thong qua POST method t mBan co the truy cap tng bien rieng re nh la mot phan t cua mang lien hp (v du:$PHP_POST_VARS["myname"]).

    HTTP_GET_VARSay la mot mang cha tat ca cac bien c chuyen tiep thong qua GET method. Ban

    truy cap tng bien rieng re nh la mot phan t cua mang lien hp (v du:$PHP_GET_VARS["myname"]).

    HTTP_COOKIE_VARSTat ca cac cookie chuyen en trnh duyet eu co the c truy xuat trong mang lien hNo bao gom ca session cookie. Neu ban con thac mac cookie se thi hanh nh the nao xem ham phpinfo() e biet c trnh duyet cua ban ang chuyen en server nhng g

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    32/44

    BIEN CUA APACHEApache co san rat nhieu bien. Toi khong trnh bay ay u tat ca cac bien ra ay. Cban s dung, chung tuy thuoc vao xac lap hien tai cua ban nh the nao. Sau ay l

    bien ma co le ban se s dung thng xuyen trong chng trnh cua ban.

    DOCUMENT_ROOTBien nay tra ve ng dan cua Webserver. Bien nay c toi s dung trong xuyen susach nay. Hay xet v du sau:

    include"$DOCUMENT_ROOT/book/functions/charset.php";

    Bang cach s dung bien DOCUMENT_ROOT thay v dung ng dan tuyet oi, chuthe di chuyen toan bo mot th muc sang mot Apache Server khac ma khong lo lang dan se b sai lech trong include path. Nen nh rang neu nh ban khong s dungServer th bien nay khong s dung c. Neu ban s dung include_path trong tap tin

    Su tm bi:www.daihoc.com.vn

    ban khong can phai lo lang phai xac nh ng dan nh the nao bi v PHP se duye

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    33/44

    ban khong can phai lo lang phai xac nh ng dan nh the nao bi v PHP se duyeca cac th muc va tm ra tap tin ban a ch nh.

    HTTP_USER_AGENTBat ky ai a tng thiet ket Web site eu hieu rang tam quan trong cua viec nhan da

    trnh duyet cua ngi s dung la g. Mot so trnh duyet th khong s dung c Javmot so khac th oi hoi dang HTML n gian. Bien user_agent cung cap cho ban kuyen chuyen oi vi tng trnh duyet khac nhau. Mot user_agent chuan co dang nh t

    Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)

    Neu ban phan tch chuoi nay ra ban se biet c nhng g ban can tm. Co the ban ham get_browser() cua PHP. Ve ly thuyet ma noi, ham nay nh ngha kha nang cho ptrnh duyet cua user ang s dung. Cho nen ban co the biet c la chng trnh cua bphuc vu tot hay khong. Cac sach PHP co nhng hng dan ve cach cai at va get_browser(), nhng toi khuyen ban khong nen s dung no. Bi v s dung get_brose c bao rang IE 5 dung cho PC va Netscape 4.01 dung cho Mac co ho tr CSS (c

    stylesheets) va JavaScript. Nhng bat ky ngi s dung nao cung biet rang: viet lenh

    Su tm bi:www.daihoc.com.vn

    e chay tren ca hai moi trng trnh duyet nay la mot cong viec phc tap. Thong tin b

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    34/44

    e chay tren ca hai moi trng trnh duyet nay la mot cong viec phc tap. Thong tin bc t get_browser() co the dan en nhng tnh nang gia trong bao mat. Cach tot nhas dung HTTP_USER_AGENT va thc hien quyet nh cua mnh da tren trnh duyplatform xac nh nao o.

    REMOTE_ADDRDung e lay a ch IP cua user. Tuy nhien co nhng user am hieu chuyen nay va cthay oi IP cua may mnh. Cho nen khong lay g e am bao rang: mot a ch IP chla cua mot user nao o. Ban s dung bien nay e theo doi s truy nhap cua mot useno ch mang tnh tng oi thoi.

    REQUEST_URIBien nay cung giong nh bien PHP_SELF. Ngoai ra no con cha them tham so trong truy van . Neu ban truy cap vao a ch:http://www.mydomain.com/info/products/index.php?id=6

    Th bien REQUEST_URI cua ban co gia tr la: info/products/index.php?id=

    SCRIPT_FILENAMEBien nay cha toan bo ng dan cua tap tin.

    Su tm bi:www.daihoc.com.vn

    Ki t bi

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    35/44

    Kiem tra bien tren chung ta a noi nhieu ve Bien. Nh cac ban biet o, ten cua mot bien khotrong bang gia tr ma no cha trong o. Nh toi a noi Bien trong PHP rat uyen chuyenay phat sinh s bat li la ban se khong biet tai mot thi iem nao o th bien nay

    gia tr g. Do o ban can phai thc hien thao tac kiem tra bien.

    isset( )Ham nay thc hien viec kiem tra bien co cha gia tr hay khong. No se tra ve gia tr Thoac FALSE. Neu bien cha c xac lap th tr isset() se la false.Ban hay xem xet v du sau, no thi hanh mot query MySQL. Ban a biet rang mot fiedatabase co the cha tr null hoac chuoi rong. Vi viec s dung ham isset() ban se kiephan biet c hai gia tr tren. Trong oan lenh PHP ben di. Trong o bien $querphat bieu SELECT lay d lieu submit t form cua user.

    $result = mysql_query($query) or

    die (mysql_error());

    $number_cols = mysql_num_fields($result);

    Su tm bi:www.daihoc.com.vn

    echo "query: $query
    \n";

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    36/44

    //layout table header

    echo "\n";

    echo "\n";

    for ($i=0; $i

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    37/44

    echo "\n";

    }

    echo "";

    Lu y rang dau cham than (!) co ngha la phu nh.Tc la neu $var co gia tr null th:isset($var) cho ra gia tr False!isset($var) cho ra gia tr True

    empty()Ham empty() co ve ngc ngao so vi ham isset(). No se cho ra tr True neu $var co tchuoi rong hoac so 0. Ham nay thng c s dung e kiem tra xem user co nhap trtrong form hay khong:

    if(empty($first_name))

    {

    echo "Ban can phai nhap ten cua minh";

    exit;

    Su tm bi:www.daihoc.com.vn

    }

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    38/44

    is_int( )Ham nay e kiem tra bien co phai la so nguyen hay khong. Co 2 cu phap khac cho qua nh no la: is_integer va is_long(). Ban s dung ham nay khi khong chac rang bie

    tr nguyen hay chuoi. V du:

    $a = "222";

    $b = 22;

    is_int($a) cho ra tr False

    is_int($b) cho ra tr True

    Tng t ban se co mot loat ham kiem tra kieu cua bien sau ay:

    is_double()Kiem tra so kieu double (dau phay ong). Ham thay the: is_float() va is_rea

    Su tm bi:www.daihoc.com.vn

    is string( )

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    39/44

    is_string( )Kiem tra kieu chuoi.

    is_array( )Kiem tra kieu mang.

    is_bool( )Kiem tra kieu boolean (TRUE va FALSE)

    is_object( )Kiem tra bien kieu object. Ban se tm hieu kieu object trong cac phan sau.

    gettype( )Ham nay se cho ban biet kieu cua bien nh: string, double, integer, array, hoac Ngoai ra no co tra ve cac kieu nh object, class. Ban se khao sat ky ve viec lap trn

    oi tng trong cac phan sau e biet them ve object va class.

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    40/44

    Lu y tr cua han gettype() tra ve luon la mot chuoi: "string", "integer", "double" v.v.Ban hay xem v du sau:

    $str = "Day la mot chuoi";

    $type = gettype($str);

    if ($type == "string")

    {

    echo "Dung vay";

    }

    Su tm bi:www.daihoc.com.vn

    oi kieu cua bien

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    41/44

    oi kieu cua bienBan se s dung 3 cach e oi kieu cua bien.

    Phng phap type castingPhng phap nay rat n gian: Ban ch can ghi ten kieu ra, ong ngoac n lai, roi atbien. Tc khac bien se b oi theo kieu ma ban muon.Cach thc: (kieu) $bienV du:

    $a = 1;$b = (string)$a; //so 1 se bien thanh chuoi 1echo gettype($a), "
    \n";

    echo gettype($b), "
    \n";

    Ket qua cho ra la:integer

    string

    Su tm bi:www.daihoc.com.vn

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    42/44

    S dung ham settype( )Ham nay co 2 oi so. Th nhat la ten bien, th nh la kieu. u iem cua no la no cora ket qua FALSE neu nh viec hoan oi khong c.

    Cach thc: settype($bien, "kieu")V du:

    $a = 1;

    settype($a, "string");

    S dung ham intval( ), doubleval( ), va stringval( )Phng phap nay thng e ban ap dung nhanh trong khi tnh toan. Co le nhn ten hamcung biet c chc nang cua no roi. Hay xet v du sau:

    $a = "43";/ /43 la kieu chuoi$b = (intval($a) * 2);

    Su tm bi:www.daihoc.com.vn

    Bien cua bien

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    43/44

    Bien cua bienNghe qua co ve la la, nhng ay la mot "oc chieu" cua PHP. Vi cach thc nay ban gia tr cua mot bien e hnh thanh ten cua mot bien mi .

    Cach thc: $$bienV du:

    $a = khai;

    $$a = Chao moi nguoi;

    Ban se thay trong v du tren mot bien mi c hnh thanh o la $khai cha gia tr la

    moi nguoi"

    Xet them v du sau, trong o $tacgia la mot mang lien hp.

  • 7/23/2019 Gio trnh PHP v MySQL-daihoc.com.vn

    44/44

    $field = bien_$field ;

    $$field = $value;

    }

    echo $bien_ho, " ", $bien_ten;

    ?>

    Khi chay chng trnh, cac bien sau se c tao $bien_ho, $bien_ten va ghi rahnh: Tong Khai

    Tom tatBan a tm hieu cac bien trong PHP. Ban thay PHP x ly cac bien linh hoat hn nhiecac ngon ng khac. Con mot van e kha quan trong oi vi bien o la scope ban cunky ve no trong cac phan sau cua giao trnh nay.

    (Con tiep)

    Su tm bi:www.daihoc.com.vn