Giáo trình PHP căn bản - Bùi Quốc Huy
Tóm tắt Giáo trình PHP căn bản - Bùi Quốc Huy: ...u bài này các bn ã có nhng khái nim u tiên v PHP, các cú pháp, các ki u d liu, và cách làm vic vi môi trng PHP nh th nào. , bài sau, chúng ta s tip t&c tip cn vi các thut toán và cú pháp PHP mt cách rõ ràng và quen thuc trong các ngôn ng lp trình. Giáo trình PHP Cn ... //Hàm có giá tr) tr v: true/false. function IsNguyenTo($num) { Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 35/68 www.qhonline.info for($i=2; $i<$num; $i++) if ($num % $i==0) return false; return true; } // Hàm không có giá tr) tr v. Kt qu in ngay trong hàm f...txt”; @$fw = fopen ($f, “a”); if (!$fw) { echo (“File b) tr&c trc, không m% c”); } Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 48/68 www.qhonline.info ?> 2- óng file : hàm fclose () Cú pháp : int fclose (int fw) $fw là bin nhn giá tr) tr v khi gi hàm m...
s th ba thì nó s ghi vào file chu!i str (i th hai) có dài úng b'ng chiu dài length ca i s th ba. Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 50/68 www.qhonline.info II- Các hàm x lý file: 1- Các hàm dch chuyn hoc qun lý con tr$ m%u tin trong file : a) Hàm rewind () Cú pháp : int rewind (int fw); a con tr- m3u tin v u file b) Hàm fseek () Cú pháp : int fseek (int fw, int offset); Di chuy n con tr- m3u tin n mt v) trí xác )nh trong file offset : s byte hoc s character tính t u file Ví d& : fseek ($fw, 1); // di chuy n n ký t th hai ca file c) Hàm ftell () Cú pháp : int ftell (int fw); cho bit v) trí hin thi ca con tr- m3u tin Ví d& : fseek ($fw, ftell ($fw) + 20); t v) trí hin thi d)ch chuy n thêm 20 ký t d) Hàm feof () Cú pháp : int feof (int fw); cho bit v) trí cui file Ví d& : if (!$fw = fopen (“vanban.txt”, “r”)) { echo (“could not open file”); } else { while (!feof ($fw)) { echo (fgetc ($fw)); } } 2- Copy, Delete, Rename file: a) Hàm Copy () Cú pháp : int copy (string source, string destination); Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 51/68 www.qhonline.info b) Hàm unlink () Cú pháp : int unlink (string filename); delete file, file c delete phi óng (không m%) c) Hàm rename () Cú pháp : int rename (string oldname, string newname); t tên file li II- Tng kt: Vic s( d&ng file mt cách thành tho s giúp bn d dàng vn hành các ng d&ng mang quy mô va và nh- nh: website nhiu ngôn ng, b m,và c nhng công ngh web mi nh XML mt cách d dàng, Qua bài hc này chúng ta cng hi u c nguyên lý hot ng, trình t x( lý 1 file d liu khi chúng c triu gi trong tài liu PHP. Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 52/68 www.qhonline.info Bài 7: X( Lý Form Trong PHP I- Tng tác vi ng i s dng: PHP cho phép ngi s( d&ng tng tác vi chúng thông qua form nhp liu c vit thu n túy trên HTML. Tuy nhiên làm c iu "y PHP yêu c u form phi áp ng 1 s quy )nh chung t ra. Chúng ta cùng phân tích th$ form trong HTML sau: Chúng ta th"y r'ng 1 form phi bao g#m: Tên form d dàng tách bit vi giá tr) ca chúng. Action: hành ng chuy n tip n link x( lý. Method: Là phng thc truyn bao g#m POST và GET. Ví d&: Please type your name here : Vy làm cách nào chúng ta l"y c giá tr) va nhp liu nào ?. PHP cho phép ta l"y giá tr) da vào 2 phng thc POST và GET. i vi POST ta có : $_POST[‘Giá tr)’] i vi GET ta có : $_GET[‘Giá tr)’] Vy vi on code trên có th l"y c bin x( lý là : $_POST[‘username’]; II- X lý d liu t! trang ng i nhp liu. 1- Ph"ng thc POST: Phng thc này c s( d&ng l"y d liu t form nhp liu. Và chuy n chúng lên trình ch webserver. 2- Ph"ng thc GET: Phng thc này cng c dùng l"y d liu t form nhp liu. Tuy nhiên nhim v& chính ca nó v+n là l"y ni dung trang d liu t web server. Bài tp ví d&: Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 53/68 www.qhonline.info Xây dng 1 trang HTML vi ni dung g#m form nhp liu h và tên. Sau ó dùng 1 file php xu"t ra thông tin h và tên mà ngi s( d&ng va nhp liu. áp Án: To file userform.htm vi ni dung sau: Please type your name here : To file processform.php xu"t ra d liu <? echo “Welcome, ” . $_POST[‘username’] . “!”; ?> Bài tp áp d&ng : To 1 trang web vi hp thoi nhp liu username và password. Nu ngi s( d&ng nhp thông tin username/password là admin/12345 thì xu"t ra thông báo “welcome, admin” vi ki u ch Tahoma, màu -. Ngc li nu nhp sai thì xu"t thông báo “Username hoc password sai. Vui lòng nhp li”. áp án: To trang login.html vi ni dung sau: login page Username Password Tip t&c to trang checklogin.php vi ni dung sau: Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 54/68 www.qhonline.info <?php $username=$_POST['user']; $password=$_POST['pass']; if($username == "admin" && $password="12345") { echo "Welcome to, ".$username.""; } else { echo "Username hoac password khong chinh xac, vui long dang nhap lai"; } ?> III- Tng Kt: Kt thúc bài này các bn ã n m c k/ thut ki m tra thông tin da trên PHP. K/ thut xây dng trang upload, ki m tra tính hp l ca ngi s( d&ng 1 cách d dàng b%i s tùy bin trong các bi u thc ca PHP. Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 55/68 www.qhonline.info Bài 8: Qun Lý Phiên Làm Vic I- Tng quan v cookie: Cookie là 1 on d liu c ghi vào a cng hoc b nh ca máy ngi s( d&ng. Nó c trình duyt g%i ngc lên li server m!i khi browser ti 1 trang web t server. Nhng thông tin c lu tr trong cookie hoàn toàn ph& thuc vào website trên server. M!i website có th lu tr nhng thông tin khác nhau trong cookie, ví d& thi i m l n cui ta ghé thm website, ánh d"u ta ã login hay cha, v.v... Cookie c to ra b%i website và g%i ti browser, do vy 2 website khác nhau (cho dù cùng host trên 1 server) s có 2 cookie khác nhau g%i ti browser. Ngoài ra, m!i browser qun lý và lu tr cookie theo cách riêng ca mình, cho nên 2 browser cùng truy cp vào 1 website s nhn c 2 cookie khác nhau. 1- Thit l&p cookie trong PHP: thit lp cookie ta s( d&ng cú pháp: Setcookie(“tên cookie”,”giá tr)”) Tên cookie là tên mà chúng ta t cho phiên làm vic. Giá tr) là thông s ca tên cookie. Ví d&: Setcookie(“username”,”admin”) Nh ví d& trên ta th"y vi tên là username và giá tr) là admin. Chú ý: K)ch bn cookie phi t trên mi giá tr) tr v bao g#m th$ HTML và lnh echo. 2- S dng cookie trong PHP: s( d&ng li cookie va thit lp, chúng ta s( d&ng cú pháp: Cú pháp: $_COOKIE[“tên cookies”] Tên cookie là tên mà chúng ta thit lp phía trên. Ví d&: To trang cookie.php vi ni dung sau: <?php Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 56/68 www.qhonline.info setcookie("name","Kenny Huy"); ?> Test page 1 Click here Tip t&c to trang cookie2.php vi ni dung sau: Result Page <?php echo "Ten cua ban la ".$_COOKIE['name'].""; ?> 3- nh dng các tham s khác trong cookie: Cú pháp c bn: Setcookie(“Tên Cookie”,”Giá tr)”,”Thi Gian”,”ng d+n”,”Tên min”,”An toàn” Tên cookie là tên mà chúng ta t cho phiên làm vic. Giá tr) là thông s ca tên cookie. Thi gian là thi hn dùng thit lp s t#n ti ca cookie. c tính theo s giây so vi mc ngày 1-1-1970. Thng c tính b'ng thi gian hin ti cng vi 1 khong thi gian nào ó mun s( d&ng cookie ng d+n là th m&c nào thì cookie có tác d&ng. Tên min là tên trang web mà chúng ta thit lp cookie . An toàn là s la chn cookie có c g(i theo giao thc HTTPS hay không. Chn 1 là có và 0 là kt ni thông thng(HTTP). Ví d&: Setcookie(“user_id”,”1301”,time()+3600,”/”,””,0); Tên cookie: User_id Giá tr): 1301 Thi gian: Cookie t#n ti trong 1 gi tính t thi gian thit lp. Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 57/68 www.qhonline.info ng d+n: trên mi th m&c Tên min: B- qua thuc tính này An toàn: Ch"p nhn giao thc HTTP(thông thng). 4- H y Cookie: hy 1 cookie ã c to ta có th dùng 1 trong 2 cách sau: a) Cú pháp: setcookie(“Tên cookie”) Gi hàm setcookie vi ch duy nh"t tên cookie mà thôi b) Dùng thi gian ht hn cookie là thi i m trong quá kh. Ví d&: setcookie(“name”,”Kenny Huy”,time()-3600); Ví d&: Tip t&c to trang cookie3.php vi ni dung sau: <?php setcookie("name","Kenny Huy",time()-360); ?> Test page 1 Click here Bài tp áp dng: Xây dng website s( d&ng tính nng cookie th-a mãn nhng yêu c u sau: 1- To trang ng nhp vi username/password là : admin/vietchuyen. Nu user ng nhp thành công thì s xu"t ra dòng welcome, admin. 2- To trang ng xu"t thoát kh-i ph n qun tr) Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 58/68 www.qhonline.info II- Tng quan v SESSION Mt cách khác qun lý ngi s( d&ng là session. Session c hi u là khong thi gian ngi s( d&ng giao tip vi 1 ng d&ng. Mt session c b t u khi ngi s( d&ng truy cp vào ng d&ng l n u tiên, và kt thúc khi ngi s( d&ng thoát kh-i ng d&ng. M!i session s có c c"p mt )nh danh (ID) khác nhau và ni dung c lu trong th m&c thit lp trong file php.ini (tham s session.save_path). Trong PHP, session c xem nh mt iu khi n phía server lu tr và qun lý phiên làm vic. làm c iu này, khi mt ngi s( d&ng truy cp vào mt website, webserver cung c"p cho ngi s( d&ng mt xâu giá tr) là SessionID gi là xâu )nh danh- ví d& 9b02405434373d6d96c8db11ed819a60. Gía tr) xâu này mt giá tr) ng+u nhiên và nó c g(i ti máy ngi s( d&ng thông qua cookie có tên PHPSESSID. Giá tr) này t#n ti cho n khi nào chu k* sng ca session kt thúc hoc ngi s( d&ng di chuy n ti website khác. Chu k* sng ca session do webserver qui )nh. Ta có th iu chnh chu k* này khi c"u hình webserver. Bên phía server, mt tp tin có tên tng ng PHPSESSID cng c to ra. Các bin session s c lu trong mt tp tin vn bn này và % ti v) trí c qui )nh trong file php.ini % dòng session.save_path. 1- Thit l&p 1 session trong PHP: thit lp 1 session ta s( d&ng cú pháp: session_start() on code này phi c n'm trên các k)ch bn HTML. Hoc nhng lnh echo, printf. thit lp 1 giá tr) session, ngoài vic cho phép b t u thc thi session. Chúng ta còn phi ng ký 1 giá tr) session. tin cho vic gán giá tr) cho session ó. Ta có cú pháp sau: session_register(“Name”) Ví d&: <?php Session_start(); Session_register(“username”); ?> Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 59/68 www.qhonline.info 2- S dng giá tr c a session: Ging vi cookie. s( d&ng giá tr) ca session ta s( d&ng mã lnh sau: Cú pháp: $_SESSION[“name”] Vi Name là tên mà chúng ta s( d&ng hàm session_register(“name”) khai báo. Ví d&: To trang session.php vi ni dung sau: <?php session_start(); session_register("name"); $_SESSION["name"] = "Kenny Huy"; ?> Test page 1 Click here To trang session2.php vi ni dung sau: <? session_start(); ?> Result Page <?php echo "Ten cua ban la ".$_SESSION["name"].""; ?> 3- H y b$ session trong PHP: hy b- giá tr) ca session ta có nhng cách sau: Session_destroy() // Cho phép hy b- session Session_unset()// Cho phép hy b- session (bao g#m t"t c nhng gì có liên quan). Chú ý: Nên c3n trng khi s( d&ng hàm unset. Ví d& To trang session3.php vi ni dung sau: Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 60/68 www.qhonline.info <?php session_start(); session_destroy(); ?> Test page 1 Click here Bài tp áp dng: Xây dng website s( d&ng tính nng session th-a mãn nhng yêu c u sau: 1- To trang ng nhp vi username/password là : admin/vietchuyen. Nu user ng nhp thành công thì s xu"t ra dòng welcome, admin. 2- To trang ng xu"t thoát kh-i ph n qun tr) III- Tng Kt: Sau bài hc này chúng ta ã n m c cách iu khi n phiên làm vic gia cookie và session. S( d&ng chúng trong tng trng hp c& th . T ó có th áp d&ng vit nhng ng d&ng nh- nh ki m soát ngi ng nhp, làm gi- hàng online,.. Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 61/68 www.qhonline.info Bài 9: T ng Quan V MYSQL I- Nhng khái nim c bn: Mysql là h qun tr) d liu min phí, c tích hp s( d&ng chung vi apache, PHP. Chính yu t phát tri n trong cng #ng mã ngu#n m% nên mysql ã qua r"t nhiu s h! tr ca nhng lp trình viên yêu thích mã ngu#n m%. 1- Cách khi ng và s dng MYSQL. Chúng ta s( d&ng command nh sau: Mysql –hname –uuser –ppass truy cp vào c s% d liu. Hoc s( d&ng b appserv vào nhanh hn theo ng d+n sau: Start/ Appserv/ Mysql command Line client Sau ó nhp password mà chúng ta ã t vào. 2- Nh ng nh ngha c" bn: a) nh ngha c" s d liu, bng, ct: C s% d liu: là tên ca c s% d liu chúng ta mun s( d&ng Bng: Là 1 bng giá tr) n'm trong c s% d liu. Ct là 1 giá tr) n'm trong bng. Dùng lu tr các trng d liu. Thuc tính Ví d&: Bng user User_id 1234 First_name Nguyen Last_name Hai Anh Username Haianh123 Password 12345 Email test@yahoo.com Date 2007-12-12 16:25:30 Nh vy ta có th hi u nh sau: 1 c s% d liu có th bao g#m nhiu bng. 1 bng có th bao g#m nhiu ct Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 62/68 www.qhonline.info 1 ct có th có hoc không có nhng thuc tính. b) )nh ngha 1 s thut ng: NULL : Giá tr) cho phép r!ng. AUTO_INCREMENT : Cho phép giá tr) tng d n (t ng). UNSIGNED : Phi là s nguyên dng PRIMARY KEY : Cho phép nó là khóa chính trong bng. c)Loi d liu trong Mysql: , ây chúng t ch gii thiu 1 s loi thông d&ng: 1 s d liu khác có th tham kho trên trang ch ca mysql. Kiu d liu Mô T Char )nh dng text có chiu dài t 0->255 Varchar )nh dng text có chiu dài t 0->255 Text )nh dng text có chiu dài 0->65535 Longtext )nh dng text có chiu dài 0->4294967215 INT )nh dng s có chiu dài t 0->4294967215 Float )nh dng s thp phân có chiu dài nh- Double )nh dng s thp phân có chiu dài ln Date )nh dng thi gian theo )nh dng: YYYY-MM-DD DateTime )nh dng thi gian theo )nh dng: YYYY-MM-DD HH:MM:SS 3- Nh ng cú pháp c" bn: Cú pháp to 1 c s% d liu: CREATE DATABASE tên_c_s%_d_liu Cú pháp s( d&ng c s% d liu: Use tên_database; Cú pháp thoát kh-i c s% d liu: Exit Cú pháp to 1 bng trong c s% d liu: CREATE TABLE user ( ,,..) Ví d&: mysql> create table user(user_id INT(15) UNSIGNED NOT NULL AUTO_INCREMENT, user Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 63/68 www.qhonline.info ame VARCHAR(255) NOT NULL, password CHAR(50) NOT NULL, email VARCHAR(200) NOT N LL, PRIMARY KEY (user_id)); Query OK, 0 rows affected (0.01 sec) Hi n th) có bao nhiu bng: show tables; Hi n th) có bao nhiêu ct trong bng: show columns from table; Thêm 1 ct vào bng : ALTER TABLE tên_bng ADD AFTER Ví d&: mysql> alter table user add sex varchar(200) NOT NULL after email; Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 II- Nhng cú pháp sql c bn: 1- Thêm giá tr vào bng: Cú pháp: INSERT INTO Tên_bng(tên_ct) VALUES(Giá_tr)_tng_ng); Ví d&: mysql> insert into user(username,password,email,sex,home) values("Lanna","12345" ,"lanna@yahoo.com","F","www.abc.com"); Query OK, 1 row affected (0.00 sec) 2- Truy xut d liu: Cú pháp: SELECT tên_ct FROM Tên_bng; Ví d&: mysql> select user_id,username from user; 3 rows in set (0.00 sec) 4- Truy xut d liu vi iu kin: Cú pháp: SELECT tên_ct FROM Tên_bng WHERE iu kin; Ví d&: Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 64/68 www.qhonline.info mysql> select user_id,username from user where user_id=2; Bài tp áp dng: To c s% d liu vi thông tin sau: ID Fname Lname Email Password Sex Phone 1 Nguyen Van Hoa vanhoa@yahoo.com 12345 F 0903234532 2 Tran Hoa Hoa12@yahoo.com 23456 M 97234512 3 Nguyen Thi Thuy Thuy2a@yahoo.com 24625 F 98374642 4 Hoang Phi Hong phihong@hotmail.com 57265 M 94673257 5 Le Van Lam vanlam@gmail.com 45625 M 93562535 6 Nguyen Cam Nhung cnhung@gmail.com 52672 F 93525135 7 Hoang Phi Yen pyen@gmail.com 63456 F 94754363 Thc hin các công vic sau: 1- To 1 bng vi các ct trên. 2- Nhp liu thông tin theo nh bng trên. 3- Lit kê t"t c thông tin ca nhng ai có sex là female. 4- Lit kê thông tin ca ngi có Lname là “Van Hoa”. 5- Lit kê t"t c thông tin ca nhng ai có sex là male và có h là “Nguyn”. 6- Lit kê fname,lname, email ca nhng ai có s phone “0903234532”. 7- Dùng hàm mã hóa bo mt password ca ngi dùng. 5- Truy c&p d liu và sp xp theo trình t Cú pháp: SELECT tên_ct FROM Tên_bng WHERE iu kin (có th có where hoc không) ORDER BY Theo quy c s p xp. Trong ó quy c s p xp bao g#m hai thông s là ASC (t trên xung di), DESC (t di lên trên). Ví d&: Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 65/68 www.qhonline.info mysql> select user_id,username from user order by username ASC ; Câu lnh trên l"y ra thông tin user_id và username t bng user và chúng c s p xp theo username trình t t trên xung di. 6- Truy c&p d liu có gii hn : Cú pháp: SELECT tên_ct FROM Tên_bng WHERE iu kin (có th có where hoc không) LIMIT v) trí b t u, s record mun l"y ra Ví d&: mysql> select user_id,username from user order by username ASC limit 0,10 ; Câu lnh trên l"y ra thông tin user_id và username t bng user. Chúng c s p xp theo username trình t t trên xung di. Và l"y ra 10 record t v) trí 0. 7- C&p nh&t d liu trong bng: Cú pháp: Update tên_bng set tên_ct=Giá tr) mi WHERE (iu kin). Nu không có ràng buc iu kin, chúng s cp nht toàn b giá tr) mi ca các record trong bng. Ví d&: mysql> update user set email=”admin@qhonline.info” where user_id=1 ; 8- Xóa d liu trong bng: Cú pháp: DELETE FROM tên_bng WHERE (iu kin). Nu không có ràng buc iu kin, chúng s xó toàn b giá tr) ca các record trong bng. Ví d& mysql>delete from user where user_id=1 ; Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 66/68 www.qhonline.info III- Mysql và PHP: 1- Kt ni c" s d liu: Cú pháp: Mysql_connect(“hostname”,”user”,”pass”) 2- La chn c" s d liu: Cú pháp: Mysql_select_db(“tên_CSDL”) Ví d: $conn=mysql_connect(“localhost”,”root”,”root”) or die(“ khong the ket noi”); Mysql_select_db(“demo”); 3- Thc thi câu lnh truy vn: Cú pháp: Mysql_query(“Câu lnh SQL”) 4- m s record trong bng: Cú pháp: Mysql_num_rows(); 5- Ly d liu t' database: Cú pháp: Mysql_fetch_array(); Ví d : <?php $conn=mysql_connect(“localhost”,”root”,”root”) or die(“ khong the ket noi”); Mysql_select_db(“demo”); $sql=”select * from user”; $query=mysql_query($sql) if(mysql_num_rows($query) != 0) { Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 67/68 www.qhonline.info $row=mysql_fetch_array($query) } ?> Bài tp áp dng: Xu"t thông tin ngi dùng t c s% d liu % bài tp trên b'ng PHP. ID Fname Lname Email Password Sex Phone 1 Nguyen Van Hoa vanhoa@yahoo.com 12345 F 0903234532 2 Tran Hoa Hoa12@yahoo.com 23456 M 97234512 3 Nguyen Thi Thuy Thuy2a@yahoo.com 24625 F 98374642 4 Hoang Phi Hong phihong@hotmail.com 57265 M 94673257 5 Le Van Lam vanlam@gmail.com 45625 M 93562535 6 Nguyen Cam Nhung cnhung@gmail.com 52672 F 93525135 7 Hoang Phi Yen pyen@gmail.com 63456 F 94754363 IV- Tng kt: , bài này chúng ta ã làm vic vi sql và các k/ thut kt ni vi database ca PHP. Các hàm PHP h! tr mysql hin nay có r"t nhiu. Tuy nhiên v tính nng cng nh phng thc s( d&ng thì chúng cng ging nhau. Do vy các bn không nên lo l ng khi làm vic vi nhng hàm mà chúng ta ang nghiên cu. Giáo trình PHP Cn Bn Ging Viên: Bùi Quc Huy Trang 68/68 www.qhonline.info Phn C: Project Training Vi nhng kin thc ã hc c, bn hãy áp d&ng xây dng hoàn chnh mt ng d&ng web c& th và np chúng cho ging viên ca bn. Mt s project tiêu bi u khuyn khích các hc viên làm: tài 1: Xây dng trang tin tc in t( vi các tính nng chuyên nghip nh (chuyên m&c tin, tin tc,
File đính kèm:
- giao_trinh_php_can_ban_bui_quoc_huy.pdf