huong dan cai dat PHP
CÀI ¶T PHP
Download PHP
B¡n có thà download PHP for Windows t¡i Ëa chÉ: HYPERLINK "http://www.php.net/downloads.php" \t "_blank" http://www.php.net/downloads.php.
- N¿u °Ýng truyÁn b¡n chm thì b¡n có thà download ph§n PHP 4.0.6 installer (755Kb): chÉ có PHP-CGI
- Còn n¿u muÑn b¡n có thà download trÍn gói PHP vÁ PHP 4.0.6 zip package (4.7Mb): PHP-CGI và PHP-Module
Cài ·t PHP
Các b°Ûc chi ti¿t cài ·t PHP °ãc minh ho¡ nh° sau:
B°Ûc 1: Sau khi download PHP, b¡n double click lên file .exe vëa download, mÙt hÙp tho¡i s½ hiÇn ra nh° hình bên. B¡n click vào nút Next, rÓi nh¥n I Agree à sang b°Ûc 2.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php1.jpg" \* MERGEFORMATINET
B°Ûc 2: B¡n chÍn ph§n Advanced và nh¥n Next à sang b°Ûc ti¿p theo.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php2.jpg" \* MERGEFORMATINET
B°Ûc 3,4,5: B¡n chÍn th° måc à cài PHP, File upload và Session data, m·c Ënh l§n l°ãt s½ là C:\PHP, C:\PHP\uploadtemp và C:\PHP\sessiondata.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php3.jpg" \* MERGEFORMATINET
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php4.jpg" \* MERGEFORMATINET
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php5.jpg" \* MERGEFORMATINET
B°Ûc 6: B¡n iÁn Ëa chÉ SMTP và email cça admin. N¿u ch¡y trên máy local b¡n ·t là localhost và admin@localhost. Nh¥n Next à sang b°Ûc ti¿p theo.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php6.jpg" \* MERGEFORMATINET
B°Ûc 7: B¡n chÍn ph§n §u tiên: Display all errors warnings and notices và nh¥n Next à sang b°Ûc ti¿p theo.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php7.jpg" \* MERGEFORMATINET
B°Ûc 8: B¡n chÍn kiÃu web server thích hãp (ß ây là Apache) và nh¥n Next, rÓi l¡i Next mÙt l§n nïa à b¯t §u cài ·t.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php8.jpg" \* MERGEFORMATINET
B°Ûc 9: B¡n chÉ có viÇc ngÓi chÝ trong khi ch°¡ng trình cài ·t copy các file lên )a céng cça b¡n.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php9.jpg" \* MERGEFORMATINET
L°u ý: Sau khi copy file xong, r¥t có thà PHP s½ báo là không thà update °ãc file httd.conf cça Apache. B¡n ëng lo l¯ng, hãy nh¥n OK à ti¿p tåc, chúng ta s½ c¥u hình Apache sau.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/php10.jpg" \* MERGEFORMATINET
B°Ûc 10: Sau khi PHP ã cài ·t xong, b¡n nhÛ khßi Ùng l¡i máy tr°Ûc khi ti¿p tåc.
C¥u hình Apache à ch¡y PHP
B¡n hãy mß file httpd.conf cça Apache ra (b¡n còn nhÛ file ó n±m âu ché? n¿u quên b¡n hãy xem l¡i ph§n Cài ·t Apache) và thêm vào 3 dòng sau:
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
Ti¿p theo b¡n tìm ¿n dòng b¯t §u b±ng DirectoryIndex, b¡n s½ th¥y dòng ó có d¡ng nh° sau:
DirectoryIndex index.html
Dòng ó cho b¡n bi¿t r±ng file index.html °ãc xem nh° là file index m·c Ënh cça mÙt th° måc. B¡n sía l¡i dòng ó nh° sau:
DirectoryIndex index.html index.htm index.cgi index.php
L°u file httpd.conf và khßi Ùng l¡i Apache.
Ch¡y thí PHP vÛi Apache
B¡n t¡o 1 file test.php trong th° måc C:\www vÛi nÙi dung nh° sau:
<?
echo "Test PHP!";
?>
Ti¿p theo b¡n mß IE và truy cp vào Ëa chÉ HYPERLINK "http://localhost/test.php" \t "_blank" http://localhost/test.php. N¿u b¡n nhn °ãc dòng chï " Test PHP!" thì b¡n ã cài ·t thành công
CÀI ¶T MYSQL
Download mySQL
B¡n có thà download mySQL for Windows t¡i Ëa chÉ: HYPERLINK "http://www.mysql.com/downloads/index.html" \t "_blank" http://www.mysql.com/downloads/index.html. Phiên b£n hiÇn t¡i vào thÝi iÃm bài tutorial này °ãc vi¿t là version 3.23, b¡n có thà download trñc ti¿p t¡i ây: HYPERLINK "http://www.mysql.com/Downloads/MySQL-3.23/mysql-3.23.46-win.zip" \t "_blank" http://www.mysql.com/Downloads/MySQL-3.23/...3.23.46-win.zip (12Mb).
Cài ·t mySQL
Các b°Ûc chi ti¿t cài ·t mySQL °ãc minh ho¡ nh° sau (tôi dùng Win98SE và mySQL 3.23.42 for Windows)
B°Ûc 1: Sau khi download mySQL, unzip các file vài mÙt th° måc nào ó và ch¡y file setup.exe à b¯t §u cài ·t (xem hình bên). B¡n nh¥n Next hai l§n à sang b°Ûc 2.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/mysql1.jpg" \* MERGEFORMATINET
B°Ûc 2: B¡n chÍn th° måc à cài ·t mySQL, m·c Ënh là C:\mysql. Nh¥n Next à sang b°Ûc ti¿p theo.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/mysql2.jpg" \* MERGEFORMATINET
B°Ûc 3: B¡n chÍn ph§n Custom và nh¥n Next à sang b°Ûc ti¿p theo.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/mysql3.jpg" \* MERGEFORMATINET
B°Ûc 4: B¡n nh¥n Next à sang b°Ûc ti¿p theo, và ti¿p tåc nh¥n Next à b¯t §u cài ·t mySQL.
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/mysql5.jpg" \* MERGEFORMATINET
B°Ûc 5: Sau khi mySQL ã cài ·t xong, b¡n hãy ch¡y file winmysqladmin.exe trong th° måc C:\mysql\bin. N¿u là l§n §u tiên b¡n ch¡y file này sau khi cài ·t, mÙt hÙp tho¡i s½ hiÇn lên hÏi username và password cça cça ng°Ýi qu£n lý mySQL. B¡n nhp vào username và mt mã tuó b¡n chÍn (tôi chÍn username là root và mt mã là password).
INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/run1.jpg" \* MERGEFORMATINET
Sau b°Ûc này, mÙt icon hình èn giao thông s½ xu¥t hiÇn trên system tray cça b¡n. N¿u èn hiÇu ang ß màu xanh thì xem nh° mÍi chuyÇn ã êm ¹p. INCLUDEPICTURE "http://vhkcd.1vn.net/Paingod/images/run2.jpg" \* MERGEFORMATINET
Cài ·t phpMyAdmin
phpMyAdmin là mÙt ch°¡ng trình mySQL Client r¥t m¡nh °ãc vi¿t b±ng PHP. B¡n có thà dùng phpMyAdmin à truy cp vào database qu£n lý mySQL të browser.
B¡n có thà download phpMySQL ß ây: HYPERLINK "http://sourceforge.net/project/showfiles.php?group_id=23067&release_id=63838" \t "_blank" http://sourceforge.net/project/showfiles.p...elease_id=63838
N¿u ang dùng Windows, b¡n có thà download file zip phiên b£n mÛi nh¥t 2.2.2 cça phpMyAdmin t¡i ây: HYPERLINK "http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.2.2-php.zip" \t "_blank" http://prdownloads.sourceforge.net/phpmyad...n-2.2.2-php.zip
Sau khi download, b¡n unzip các file vào th° måc c:\www\phpmyadmin. Sau ó b¡n mß file config.inc.php, tìm sía các dòng sau.
tìm dòng b¯t §u b±ng $cfgServers[1]['host'], sía thành $cfgServers[1]['host'] = 'localhost'; (connect vào localhost)
tìm dòng b¯t §u b±ng $cfgServers[1]['user'], sía l¡i thành $cfgServers[1]['user'] = 'root'; (root là username mà b¡n ã t¡o ß trên)
tìm dòng b¯t §u b±ng $cfgServers[1]['password'], sía l¡i thành $cfgServers[1]['password'] = 'password'; (password là mt mã b¡n ã t¡o ß trên)
L°u l¡i file config.inc.php, mß IE và truy cp vào Ëa chÉ HYPERLINK "http://localhost/phpmyadmin/index.php" \t "_blank" http://localhost/phpmyadmin/index.php. N¿u b¡n nhn °ãc màn hình chào ón cça phpMyAdmin thì b¡n ã thành công!
Php là gì?
PHP là mÙt ngôn ngï lp trình kiÃu script , ch¡y trên Server và tr£ vÁ mã HTML cho trình duyÇt.
PHP cing nh° CGI Perl, ASP hiÃu nôm na là ngôn ngï lp trình cho trang web, làm cho trang web trß nên t°¡ng tác vÛi ng°Ýi sí dång. Tôi l¥y ví då: N¿u b¡n có mÙt trang web, và muÑn r±ng, m×i khi có ng°Ýi ¿n thm trang web, thì mÙt thành ph§n trang web thay Õi, cå thà là tng lên mÙt ¡n vË (tôi ang l¥y ví då vÁ counter), khi ó, dùng HTML không thà áp éng °ãc yêu c§u nêu ra. B¡n s½ c§n mÙt NNLT nào ó (n¿u ko muÑn dùng hàng có sµn). Javascript là mÙt client script - ngh)a là nó t°¡ng tác trñc ti¿p ß méc Ù client, không c§n thông qua server. Còn php,ho·c asp là các server script ngh)a là: các mã lÇnh do b¡n vi¿t s½ °ãc server Íc, dËch ra thành các mã HTML và tr£ vÁ cho trình duyÇt ( không nh° các NNLT khác - not web - là tr£ vÁ mã máy). B¡n dÅ dàng nhn th¥y iÁu thé nh¥t:
* Sí dång PHP (ASP) s½ không bË lÙ mã nguÓn (php code). Vì khi ai ó view source trang web cça b¡n, s½ chÉ nhn °ãc các mã HTML do server tr£ vÁ sau khi thông dËch các mã php.
Tôi l¥y ví då.
CODE
B¡n tên là: <? echo $hoten ?>
Thì khi này, tuó thuÙc tr°Ûc ó, b¡n ·t giá trË gì vào bi¿n $hoten mà o¡n mã HTML trên °ãc k¿t xu¥t theo mÙt kiÃu. Gi£ sí b¡n ·t $hoten=aaaa thì server s½ °a giá trË aaa vào thay th¿ cho o¡n mã <? echo $hoten ?>. K¿t qu£ là, b¡n s½ có mÙt o¡n mã HTML nh° sau:
CODE
B¡n tên là: aaaa
Khi mÙt ai ó view source trang web s½ nhn °ãc úng o¡n mã
CODE
B¡n tên là: aaaa
ché không thà xem °ãc mã nguÓn
CODE
B¡n tên là: <? echo $hoten ?>
VD:
<html>
<head>
<title>Example</title>
</head>
<body>
<?php echo "Hi, I'm a PHP script!"; ?>
</body>
</html>
Mã PHP °ãc ·t trong kiÃu tag ·c biÇt cho phép ta có thà vào ho·c ra khÏi ch¿ Ù PHP
2. Cài ·t nh° th¿ nào?
Cài PHP trên nÁn Window vÛi IIS version 3 ho·c 4:
- Copy php.ini - dist vào th° måc Window. Õi tên thành php.ini
- Sía file php.ini nh° sau:
- ·t l¡i °Ýng d«n måc : 'extension_dir' chuyÃn tÛi vË trí cài ·t php ho·c n¡i à các file php_*.ini. VD : c:php
- ·t °Ýng d«n chính xác ¿n file: browscap.ini trong th° måc Window.
- Ch¡y MMC , chÍn Web site ho·c th° måc cça éng dång
- mß måc Property cça th° måc , chÍn vào Home Directory, Virtual Directory hay Directory.
- Vào måc: Configuration->App Mappings ->Add->Executable : c:phpphp.exe %s %s. Chú ý ph£i có %s %s .
- Trong ô Extension, ánh uôi file b¡n muÑn g¯n vÛi mã php. Th°Ýng là .php ho·c .phtml
- ·t ch¿ Ù sercurity thích hãp. N¿u dùng hÇ thÑng NTFS, c§n ·t cho phép thñc hiÇn vÛi th° måc có php.exe
II.Ngôn ngï PHP:
1. Có 4 cách à dùng PHP;
1. <? echo ("this is the simplest, an SGML processing instructionn"); ?>
2. <?php echo("if you want to serve XML documents, do like thisn"); ?>
3. <script language="php">
echo ("some editors (like FrontPage) don't
like processing instructions");
</script>
4. <% echo ("You may optionally use ASP-style tags"); %>
<%= $variable; # This is a shortcut for "<%echo .." %>
Cách 1 chÉ có thà sí dång n¿u nhïng tag ng¯n °ãc cho phép sí dång. Có thà sía short_open_tag trong c¥u hình cça php ho·c biên dËch file php vÛi lña chÍn cho phép dùng các tag ng¯n.
T°¡ng tñ nh° vy, cách thé 4 chÉ có tác dång n¿u asp_tag °ãc ·t trong file cáu hình cça PHP
PHP cho phép h× trã các kiÃu chú thích cça c£ C, C++ và Unix shell.
VD:
<?php
echo "This is a test"; // This is a one-line c++ style comment
/* This is a multi line comment
yet another line of comment */
echo "Another Test"; # This is shell-style style comment
?>
2. Các kiÃu dï liÇu:
2.1SÑ nguyên : °ãc khai báo và sí dång giá trË giiÑng vÛi C:
VD: $a = 1234; # decimal number
$a = -123; # a negative number
$a = 0123; # octal number (equivalent to 83 decimal)
$a = 0x12; # hexadecimal number (equivalent to 18 decimal)
2.2 SÑ thñc:
VD :$a = 1.234; $a = 1.2e3;
Chú ý: Khi sí dång các sÑ thñc à tính toán , có thà s½ làm m¥t giá trË cça nó. Vì vy, nên sí dång các hàm toán hÍc trong th° viÇn chu©n à tính toán.
2.3 Xâu :
Có 2 cách à xác Ënh 1 xâu: ·t giïa 2 d¥u ngo·c kép (") ho·c giïa 2 d¥u ngo·c ¡n (').
Chú ý: Các bi¿n giá trË s½ không °ãc khai triÃn trong xâu giïa 2 d¥u ngo·c ¡n.
2.4 : M£ng :
M£ng thñc ch¥t là gÓm 2 b£ng : b£ng chÉ sÑ và b£ng liên k¿t.
a. M£ng 1 chiÁu : Có thà dùng hàm : list() ho·c array() ho·c liÇt kê các giá trË cça tëng ph§n ií trong m£ng à t¡o m£ng . Có thà thêm các giá trË vào m£ng à t¡o thành 1 m£ng. --> Dùng giÑng trong C
Có thà dùng các hàm asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), and uksort() à s¯p x¿p m£ng. Tuó thuÙc vào viÇc b¡n Ënh s¯p x¿p theo kiÃu gì.
b. M£ng nhiÁu chiÁu: T°¡ng tñ C. b¡n có thà dùng nh° VD sau:
$a[1] = $f; # one dimensional examples
$a["foo"] = $f;
$a[1][0] = $f; # two dimensional
$a["foo"][2] = $f; # (you can mix numeric and associative indices)
$a[3]["bar"] = $f; # (you can mix numeric and associative indices)
PHP3 không thà tham chi¿u trñ ti¿p të mÙt m£ng nhiÁu chièu khi ß bên trong 1 xâu:
VD :
$a[3]['bar'] = 'Bob';
echo "This won't work: $a[3][bar]";
K¿t qu£ tr£ ra s½ là: This won't work: Array[bar].
Nh°ng vÛi VD sau s½ ch¡y úng:
$a[3]['bar'] = 'Bob';
echo "This will work: " . $a[3][bar];
VÛi PHP4, v¥n Á s½ °ãc gi£ quy¿t b±ng cách cho m£ng vào giïa 2 d¥u ngo·c móc { }
VD : $a[3]['bar'] = 'Bob';
echo "This will work: {$a[3][bar]}";
PHP không yêu c§u ph£i khai báo tr°Ûc kiÃu dï liÇu cho các bi¿n, KiÃu dï liÇu cça bi¿n s½ phå thuÙc vào kiÃu dï liÇu mà b¡n gán cho nó,
VD :
$foo = "0"; // $foo là kí tñ ASCII 48
$foo++; // $foo is xâu "1" (ASCII 49)
$foo += 1; // $foo là sÑ nguyên (2)
$foo = $foo + 1.3; // $foo là sÑ thñc (3.3)
$foo = 5 + "10 Little Piggies"; // $foo là sÑ nguyên (15)
3. Bi¿n - giá trË:
PHP quy Ënh mÙt bi¿n °ãc biÃu diÅn b¯t §u b±ng d¥u $, sau ó là mÙt chï cái ho·c d¥u g¡ch d°Ûi.
3.1 MÙt sÑ bi¿n ã °ãc t¡o sµn :
argv : M£ng tham sÑ truyÁn cho script. Khi o¡n script ch¡y b±ng dòng lÇnh, tham sÑ này s½ °ãc dùng giÑng nh° C Ã truy nhp các tham sÑ trên dòng lÇnh.
argc : sÑ các tham sÑ ñoc truyÁn. Dùgn vÛi argv;
PHP_SELF : tên c÷a o¡n mã script ang thñc hiÇn. N¿u PHP ang °ãc ch¡y të dòng lÇnh thì tham sÑ này không có giá trj.
HTTP_COOKIE_VARS: mÙt m£ng các giá trË °ãc truyÁn tÛi script hiÇn t¡i b±ng HTTP cookie. ChÉ có tác dång n¿u "track_vars" trong c¥u hình °ãc ·t ho·c chÉ d«n <?php_track_vars?>
HTTP_GET_VARS: M£ng các giá trË truyÁn tÛi script thông qua ph°¡ng théc HTTP GET. ChÉ có tác dång n¿u "track_vars" trong c¥u hình °ãc ·t ho·c chÉ d«n <?php_track_vars?>
HTTP_POST_VARS:
3.2 Ph¡m vi giá trË:
PHP coi 1 bi¿n có mÙt giÛi h¡n. Ã xác Ënh mÙt bi¿n toàn cåc (global) có tác dång trong mÙt hàm , ta c§n khai báo l¡i. N¿u không giá trË cça bi¿n s½ °ãc coi nh° là cåc bÙ trong hàm.
VD :
$a = 1;
$b = 2;
Function Sum () {
global $a, $b;
$b = $a + $b;
}
Sum ();
echo $b;
Khi có khai báo global ß trên, $a và $b °ãc cho bi¿t ó là nhïng bi¿n toàn cåc. N¿u không có khai báo global, $a và $b chÉ °ãc coi là các bi¿n bên trong hàm Sum(). iÁu này khác vÛi C
MÙt cách khác à dùng bi¿n toàn cåc trong 1 hàm là ta dung m£ng $GLOBAL cça PHP
VD ß trên s½ có thà vi¿t nh° sau:
$a = 1;
$b = 2;
Function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}
Sum ();
echo $b;
MÙt chú ý khác là khai báo static. VÛi khai báo này bên trong mÙt hàm vÛi 1 bi¿n cåc bÙ, giá trË cça bi¿n cåc bÙ ó s½ không bË m¥t i khi ra khÏi hàm.
VD :
Function Test () {
static $a = 0;
echo $a;
$a++;
}
VÛi khai báo nh° trên , $a s½ không m¥t i giá trË sau khi thñc hiÇn l¡i gÍi hàm Test() mà $a s½ °ãc tng lên 1 sau m×i l§n gÍi hàm Test().
3.3 Tên bi¿n:
MÙt bi¿n có thà g¯n vÛi 1 cái tên .
VD:
$a = "hello";
$$a = "world";
==> $hello = "world"
và
echo "$a ${$a}";
<==> echo "$a $hello";
K¿t qu£ ra s½ là : hello world
Chú ý : b¡n có thà g·p ph£i tr°Ýng hãp không rõ ràng khi sí dång cách này vÛi m£ng . VD : $$a[1] s½ hiÃu là b¡n muÑn dùng $a[1] nh° 1 bi¿n hay dùng $$a nh° 1 bi¿n vÛi [1] là chÉ sÑ?
à tránh tr°Ýng hãp này , c§n có sñu phân biÇt rõ b±ng d¥u { }. VD :${$a[1]} ho·c ${$a}[1].
3.4 Các giá trË bên ngoài ph¡m vi PHP
HTML Form : khi 1 form g¯n vÛi 1 file php qua ph°¡ng théc POST
VD:
<form action="foo.php3" method="post">
Name: <input type="text" name="name">
<input type="submit">
</form>
PHP s½ t¡o 1 bi¿n $name bao gÓm mÍi giá trË trong truÝng Name cça Form.
PHP có thà hiÃu °ãc mÙt m£ng mÙt chiÁu gÓm các giá trË trong 1 form. Vì vy, b¡n có thà nhóm nhïng giá trË liên quan l¡i vÛi nhau ho·c sí dång ·c tính này à nhn các giá trË të 1 §u vào tuó chÍn.(multi select input)
Khi tính ch¥t track_vars °ãc ·t trong c¥u hình ho·c có chÉ d«n <?php_track_vars?> . các giá trË °ãc submit °ãc l¥y ra qua ph°¡ng théc GET và POST có thà l¥y të 2 m£ng toàn cåc $HTTP_POST_VARS và $HTTP_GET_VARS
IMAGE SUBMIT:
Khi dùng 1 image à thñc hiÇn submit, có thà dùng tag nh° sau:
<input type=image src="image.gif" name="sub">
Khi ng°Ýi dùng click chuÙt trên £nh, form t°¡ng éng s½ °ãc gíi tÛi server kèm theo 2 giá trË thêm vào : sub_x và sub_y. Nhïng bi¿n này s½ l°u giï to¡ Í mà ng°Ýi dùng ã click chuÙt trên £nh. Ng°Ýi l¡p trình có kinh nghiÇm s½ th¥y r±ng trên thñc t¿, trình duyÇt gíi các giá trË có chu kó thÝi gian nh°ng PHP ã t¡o c£m giãc g§n nh° viÇc gíi các giá trË ó là liên tåc.
HTTP Cookies :
PHP h× trá HTTP cookies theo Ënh d¡ng cça Netscape. Cookies file l°u giï thông tin cça các trình duyÇt të xa và qua ó có thà theo dõi hay nhn bi¿t ng°Ýi sí dång. Có thà dùng Cookies b±ng hàm SetCookie(). Hàm này c§n °ãc gÍi tr°Ûc khi thông tin °ãc gíi tÛi trình duyÇt. B¥t kó cookie nào gíi tÛi b¡n të máy khách (client) s½ tñ Ùng chuyÃn thành dï liÇu cça ph°¡ng théc GET và POST.
N¿u b¡n muÑn có nhiÁu giá trË trong 1 cookie, chÉ c§n thêm vào d¥u [ ] vÛi tên cça cookie.
VD :
SetCookie ("MyCookie[]", "Testing", time()+3600);
Chú ý r±ng cookie s½ thay th¿ cho cookie cùng tên, trë tr°Ýg hãp khác °Ýng d«n ho·c miÁn.
BI¾N MÔI TR¯ÜNG:
PHP tñ Ùng t¡o bi¿n cho các bi¿n môi tr°Ýng nh° 1 bi¿n bình th°Ýng cça PHP
VD :
echo $HOME; /* Shows the HOME environment variable, if set. */
Vì thông tin tÛi qua các ph°¡ng théc GET, POST , Cookie cing tñ ông t¡o các bi¿n PHP, thÉnh tho£ng b¡n nên Íc 1 bi¿n të môi tr°Ýng à ch¯c ch¯n r±ng b¡n có úng version. Hàm getenv() và putenv() giúp b¡n Íc và ghi vÛi các bi¿n môi tr°Ýng.
D¤U CH¤M TRONG TÊN BI¾N:
Bình th°Ýng, PHP không thay Õi tên bi¿n khi bi¿n ó °ãc truyÁn vào o¡n script. Tuy nhiên, nên chú ý r±ng dáu ch¥m (.) không ph£i là mÙt ký hiÇu hãp lÇ trong tên bi¿n Ñi vÛi PHP. Vì vy, PHP s½ tñ Ùng thay th¿ các d¥u ch¥m b±ng d¥u g¡ch d°Ûi.(_)
4. CONSTANTS
PHP Ënh ngh)a sµn mÙt vài h±ng sÑ:
_FILE_ : tên cça script file ang °ãc thñc hiÇn.
_LINE_ : sÑ dòng cça mã script ang °ãc thñc hiÇn trong script file hiÇn t¡i.
_PHP_VERSION_ : version cça PHP
_PHP_Ó : tên hÇ iÁu hành mà PHP ang ch¡y
TRUE
FALSE
E_ERROR : báo hiÇu có l×i
E_PARSE : báo l×i sai khi biên dËch
E_NOTICE : MÙt vài sñ kiÇn có thà là l×i ho·c không.
E_ALL :
Có thà Ënh ngh)a mÙt h±ng sÑ b±ng hàm define()
VD :
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
?>
5. BIÂU THèC
BiÃu théc là mÙt ph§n quan trÍng trong PHP. Ph§n lÛn mÍi thé ban vi¿t Áu °ãc coi nh° 1 biÃu théc. iÁu này có ngh)a là mÍi thé Áu có 1 giá trË.
MÙt d¡ng c¡ b£n nh¥t cça biÃu théc bao gÓmcác bi¿n và h±ng sÑ.
PHP h× trã 3 kiÃu giá trË c¡ b£n nh¥t: sÑ nguyên, sÑ thñc, và xâu. Ngoài ra còn có m£ng và Ñi t°ãng. M×i kiÃu giá trË này có th» gán cho các bi¿n hay làm giá trË tr£ ra cça các hàm.
B¡n có thà thao tác vÛi các bi¿n trong PHP giÑng nh° vÛi trong C.
VD
$b = $a = 5; /* assign the value five into the variable $a and $b */
$c = $a++; /* post-increment, assign original value of $a
(5) to $c */
$e = $d = ++$b; /* pre-increment, assign the incremented value of
$b (6) to $d and $e */
/* at this point, both $d and $e are equal to 6 */
$f = double($d++); /* assign twice the value of $d before
the increment, 2*6 = 12 to $f */
$g = double(++$e); /* assign twice the value of $e after
the increment, 2*7 = 14 to $g */
$h = $g += 10; /* first, $g is incremented by 10 and ends with the
value of 24. the value of the assignment (24) is
then assigned into $h, and $h ends with the value
of 24 as well. */
6.CÁC C¤U TRÚC LÆNH:
6.1 If ....else....else if:
if (iÁu kiÇn) { do something; }
elseif ( iÁu kiÇn ) { do something;}
else { do something;}
6.2 Vòng l·p :
while ( DK) { ...}
do { .....} white ( DK );
for (bieuthuc1; bieuthuc2; bieu thuc3) {.....}
PHP 4 only :
foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement
6.3 break và continue:
break : thoát ra khÏi vòng l·p hiÇn thÝi
continue : bÏ qua vòng l·p hiÇn t¡i, ti¿p tåc vòng ti¿p theo.
6.4 switch
switch (tên bi¿n) {
case tr°Ýng hãp 1: ..... break;
case tr°Ýng hãp 2: ..... break;
case tr°Ýng hãp 3: ..... break;
default :
}
7 HÀM:
Dùng giÑng vÛi C++. Ngo¡i trë b¡n không c§n ph£i khai báo kiÃu cho tham sÑ cça hàm:
7.1 Tham trË :
VD:
function takes_array($input) {
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
7.2 Tham bi¿n:
function add_some_extra(&$string) {
$string .= 'and something extra.';
}
7.3 Tham sÑ có giá trË m·c Ënh:
function makecoffee ($type = "cappucino") {
return "Making a cup of $type.n";
}
Chú ý : khi sí dång hàm có Ñi sÑ có giá trË m·c Ënh, các bi¿n này s½ ph£i n±m vÁ phía ph£i nhát trong danh sách Ñi sÑ.
VD : Sai
function makeyogurt ($type = "acidophilus", $flavour) {
return "Making a bowl of $type $flavour.n";
}
úng;
function makeyogurt ($flavour, $type = "acidophilus") {
return "Making a bowl of $type $flavour.n";
}
7.4 Giá trË tr£ l¡i cça hàm:
Có thà là b¥t kó giá trË nào, Tuy vây, không thà tr£ l¡i nhiÁu giá trË riêng l» nh°ng có thà tr£ l¡i mÙt m£ng các giá trË.
VD
function small_numbers() {
return array (0, 1, 2);
}
à tr£ l¡i mÙt tham trÏ, b¡n c§n có d¥u & ß c£ khai báo cça hàm cing nh° ß giá trË tr£ l¡i.
VD :
function &returns_reference() {
return &$someref;
}
$newref = &returns_reference();
7.5 Hàm bi¿n:
PHP cho phép sí dång hàm giá trË Ngh)a là khi mÙt bi¿n °ãc goi có kèm theo d¥u ngo·c ¡n , PHP s½ tìm hàm có cùng tên vÛi giá trË bi¿n ó và thñc hiÇn
VD
<?php
function foo() {
echo "In foo()
n";
}
function bar( $arg = '' ) {
echo "In bar(); argument was '$arg'.
n";
}
$func = 'foo';
$func();
$func = 'bar';
$func( 'test' );
?>
8. CÁC TOÁN Tì:
PHP có các toán tí cho các phép sÑ hÍc : + - * / %
Các toán tí logic : and or xor ! && ||
Toán tí thao tác vÛi bit : & | ^ ~ << >>
Toán tí so sánh : ==, != ,< ,> ,<=, >=, ==== (b±ng va cùng kiÃu - PHP4 only), !== (khác ho·c khác kiÃu - PHP4 only)
Toán tí iÁu khiÃn l×i : @ - khi éng tr°Ûc 1 biÃu théc thì các l×i cça biÃu théc s½ bË bÏ qua và l°u trong $php_errormsg
VD:
<?php
/* Intentional SQL error (extra quote): */
$res = @mysql_query ("select name, code from 'namelist") or
die ("Query failed: error was '$php_errormsg'");
?>
Toán tí thñc thi : ' '- PHP s½ thñc hiÇn nÙi dung n±m giïa 2 d¥u ' nh° 1 lÇnh shell. Tr£ ra giá trË là k¿t qu£ thñc hiÇn lÇnh
VD :
$output = 'ls -al'; //liÇt kê các file b±ng lÇnh Linux
echo "<pre>$output</pre>";
9 LÚP VÀ ÐI T¯âNG:
Class: là tp hãp các bi¿n và hàm làm viÇc vÛi các bi¿n này. MÙt lÛp có Ënh d¡ng nh° sau:
<?php
class Cart {
var $items; // Items in our shopping cart
// Add $num articles of $artnr to the cart
function add_item ($artnr, $num) {
$this->items[$artnr] += $num;
}
// Take $num articles of $artnr out of the cart
function remove_item ($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;
} else {
return false;
}
}
}
?>
LÛp Cart ß ây là mÙt kiÃu dï liÇu, vì vy b¡n có thà t¡o mÙt bi¿n có kiÃu này vÛi toán tí new
VD:
$cart = new Cart;
$cart->add_item("10", 1);
LÛp có thà °ãc mß rÙng b±ng nhïng lÛp khác. LÛp mÛi thu °ãc có t¥t c£ nhïng bi¿n và hàm cça cá lÛp thành ph§n. Thñc hiÇn viÇc thëa k¿ này b±ng të khoá "extends". Chú ý : k¿ thëa nhiÁu lÛp 1 lúc không °ãc ch¥p nhn.
VD :
class Named_Cart extends Cart {
var $owner;
function set_owner ($name) {
$this->owner = $name;
}
}
Các hàm khßi t¡o cça lÛp °ãc gÍi tñ Ùng khi b¡n gÍi toán tí new.
Tuy nhiên, các hàmkhßi t¡o cça lÛp cha s½ không °ãc gÍi khi hàm khßi t¡o cça lÛp con °ãc gÍi. Hàm khßi t¡o có thà có Ñi sÑ ho·c không,
10. THAM CHI¾U:
Tham chi¿u trong PHP có ngh)a là l¥y cùng 1 giá trË b±ng nhiÁu tên bi¿n khác nhau. Khác vÛi con trÏ trong C, tham chi¿u là mÙt b£ng các bí danh. Chú ý : trong PHP, tên bi¿n và nôi dung cça bi¿n là khác nhau. Vì vy, cùng 1 nÙi dugn có thà có nhiÁu tên khác nhau.
Tham chi¿u PHP cho phép b¡n t¡o 2 bi¿n có cùng nôi dung.
VD :
$a = & $b; -- > $a, $b trÏ tÛi cùng 1 giá trË.
Tham chi¿u truóen giá trË b±ng tham chi¿u. Thñc hiÇn viÇc này b±ng cách t¡o mÙt hàm cåc bÙ và truyÁn giá trË °ãc tham chi¿u
VD:
function foo (&$var) {
$var++;
}
$a=5;
foo ($a);
--> K¿t qu£ : $a = 6;
Giá trË tr£ l¡i cça mÙt hàm b±ng tham chi¿u r¥t tiÇn khi b¡n muÑn sí dång hàm à tìm 1 giá trË trong 1 ph¡m vi nào ó.
VD :
function &find_var ($param) {
...code...
return $found_var;
}
$foo =& find_var ($bar);
Khi b¡n muÑn lo¡i bÏ mÑi liên k¿t giïa tên bi¿n và giá trË cça bi¿n, sí dång hàm unset()
VD :
$a = 1;
$b =& $a;
unset ($a);
11. THAO TÁC VÚI ¢NH:
PHP không bË giÛi h¡n vÛi mã HTML °ãc tr£ l¡i cho trình duyÇt. Vì vy, có thà dùng PHP à t¡o và thao tác vÛi các file £nh có Ënh d¡ng khác nhau, bao gÓm :gif, png, jpg, wbmp, and xpm. PHP có thà °a các file £nh trñc ti¿p ¿n các trình duyÇt. B¡n s½ c§n biên dËch PHP vÛi th° viÇn GD bao gÓm các hàm thao tác vÛi £nh. GD và PHP có thà s½ c§n có thêm 1 sÑ th° viÇn khác, tuó thuÙc vào Ënh d¡ng cça file £nh c§n dùng.
VD : T¡o £nh GIF vÛi PHP
<?php
Header("Content-type: image/gif");
$string=implode($argv," ");
$im = imagecreatefromgif("images/button1.gif");
$orange = ImageColorAllocate($im, 220, 210, 60);
$px = (imagesx($im)-7.5*strlen($string))/2;
ImageString($im,3,$px,9,$string,$orange);
ImageGif($im);
ImageDestroy($im);
?>
gi£ sí VD trên trong file button.php . KHi ó, Ã sí dång ta dùng tag : <img src="button.php?text">. ,
PHP có 8 kiÃu dï liÇu c¡ b£n, ó là:
* 4 kiÃu dï liÇu vô h°Ûng:
+ boolean
+ integer
+ floating-pointer number
+ string
* 2 kiÃu dï liÇu phéc hãp:
+ m£ng
+ object
* 2 kiÃu dï liÇu ·c biÇt:
+ resource
+NULL
C§n ph£i nói qua vÁ kiÃu dï liÇu m£ng trong PHP vì nó khá ·c biÇt. Nó không tht sñ là m£ng nh° trong các ngôn ngï lp trình bc cao mà nó giÑng mÙt danh sách hay mÙt b£ng bm thì úng h¡n. Nh° các b¡n ã bi¿t, m£ng th°Ýng °ãc hiÃu là mÙt dãy các ph§n tí dï liÇu liÁn nhau, m×i ph§n tí °ãc ánh sÑ b±ng mÙt sÑ nguyên. Trong PHP cing vy, nh°ng cách ánh chÉ sÑ các ph§n tí có iÁu khác biÇt. Các chÉ sÑ không nh¥t thi¿t ph£i là sÑ mà chúng có thà là xâu kí tñ và mÙt m£ng có thà tÓn t¡i c£ hai cách ánh chÉ sÑ.
B¡n có thà gán: $arr[key]=value;
VD: $a['color'] = "red";
24-˜
N P R V
î
ô
v
z
Î
Ò
Ô
x
~
‚
² ' ¶ ¸ ¼ ØÜÞ‚„†ˆŠŒ02ïÝïÝïÈïȸÈïÝïÝïÝïÝïÝïÝ¡Ý¡ÝïÝ¡Ý¡Š¡ÝïÝ¡Ý¡s¡Ý¡Ý¡,jlhÝAB*CJOJQJU^JaJph,j¶hÝAB*CJOJQJU^JaJph,jhÝAB*CJOJQJU^JaJphhÝA0JCJOJQJ^JaJ(jhÝA0JB*OJQJU^Jph#hÝAB*CJOJQJ^JaJph-hÝA0JB*OJQJ^Jph-'"""-"l=n=p=@ÇBÇDÇFÇþþVþÂÄÆôÒÔª-ýýT"¾týT"¾týýT"¾týT"¾tõðT"¾tðT"¾tðT"¾tððT"¾tðT"¾tððððððê$Ifgd-ë
&
Fgd-ë R²ý2468:Þàâäè º¼¾ÀÄœ ¢ FHJLP>BDèêìîéÒÀÒÀÒ©ÒÀ™ÀÒÀÒ‚ÒÀ™ÀÒÀÒkÒÀ™ÀÒÀÒTÒ,júhÝAB*CJOJQJU^JaJph,jDhÝAB*CJOJQJU^JaJph,jŽhÝAB*CJOJQJU^JaJph-hÝA0JB*OJQJ^Jph,jØhÝAB*CJOJQJU^JaJph#hÝAB*CJOJQJ^JaJph,jhÝAB*CJOJQJU^JaJph,j"hÝAB*CJOJQJU^JaJph îò¸¼¾bdfhlÔØÚ€‚„†Š04jlŒŽÄÆ jn&(Z\R-T-Â-Æ- " P R Ö Ø Ü Þ !!!
!b!d!íÝíÆíƯÆíÝíÆíƘÆíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝí݃(jhÝA0JB*OJQJU^Jph,jfhÝAB*CJOJQJU^JaJph,j°hÝAB*CJOJQJU^JaJph,jhÝAB*CJOJQJU^JaJph-hÝA0JB*OJQJ^Jph#hÝAB*CJOJQJ^JaJph3d!Ê!Ì!þ!""'"°"'"Ð"Ò"8#:#À#Â# $$%%¶%¸%0&2&B&F&'&b&,'0'z(~(€(()*),).)2)ö)ú)ü)¤*¦*ïÚÊÚïºï¨ï¨ïÚïÚÊÚïÚïÚÊÚï¨ï¨ï¨ï¨'¨'z'¨ï¨'¨',j hÝAB*CJOJQJU^JaJph,jhÝAB*CJOJQJU^JaJph#hÝAB*CJOJQJ^JaJph-h0B.0JB*OJQJ^JphhÝA0JCJOJQJ^JaJ(jhÝA0JB*OJQJU^Jph-hÝA0JB*OJQJ^Jph)¦*¨*ª*®*0+4+6+Þ+à+â+ä+è+¢,¦,¨,P-R-T-V-Z-ô/ø/ú/ž0 0¢0¤0¨0Ê1Ì1p2r2t2éÒÀ°ÀÒÀÒ™ÒÀ°ÀÒÀÒ‚ÒÀ°ÀÒÀÒkÒÀ°ÒÀÒT,j¼
hÝAB*CJOJQJU^JaJph,j
hÝAB*CJOJQJU^JaJph,jL hÝAB*CJOJQJU^JaJph,j'hÝAB*CJOJQJU^JaJph-hÝA0JB*OJQJ^Jph#hÝAB*CJOJQJ^JaJph,jhÝAB*CJOJQJU^JaJph,jØ hÝAB*CJOJQJU^JaJph t2v2z2ž2 2Ì3Ð344æ4è4'5b5d5.606ð6ò6j7l7p7h8l8X9\9f:j:Š;Ž;<<„<†<Ð<Ò<l=„=†=D>F>pDrDÒEÔEðEôEüEFHFLF'Hé×Ç×Ç×DzDz¢²×DzDz¢²×Ç×Ç×Ç×Ç×DzDz¢²Ç'€'€'€'€'€'€'€'#h-ëB*CJOJQJ^JaJph-h-ë0JB*OJQJ^JphhÝA0JCJOJQJ^JaJ(jhÝA0JB*OJQJU^Jph-hÝA0JB*OJQJ^Jph#hÝAB*CJOJQJ^JaJph,jhÝAB*CJOJQJU^JaJph2'HdHlHpH H¢HI I(I,I\I'IžI¢IªI°IøIúIJJ JJJJJJLJZJ\JhJjJ¶J¸JÆJÈJÖJÚJ†KŠK¸KºKLLœLžLÔLÖLºM¼MHNJN²N'NfOhO0P2PàPâP¸Q¼QÜQàQ R
RRRTRšRœR¶R·RáRâRSS
S
SESFS|STjUlU&V(V®V°V¶V¸VíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝí-h-ë0JB*OJQJ^Jph#h-ëB*CJOJQJ^JaJphW¸VÂVÄV@WBW€W‚W¾WÀW0X2X6X8X'XbXÜXÞXYYZY\YÄYÆY:Z>ZVZXZŽZZ¾[À[Ò[Ô[„\†\&](]@]B]º]¼]J_L_''"'
a aZa\a|a€aÀaÂaFbHbÌbÎbpcrczc|c¦c¨cîcðcTdVd'd"d¾dÀd
e
e°e²eæeèe0f2f@gBgJgLg-g˜gâgäg*hïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝï#h-ëB*CJOJQJ^JaJph-h-ë0JB*OJQJ^JphW*h,h‚h„höhúhi iäièi*j,j^k'kÂkÆk'l¸lnnrovo"o˜oÀoÂo0q2q:q<qJqLqZq^q€q‚q q¤q¾qÀqÂqÆqÔqÖqæqêq\s^süsþs@tBtPtRt'tdt†tˆtätætètìtútüt
uu>v@vHvJvnvpvŒvŽvžv vªv¬v®v°vÈwÌwæwèw.x0x6x8xíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝí-h-ë0JB*OJQJ^Jph#h-ëB*CJOJQJ^JaJphW8xRxTxpxrxšxžx¢x¤xÄxÆxòxöx2y6y z¢zX{\{¦{¨{$|&|,|.|z|||Î|Ð|ú|ü|
} }œ}ž}TV œžøüÞ„â„þ„...ˆˆºˆ¼ˆÄˆÆˆ(‰*‰Þ‰â‰ŠŠšŠœŠ¦Š¨Š$‹(‹
>@26NP-˜úü˜šØÚ0'2':'<'F'ïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝï#h-ëB*CJOJQJ^JaJph-h-ë0JB*OJQJ^JphWF'H'z'|'Â'Ä','.'<'@'ž' '¨'ª'''¶'ü'þ'N"P"T"X"p"r"-"˜" ••‚-„--- --˜-š-˜ ˜˜ ˜U˜V˜l˜n˜ ˜¢˜Û˜Ü˜ü˜ý˜5™6™V™W™™™š™Ê™Ë™ü™ý™š šHšJš€š‚šÂšÄš ››:›>›Z›\›€›‚›'›¶›œ œ,œ.œˆœŠœôœöœ"$íÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝí-h-ë0JB*OJQJ^Jph#h-ëB*CJOJQJ^JaJphW$tvðôž
ž0ž2žpžrž°ž²žðžòžŸŸŸ
ŸŸŸÀŸÂŸÞŸàŸæŸèŸ$ & ' " ˜ ' ¶ ü þ B¡D¡F¡J¡Š¡Œ¡â¡ä¡&¢(¢*¢,¢£ £0£2£ £¢£ø£ú£ü£þ£
¤
¤z¤|¤Ò¤Ô¤Ö¤Ú¤¥ ¥¦
¦ ¦¦D¦F¦t¦v¦x¦|¦2§4§<§>§|§~§ §¢§¤§ïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝï#h-ëB*CJOJQJ^JaJph-h-ë0JB*OJQJ^JphW¤§¨§æ§ê§¨¨6©:©@©B©L©N©n©p©š©œ©ž©¢©Ø©Ú©0ª2ª4ª8ªTªVªfªhª„ª†ª¦ª¨ª¬ª°ªÎªÐª4«6«‚«„«Ô«Ö«¼¬¾¬°²¸ºÄÆ®®'®"®ô®ö®ú®ü®ö¯ø¯°°p°r°¦°ª°Ð°Ò°†±ˆ±'±"±¬±®±²²,².²P²Q²n²o²p²r²¡²¢²Ç²È²íÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝí-h-ë0JB*OJQJ^Jph#h-ëB*CJOJQJ^JaJphWȲê²ë²³ ³³³³-³,³-³/³0³1³2³3³4³7³'¼'¾'Ä'Æ'è'ê'µ µÒ¶Ô¶Ü¶Þ¶··4·8·p·r·œ·ž· ·¢·¤·¨·,¸.¸B¹F¹d¹f¹r»t»ä»æ»î»ð»L¼N¼F½H½N½P½|½~½Œ½Ž½½"½ž½ ½²½'½Þ½à½Ì¾Î¾Ö¾Ø¾¿ ¿(¿*¿N¿P¿R¿V¿†¿Š¿:ÀïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝïÝï#h-ëB*CJOJQJ^JaJph-h-ë0JB*OJQJ^JphW:À<ÀDÀFÀTÀVÀhÀjÀ€À„À®À°ÀøÃúÃ*Ä,Ä6Ä8Ä|Ä~Ä'Ä¶Ä ÅÅvÅxÅÎÅÐÅ"Æ$Æ@ÆBÆfÆhÆlÆpÆŽÇ'ÇÆÇÈÇÚÇÜÇîÇðÇ"È$È4È8ÈlÈnÈzÈ|ÈŒÈÈÄÈÆÈÚÈÜÈæÈêÈîÌòÌ2Í4ÍdÍfÍð'ð¸ðóóæóèóîóðó2ô4ô'ô¶ôõ õàõâõðõòõ\ö'öíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíÛÝíÝíÝíÝíÝíÝíÝíÝíÝíÝíU-h-ë0JB*OJQJ^Jph#h-ëB*CJOJQJ^JaJphVHo·c dùng lÇnh array: $a = array ('color' => 'red', 'size' => 'big', 'price' => '100 USD';
KiÃu cça các bi¿n không °ãc ¥n Ënh bßi ng°Ýi lp trình mà nó s½ °ãc PHP xác Ënh vào thÝi iÃm script °ãc thñc hiÇn tuó vào ngï c£nh mà bi¿n ó °ãc thñc hiÇn. N¿u b¡n gán mÙt xâu kí tñ cho mÙt bi¿n, bi¿n ó s½ có kiÃu là xâu kí tñ. N¿u b¡n l¡i gán mÙt sÑ nguyên cho bi¿n ó thì nó l¡i có kiÃu sÑ.
Do các bi¿n không có kiÃu cÑ Ënh nên có thà gây ra mÙt sÑ l§m l«n cho nhïng ng°Ýi mÛi làm quen vÛi PHP.
VD:
$foo = "2";//foo là mÙt xâu kí tñ
$foo+=2;//lúc này foo l¡i là mÙt bi¿n kiÃu sÑ, có giá trË b±ng 4
$foo=5+"10 Welcome to HVA";//foo có giá trË b±ng 15
Tuy nhiên b¡n v«n có thà chuyÃn Õi kiÃu mÙt cách rõ ràng (explicit) nh° v«n th°Ýng làm trong C:
$foo=2;
$bar=(float) $foo;//bar s½ trß thành mÙt bi¿n sÑ thñc
2. Các c¥u trúc iÁu khiÃn
Các c¥u trúc iÁu khiÃn trong PHP cing hoàn toàn t°¡ng tñ vÛi C. Þ ây tôi chÉ Á cp ¿n mÙt c¥u trúc iÁu khiÃn mÛi, ó là c¥u trúc foreach. C¥u trúc này th°Ýng dùng à duyÇt các m£ng h×n hãp trong PHP:
foreach (array_expression as $value) statements;
foreach (array_expression as $key => $value) statements;
Vòng l·p thé nh¥t s½ duyÇt toàn bÙ m£ng, ph§n tí hiÇn ang °ãc xem xét s½ °ãc gán cho bi¿n $value, con trÏ m£ng s½ °ãc tng lên 1 Ã vòng l·p sau thì ph§n tí ti¿p theo s½ °ãc xí lý.
Vòng l·p thé hai cing làm iÁu t°¡ng tñ. ChÉ khác mÙt iÁu là chÉ sÑ cça ph§n tí hiÇn thÝi s½ °ãc gán cho bi¿n $key.
MÙt sÑ lÇnh iÁu khiÃn khác nh° là require(), include(), require_once, include_once() °ãc dùng à liên k¿t mÙt file PHP khác vào file PHP hiÇn thÝi. Chúng làm viÇc giÑng nh° chÉ thË #include cça C.
Cú pháp: require(<filename>);
Các lÇnh còn l¡i cing có cú pháp t°¡ng tñ, sñ khác nhau giïa các lÇnh này các b¡n nên xem trong tài liÇu cça PHP.
Cai password cho trang web:
Bây giÝ, trang web cça b¡n có mÙt cái link tÛi 1 trang web, nh°ng mà b¡n l¡i muÑn cài password à chÉ có ng°Ýi nào bi¿t password mÛi °ãc mß ra, tui có cách ¡n gi£n nh¥t là sài java script (dùng chính tên trang web ó làm password), cách làm nh° sau :
mß file htm có chéa cái link ¿n trang c§n ·t pass, thêm vào o¡n HTML sau :
QUOTE
<script language="JavaScript">
function Enter() {
var password = prompt("Password required:", "")
var location=password + ".htm";
this.location.href = location;
}
</SCRIPT>
tìm ¿n cái link ó, sía HREF b±ng ... gì ó thành HREF="javascript:Enter()"
Ví då : mình có file index.htm nh° sau :
QUOTE
<HTML>
<BODY>
<script language="JavaScript">
function Enter() {
var password = prompt("Password required:", "")
var location=password + ".htm";
this.location.href = location;
}
</SCRIPT>
<A HREF="javascript:Enter()">Click here</A>
</BODY>
</HTML>
và mÙt file test.htm nh° sau :
QUOTE
<html>
<body>
thí cái website
</body>
</html>
nh° vy khi mình ch¡y file index.htm rùi nh¯p vào ó, nó s½ òi pass, n¿u pass là test thì nó s½ mß file test.htm ra còn không thì nó s½ báo l×i .... cái này m¯c c°Ýi l¯m ! VD gõ pass là index thì nó l¡i mß file index.htm ra hic hic còn không thì the page cannot be display !.B¡n có thà thay pass cça mình b±ng cách thay dòng "pass +.htm" b±ng passs cça mình
Website vuot firewall:
200.165.58.194 3128 transparent Brazil 2003-06-30 whois
163.29.251.141 80 anonymous Taiwan 2003-06-30 whois
200.76.239.4 80 high anonymity Mexico 2003-06-30 whois
209.222.194.9 8000 anonymous United States 2003-06-30 whois
195.46.206.20 80 transparent France 2003-06-30 whois
62.49.146.138 8080 transparent Great Britain (UK) 2003-06-30 whois
80.24.75.38 80 anonymous Spain 2003-06-30 whois
200.180.109.83 3128 transparent Brazil 2003-06-30 whois
128.95.219.192 3128 high anonymity United States 2003-06-30 whois
211.250.158.252 80 anonymous South Korea 2003-06-30 whois
61.219.84.195 3128 transparent Taiwan 2003-06-30 whois
213.156.39.4 80 anonymous Italy 2003-06-30 whois
63.174.69.230 80 anonymous United States 2003-06-30 whois
66.21.103.9 80 high anonymity United States 2003-06-30 whois
211.184.111.130 8080 transparent South Korea 2003-06-30 whois
211.233.17.125 80 transparent South Korea 2003-06-30 whois
148.235.137.150 3128 transparent Mexico 2003-06-30 whois
200.51.40.34 80 anonymous Argentina 2003-06-30 whois
212.57.29.34 80 anonymous Turkey 2003-06-30 whois
200.206.210.20 3128 transparent Brazil 2003-06-30 whois
213.190.43.199 8080 anonymous Lithuania 2003-06-30 whois
80.25.151.179 80 anonymous Spain 2003-06-30 whois
195.243.102.244 3128 transparent Germany 2003-06-30 whois
200.167.128.130 3128 transparent Brazil 2003-06-30 whois
200.61.159.147 8080 transparent Argentina 2003-06-30 whois
64.220.194.234 8080 anonymous United States 2003-06-30 whois
80.32.92.183 80 anonymous Spain 2003-06-30 whois
80.105.45.9 3128 transparent Italy 2003-06-30 whois
194.27.49.91 80 high anonymity Turkey 2003-06-30 whois
195.46.206.22 80 transparent France 2003-06-30 whois
194.27.49.133 80 high anonymity Turkey 2003-06-30 whois
200.168.250.130 3128 transparent Brazil 2003-06-30 whois
200.60.194.74 3128 transparent Peru 2003-06-30 whois
144.135.2.29 80 anonymous Australia 2003-06-30 whois
66.185.95.149 8080 transparent Canada 2003-06-30 whois
200.45.71.40 80 anonymous Argentina 2003-06-30 whois
211.248.237.194 8080 transparent South Korea 2003-06-30 whois
194.27.49.231 80 high anonymity Turkey 2003-06-30 whois
80.81.2.62 3128 transparent Germany 2003-06-30 whois
148.245.163.193 3128 transparent Mexico 2003-06-30 whois
200.245.2.149 8080 transparent Brazil 2003-06-30 whois
199.71.136.70 80 transparent Canada 2003-06-30 whois
61.221.32.211 80 transparent Taiwan 2003-06-30 whois
208.32.128.11 3128 transparent United States 2003-06-30 whois
193.251.91.13 8080 transparent France
HYPERLINK "http://www.makemeinvisible.com" \t "_blank" http://www.makemeinvisible.com
HYPERLINK "http://www.chaoga.com" \t "_blank" http://www.chaoga.com
HYPERLINK "http://funkybaby.topcities.com/proxy.html" \t "_blank" http://funkybaby.topcities.com/proxy.html
HYPERLINK "http://lehoan.net/prõy/passfw" \t "_blank" http://lehoan.net/prõy/passfw
4 buoc tao forum:
BuÛc 1: ng kí 1 account t¡i www.1asphost.com .ViÇc dang ký r¥t don gi£n nhu là dang ký làm thành viên ß diÅn dàn này.ChÉ m¥t vài phút thông báo thông tin cá nhân,sau dó mß mail cça mình b¥m vào link confirm ch¥p nhn dang ký.Vy là b¡n dã có 1 thu måc 100MB trên 1asphost.com dËa chÉ cça b¡n s½ là HYPERLINK "http://c.1asphost.com/têncçaban" \t "_blank" http://c.1asphost.com/têncçaban sau khi login vào dó b¡n có thà t£i tÇp lên b±ng cách vào trang upload (b¥m vào nút UploadFile).
BuÛc 2 : Sau ó download tÇp zip chéa mã nguÓn cça snit forum HYPERLINK "http://forum.snitz.com/download.asp" \t "_blank" http://forum.snitz.com/download.asp vÁ máy cça mình. Gi£i nén ra tìm tÇp config.asp tìm dòng có chéa cåm lÇnh sau
'strDBType = "access" bÏ d¥u ' ß §u dòng >> strDBType = "access"
'strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("snitz_forums_2000.mdb") '## MS Access 2000 using virtual path
Cing bÏ d¥u ' ß §u dòng và thêm têncçab¡n (username b¡n ã ng ký trên 1asphost.com)
>> strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("têncçab¡n\snitz_forums_2000.mdb") '## MS Access 2000 using virtual path
nén t¥t c£ l¡i nh° ci.
B°Ûc 3: Vào trong www.1asphost.com vào trang upload File ,chÉ ra °Ýng d«n ¿n tÇp zip ó trên máy mình.Sau khi tÇp zip ó °ãc t£i lên máy chç nó s½ tñ bung nén ra
B°Ûc 4: gõ http:/c.1asphost.com/têncçab¡n/setup.asp
N¿u thông báo thành công thì B¡n ã có 1 forum cça riêng mình.
gõ http:/c.1asphost.com/têncçab¡n/default.asp
vào diÅn àn vÛi user= admin password=admin
Chúc các b¡n thành công !!!
N¿u b¡n g·p v¥n Á gì hãy post lên ây à cùng th£o lun.
Thong ke so nguoi dang truc tuyen:
Tr°Ûc tiên chúng ta cùng phân tích các b°Ûc c§n làm:
+ L¥y Ëa chÉ IP cça m×i user truy cp vào site cça b¡n.
+ KiÃm tra xem Ëa chÉ IP trên ã tÓn t¡i hay ch°a.
à TÒN T I => cp nht l¡i (UPDATE) phiên làm viÇc cça user qua IP này.
CH¯A TÒN T I => thêm vào CSDL (INSERT) phiên làm viÇc cça user này.
+ Xoá (DELETE) nhïng phiên làm viÇc ã h¿t h¡n.
+ Íc t¥t c£ IPs ang có trong CSDL.
+ HiÇn lên browser.
Chúng ta cùng b¯t §u nhé !
Sí dång getenv("REMOTE_ADDR"), b¡n có thà dÅ dàng l¥y c Ëa chÉ IP khi user truy cp vào trang chéa code này.
Ví då b¡n có thà sí dång code sau à xem IP cça mình:
echo getenv("REMOTE_ADDR");
Sau khi ã l¥y c IP cça user, chúng ta s½ kiÃm tra xem IP này ã tÓn t¡i trong CSDL hay ch°a và xí lý vÛi CSDL b±ng 2 lÇnh truy v¥n UPDATE và INSERT. Các b¡n xem các b°Ûc ti¿p theo nhé.
Gi£ sí chúng ta có 1 b£ng tên demotable trong CSDL vÛi 4 tr°Ýng: id, ip (chéa IP cça user), location (trang user ang truy cp) và time (thÝi iÃm user b¯t §u truy cp trang).
Trong Tutorial tr°Ûc Sí dång PHP&MySQL à l¥y dï liÇu, b¡n ã n¯m °ãc cách sí dång câu truy v¥n SELECT à l¥y dï liÇu të CSDL, l§n này chúng ta s½ sí dång l¡i à kiÃm tra sñ tÓn t¡i cça IP. B¡n cing ã bi¿t cách connect vào CSDL tr°Ûc khi l¥y dï liÇu ß TUT tr°Ûc, vì th¿ chúng ta s½ ko nh¯c tÛi trong TUT này.
<?php
$result = mysql_query("SELECT * FROM demotable WHERE ip='".getenv("REMOTE_ADDR")."'") or die("Query failed");
$num_rows = mysql_num_rows($result);
if($num_rows) {
mysql_query("UPDATE demotable SET location='$REQUEST_URI', time='".time()."' WHERE ip='".getenv("REMOTE_ADDR")."'") or die("Query failed");
}
else {
mysql_query("INSERT INTO demotable VALUES ('', '".getenv("REMOTE_ADDR")."', '$REQUEST_URI', '".time()."')") or die("Query failed");
}
Þ các b°Ûc ti¿p theo, chúng ta s½ hÍc cách sí dång chi ti¿t 2 truy v¥n UPDATE và INSERT cùng câu truy v¥n c¡ b£n cuÑi cùng cça SQL DELETE
1 truy v¥n hoàn chÉnh sí dång UPDATE gÓm Tên table c§n cp nht, Tên các tr°Ýng °ãc cp nht, Các giá trË cp nht t°¡ng éng và iÁu kiÇn cp nht sí dång WHERE. N¿u b¡n muÑn cp nht 1 hay nhiÁu tr°Ýng cça t¥t c£ các b£n ghi trong table, có thà s½ ko c§n dùng iÁu kiÇn WHERE.
UPDATE tablename SET field1='newvalue1', field2='newvalue2'
ho·c
UPDATE tablename SET field1='newvalue1', field2='newvalue2' WHERE field3='specified value'
Cing nh° các câu truy v¥n khác, INSERT c§n Tên table c§n sí dång, Tên các tr°Ýng nhn giá trË (ko c§n có n¿u thêm giá trË cho t¥t c£ các tr°Ýng trong table) và các giá trË °a vào t°¡ng éng.
INSERT INTO tablename VALUES ('value1', 'value2', 'value3')
ho·c
INSERT INTO tablename (fieldname1, fieldname2, fieldname3) VALUES ('value1', 'value2', 'value3')
* Chú ý là sÑ tr°Ýng nhn giá trË ph£i b±ng vÛi sÑ giá trË °a vào.
* Tr°Ýng nào có kiÃu Integer mà giá trË °a vào à trÑng s½ nhn °ãc giá trË ti¿p theo cça tr°Ýng t°¡ng éng trong b£n ghi tr°Ûc.
Ví då: trong table demotable, b£n ghi cuÑi cùng có id là 3, khi chúng ta dùng INSERT à thêm 1 b£n ghi mÛi vÛi giá trË t°¡ng éng cho tr°Ýng id à trÑng, id cça b£n ghi mÛi này s½ nhn giá trË là 4.
INSERT INTO demotable VALUES ('', '".getenv("REMOTE_ADDR")."', '$REQUEST_URI', '".time()."');
Ti¿p theo, chúng ta s½ bÏ i nhïng phiên làm viÇc h¿t h¡n cça users à có °ãc sÑ ng°Ýi online chính xác. à làm viÇc này, chúng ta c§n 1 bi¿n Ënh ra thÝi gian h¿t h¡n cça m×i phiên làm viÇc, gi£ sí là $timexpired . Chúng ta s½ xoá h¿t nhïng b£n ghi trong demotable có tr°Ýng time tho£ mãn iÁu kiÇn (time value +$timexpired) < current time
// Delete expired sessions
$timexpired = 30; // in seconds
$timeout = time() - $timexpired;
mysql_query("DELETE FROM demotable WHERE time < $timeout") or die("Query failed");
Truy v¥n DELETE c§n Tên table sí dång và ít nh¥t 1 iÁu kiÇn truy v¥n
DELETE FROM table_name WHERE condition
ho·c cho nhiÁu iÁu kiÇn:
DELETE FROM table_name WHERE (condition1) AND (condition2) AND (conditionN)
Sau khi ã bÏ h¿t nhïng phiên làm viÇc ã h¿t h¡n, chúng ta s½ có °ãc sÑ ng°Ýi online chính xác, °ãc l°u trong các b£n ghi cça table demotable. Sí dång SELECT, chúng ta có thà ¿m °ãc sÑ b£n ghi này, t°¡ng éng vÛi sÑ ng°Ýi ang online. Chúng ta s½ k¿t thúc scripts ß ây, b¡n ëng quên thêm vào code à óng CSDL và th» PHP nhé.
$result = mysql_query("SELECT ip FROM demotable") or die("Query failed");
$num_rows = mysql_num_rows($result);
echo $num_rows;
/* Free result */
mysql_free_result($result);
?>
Code °ãc °a ra trong Tutorial này chÉ là ph§n c¡ b£n, b¡n thêm vào nhïng ph§n c§n thi¿t khác (ã h°Ûng d«n ç trong Tut tr°Ûc) à t¡o °ãc 1 scripts hoàn chÉnh cho riêng mình nhé. Chú ý là trong demotable có 3 tr°Ýng, các b¡n s½ c§n à hiÇn §y ç thÑng kê vÁ user: vË trí trên site cça b¡n, thÝi gian hÍ b¯t §u vào site ... Ph§n này dÅ nên tôi à các b¡n tñ làm l¥y.
Qua Tutorial này, b¡n n¯m c thêm cách sí dång cça 3 truy v¥n c¡ b£n khác, nh° vy là ã ç 4 truy v¥n c¡ b£n vÛi SQL, ç Ã xây dñng 1 hÇ thÑng cho riêng b¡n rÓi ó
Su dung PHP@MySQL de lay du lieu:
Gi£ sí b¡n ã có 1 table có tên demotable vÛi các tr°Ýng: id, name, value n±m trong C¡ Sß Dï LiÇu (CSDL) có tên demo_database.
Tr°Ûc tiên chúng ta c§n k¿t nÑi vào CSDL , sí dång hàm mysql_connect() vÛi c¥u trúc c¡ b£n nh¥t nh° sau mysql_connect("mysql_host", "mysql_user", "mysql_password");
*Chú ý: të b°Ûc ti¿p theo, b¡n có thà copy toàn bÙ ph§n text ho·c riêng nhïng ph§n °ãc óng khung (chÉ có code) à ch¡y thí tutorial này.
// B¯t §u të ây
<?php
/* Connecting, selecting database */
$link = mysql_connect("localhost", "demo_username", "demo_password")
or die("Could not connect");
mysql_select_db("demo_database") or die("Could not select database");
// Hàm mysql_select_db() c dùng à chÍn tên CSDL c§n sí dång sau khi ã k¿t nÑi c vào CSDL
// B¡n có thà th¥y o¡n mã trên có sí dång hàm die() à °a ra thông báo khi scripts ko k¿t nÑi c vào CSDL ho·c ko chÍn c CSDL nào.
// Bây giÝ chúng ta s½ thñc hiÇn câu truy v¥n SQL Ã chÍn mÙt sÑ tên tr°Ýng và l¥y dï liÇu cça chúng të demotable
/* Performing SQL query */
$query = "SELECT * FROM demotable";
$result = mysql_query($query) or die("Query failed");
// "SELECT * FROM demotable" là câu truy v¥n dï liÇu luôn i kèm tên tr°Ýng và tên table.
// Các tr°Ýng c chÍn ph£i c t¡o sµn trong table °ãc gÍi të FROM tên table
// L°u ý là b¡n có thà chÍn các tr°Ýng të 1 hay nhiÁu tables khác nhau.
// SELECT * có ngh)a là b¡n chÍn t¥t c£ các tên tr°Ýng có sµn trong table c sí dång(demotable). B¡n có thà thay viÇc sí dång * b±ng cách chÉ rõ tr°Ýng nào c§n chÍn, trong ví då này có thà là: id, name hay value, miÅn là chúng ã có trong demotable
// ¿n ây, viÇc l¥y dï liÇu ã hoàn t¥t
// GiÝ chúng ta s½ hiÇn chúng trên browser
/* Printing results in HTML */
while ($line = mysql_fetch_array($result)) {
print "ID: $line[id]
";
print "Name: $line[name]
";
print "Value: $line[value]
";
}
print "<hr>";
// Thay vì sí dång print "text";, b¡n có thà sí dång echo "text";
// Chú ý $line là 1 m£ng c tr£ vÁ të hàm mysql_fetch_array(). Vì th¿ Ã l¥y giá trË të $line, chúng ta ph£i chÉ rõ "të khoá" cça ph§n tí trong m£ng (trong ví då là id, name, value)
Scripts s¯p hoàn thành
// B°Ûc cuÑi cùng là gi£i phóng bÙ nhÛ liên quan tÛi bi¿n $result chúng ta sí dång , óng CSDL và k¿t thúc scripts vÛi ?>
/* Free result */
mysql_free_result($result);
/* Closing connection */
mysql_close($link);
?>
// Thñc ra b°Ûc này ko hoàn toàn c§n thi¿t, b¡n có thà bÏ qua b°Ûc 5 này, nh°ng ëng quên sí dång th» ?> ß cuÑi scripts ¥y nhé
// Tutorial k¿t thúc ß ây. B¡n th¥y nó c¡ b£n và thñc hiÇn khá dÅ ph£i ko ? vì th¿ hãy cÑ ghi nhÛ nhé, vì chúng ta còn ph£i dùng ¿n nó r¥t nhiÁu sau này ¥y !
CÀI ¶T PERL - PHP - MYSQL VÚI IIS
°ãc cung c¥p bßi HYPERLINK "mailto:[email protected]?subject=%5BDDTH%5D%20-%20Tute%20-%20Cai%20dat%20Perl/PHP/MySQL%20voi%20IIS" Duy S¡n
HiÇu ính và minh ho¡ bßi NguyÅn Bá Thành
B°Ûc 1: KiÃm tra/Cài ·tIIS
B¡n kiÃm tra xem máy b¡n ã cài IIS ch°a, Vào Control Panel -> Add/Remove Programs -> Add/Remove Windows Components. Trong ph§n Windows Components Wizard xem cái Internet Information Services (IIS) có °ãc ánh d¥u không. N¿u ch°a thì ánh d¥u vào ó. Nh¥n Next/Finish/Close à cài IIS.
[ HYPERLINK "http://www.diendantinhoc.net/tute/hethong/IIS-Perl-PHP-MySQL-duyson/01.gif" \t "_blank" Click à xem hình minh ho¡]
Sau khi cài ·t xong, b¡n mß trình duyÇt lên (Internet Explorer, Netscape...), gõ vào Ëa chÉ http://localhost xem có ch¡y không. N¿u hiÇn ra màn hình cça IIS thì ã thành công.
L°u ý: IIS chÉ cài °ãc trên Windows NT, Windows 2k và Windows XP Pro. Không cài °ãc trên Windows9x, ME và XP Home!
B°Ûc 2: C¥u hình IIS
(B°Ûc này không c§n thi¿t n¿u nh° b¡n ch°a ång ch¡m nhiÁu vào Win, tuy nhiên cing tìm hiÃu mÙt chút à n¯m rõ h¡n)
Hãy vào Start menu -> Programs -> Administrative Tools (ho·c Control Panel -> Administrative Tools) rÓi vào ti¿p ph§n Configure Your Server. N¿u th¥y hiÇn cía sÕ cho phép b¡n lña chÍn server (chÉ có trên Win phiên b£n server), hãy chÍn ph§n "This is the only server in my network".
B°Ûc này th°Ýng °ãc làm ngay sau khi cài Win phiên b£n server. B¡n có thà bÏ b°Ûc này n¿u nh° ch°a thay Õi gì trong ó.
ChÍn Next ß b°Ûc ti¿p theo. N¿u thích b¡n có thà Íc h°Ûng d«n trên mà hình à tìm hiÃu. Theo tôi thì không c§n thi¿t.
Trong 2 ô Ã trÑng cça cía sÕ mÛi b¡n chÉ c§n iÁn "local" vào m×i ô. ChÍn next. Máy s½ tñ Ùng cài ·t cái Localhost cho b¡n. B¡n s½ g·p báo l×i ch°a chuyÃn Partition cho )a sang NTFS 5.0 (n¿u b¡n v«n sí dång FAT32), tuy nhiên không v¥n Á gì âu. Cé OK cho qua thôi.
Vy là xong viÇc thé hai, b¡n có thà óng cía sÕ Configure Your Server.
L°u ý: B°Ûi này chÉ thñc hiÇn n¿u b¡n sí dång Windows phiên b£n Server!
Cài ·t các ch°¡ng trình c§n thi¿t!
1. Cài ActivePerl
Download ß http://www.activeperl.com
B¡n có thà cài ch°¡ng trình này vào th° måc m·c Ënh là C:\Perl, nh°ng à tiÇn thì b¡n nên cài vào th° måc X:\usr (vÛi X là tên Õ )a mà b¡n l°u các trang web b¡n ang vi¿t). Nh° vy, n¿u sau này có upload lên server Linux trên internet, b¡n á m¥t công chÉnh l¡i °Ýng d«n cho ch°¡ng trình Perl cça b¡n.
2. Config à ActivePerl ch¡y file *.cgi
Vào Control Panel -> Administrative Tools -> Internet Services Manager (n¿u b¡n dùng Win b£n server) ho·c Internet Information Services (n¿u b¡n dùng các b£n Win khác).
B¥m chuÙt ph£i vào Default Web Site, chÍn Properties: [ HYPERLINK "http://www.diendantinhoc.net/tute/hethong/IIS-Perl-PHP-MySQL-duyson/02.gif" \t "_blank" Click à xem hình minh ho¡]
ChÍn ph§n Home Directory. NhÛ ánh d¥u chÍn måc Script and source access và Read, bÏ ánh d¥u ß måc Write. Trong måc Execute Permission, chÍn Scripts and Executables. Nh¥n Apply à ch¥p nhn thi¿t lp. [ HYPERLINK "http://www.diendantinhoc.net/tute/hethong/IIS-Perl-PHP-MySQL-duyson/03.gif" \t "_blank" Click à xem hình minh ho¡]
Nh¥n vào nút Configuration...(bên c¡nhExecute Permission), chÍn Add và nhp t°¡ng tñ nh° mình minh ho¡ sau:
INCLUDEPICTURE "http://www.diendantinhoc.net/tute/hethong/IIS-Perl-PHP-MySQL-duyson/04.gif" \* MERGEFORMATINET
L°u ý b¡n chÉnh l¡i °Ýng d«n ¿n file PerlIS.DLL cho úng vÛi máy b¡n trong ph§n Executable! Nh¥n OK Ã xác nhn viÇc thêm c¥u hình cho file .cgi.
B¡n làm ti¿p t°¡ng tñ cho file .pl.s
Nh¥n OK Ã óng h¿t các cía sÕ c¥u hình l¡i.
Vy là b¡n ã c¥u hình xong IIS à ch¡y Perl. NhÛ r±ng mÍi thé mà b¡n muÑn ·t vào trang Web cça mình, b¡n hãy copy vào th° måc C:\Inetpub\wwwroot - ây s½ là th° måc gÑc cça Web. N¿u b¡n copy 1 file có tên là abc.html vào th° måc C:\Inetpub\wwwroot (téc file ó s½ là C:\Inetpub\wwwroot\abc.html) thì b¡n có thà truy cp file ó theo °Ýng web qua Ëa chÉ http://localhost/abc.html. N¿u b¡n có mÙt file C:\Inetpub\wwwroot\th°_måc1\th°_måc2\def.html thì b¡n có thà truy cp nó qua °Ýng web vÛi Ëa chÉ http://localhost/th°_måc1/th°_måc2/def.html.
3. KiÃm tra xem CGI và PL ã ch¡y ch°a
B¡n hãy t¡o 2 file hello.cgi và hello.pl có cùng nÙi dung nh° sau:
#!/perl/bin/perl.exe
# simple hello world cgi script
print "Content-type: text/html
";
print "Hello world from PERL $]
"; L°u hai file này vào th° måc C:\Inetpub\wwwroot. Bây giÝ thì mß trình duyÇt, nhp vào http://localhost/hello.cgi và http://localhost/hello.pl thí xem sao. N¿u b¡n nha °ãc mÙt dòng chï Htllo world from PERL...thì Xin chúc mëng b¡n :-)
1. Cài PHP
Download t¡i http://www.php.net
B¡n có thà cài ch°¡ng trình này vào th° måc C:\PHP (hay gì ó tuó b¡n)
Þ php.net có hai phiên b£n cho Windows. N¿u b¡n download phiên b£n rút gÍn thì ch¡y file cài ·t (.exe) sau khi unzip. N¿u b¡n download b£n §y ç thì b¡n unzip vào th° måc C:\PHP và làm các b°Ûc sau:
- Tìm file php.ini-dist trong th° måc C:\PHP và Õi tên thành php.ini
- Copy file php.ini ó vào th° måc C:\WINDOWS ho·c C:\WINNT (th° måc mà b¡n cài ·t Windows ó!)
- Copy 2 files msvcrt.dll và php4ts.dll të C:\PHP vào C:\WINDOWS\SYSTEM32 ho·c C:\WINNT\SYSTEM32
Còn n¿u b¡n cài b£n rút gÍn thì s½ không cso các file msvcrt.dll và php4ts.dll, Óng thÝi file php.ini cing s½ có sµn trong C:\WinNT ho·c C:\Windows. B¡n hãy dùng 1 ch°¡ng trình so¡n th£o vn b£n nào ó (ví då nh° Notepad) Ã mß file php.ini này ra và sía l¡i mÙt chút:
- Tìm dòng b¯t §u b±ng register_globals sía nó l¡i thành register_globals = Off (n¿u không có dòng này thì b¡n tñ thêm vào)
- Tìm dòng b¯t §u b±ng error_reporting và sía nó l¡i thành error_reporting = Off (n¿u không có dòng này thì b¡n tñ thêm vào)
- Tìm dòng b¯t §u b±ng include_path và sía l¡i nh° sau: include_path = ".;c:\inetpub\wwwroot" (n¿u không có dòng này thì b¡n tñ thêm vào)
L°u file php.ini l¡i.
L°u ý: N¿u b¡n dùng Notepad hãy nh¥n F3 rÓi gõ të c§n tìm vào hÙp tìm ki¿m à tìm nhanh h¡n.
à á r¯c rÑi, các b¡n hãy copy paste nguyên nÙi dung file này vào file php.ini cça b¡n: HYPERLINK "http://www.diendantinhoc.net/tute/hethong/phpnuke/php.txt" http://www.diendantinhoc.net/tute/hethong/phpnuke/php.txt
2.C¥u hình à IIS ch¡y °ãc php
Mß Control Panel ->Administrative Tools -> Internet Information Services
Nh¥n chuÙt ph£i vào Default Web Site và chÍn Properties. [ HYPERLINK "http://www.diendantinhoc.net/tute/hethong/IIS-Perl-PHP-MySQL-duyson/02.gif" \t "_blank" Click à xem hình minh ho¡]
Nhn vào måc Home Directory, và chÉnh nh° Ñi vÛi Perl ß trên. [ HYPERLINK "http://www.diendantinhoc.net/tute/hethong/IIS-Perl-PHP-MySQL-duyson/03.gif" \t "_blank" Click à xem hình minh ho¡]
Trong måc Configuration ß bên c¡nh ph§n Execute Permissions, b¡n nh¥n vào nút Add và th¿t lp nh° hình sau:
INCLUDEPICTURE "http://www.diendantinhoc.net/tute/hethong/IIS-Perl-PHP-MySQL-duyson/05.gif" \* MERGEFORMATINET
Nh¥n Ok à óng l¡i các cía sÕ c¥u hình.
3. Ch¡y thí php
à ch¡y thí PHP, b¡n hãy t¡o mÙt file info.php có nÙi dung nh° sau:
<?php
phpinfo();
?> và copy file info.php vào th°u måc C:\Inetpub\wwwroot, Mß trình duyÇt, truy cp vào Ëa chÉ http://localhost/info.php. N¿u màn hình chào ón cça PHP hiÃn thË ra thì b¡n ã thành công rÓi ó :-)
1. Cài MySql
Download MySql t¡i http://www.mysql.com
Nên cài nó vào th° måc m·c Ënh là C:\MySql
2. C¥u hình cho MySQL
Ch¡y C:\mysql\bin\winmysqladmin.exe. N¿u ch¡y l§n §u tiên, b¡n s½ nhn °ãc mÙt thông báo yêu c§u t¡o mÙt tài kho£ng vÛi username và password mySQL. B¡n hãy t¡o mÙt tài kho£n cho b¡n, và ëng có quên cái username và password này ó! Th°Ýng thì tôi t¡o username là root và password là r×ng (téc là không có password).
Thoát winmysqladmin.exe.
3. KiÃm tra MySQL
à kiÃm tra MySQL, hãy t¡o mÙt file test.php có nÙi dung nh° sau:
<?php
$link = mysql_connect("localhost", "username", "password")
or die ("Could not connect");
print("Connected successfully");
mysql_close($link);
?> B¡n nhÛ thay Õi username và password ß trên thành username và password mà b¡n ã t¡o sau khi ch¡y winmysqladmin.exe!
Hãy l°u file test.php này trong th° måc C:\Inetpub\wwwroot. Mß trình duyÇt và truy cp vào Ëa chÉ http://localhost/test.php. N¿u nhn °ãc dòng thôn báo: Connected successfully thì xin chúc mëng b¡n ã thành công!
B¡n có thà download phpMyAdmin ß phpmyadmin.sourceforge.net vÁ sí dång à qu£n lý MySQL. Ho·c b¡n cing có thà sí dång MySQL-Front (xem thêm ß HYPERLINK "http://www.diendantinhoc.net/tute/sql/mysqlfront/" \t "_top" http://www.diendantinhoc.net/tute/sql/mysqlfront/).
MÙt sÑ bài vi¿t khác nên tham kh£o
Cài ·t Apache, mySQL, PHP, GD for Linux
HYPERLINK "http://www.diendantinhoc.net/tute/hethong/apache-mysql-php-perl/" \t "_top" http://www.diendantinhoc.net/tute/hethong/apache-mysql-php-perl/
Cài ·t Apache, mySQL, PHP, Perl for Win
HYPERLINK "http://www.diendantinhoc.net/tute/hethong/apache-mysql-php-perl/" \t "_top" http://www.diendantinhoc.net/tute/hethong/apache-mysql-php-perl/
Và mÙt sÑ bài vi¿t khác
HYPERLINK "http://www.diendantinhoc.net/tute/" \t "_top" http://www.diendantinhoc.net/tute/
HYPERLINK "mailto:[email protected]?subject=%5BDDTH%5D%20-%20Tute%20-%20Cai%20dat%20Perl/PHP/MySQL%20voi%20IIS" Lion - Duyson
Thành viên lÛp 12B5 tr°Ýng ào Duy Të - Thanh Hóa - khóa 1999-2002
Bạn đang đọc truyện trên: Truyen247.Pro