Truyen2U.Net quay lại rồi đây! Các bạn truy cập Truyen2U.Com. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

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 ch­m 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 c­p vào Ëa chÉ HYPERLINK "http://localhost/test.php" \t "_blank" http://localhost/test.php. N¿u b¡n nh­n °ã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 nh­p vào username và m­t mã tuó b¡n chÍn (tôi chÍn username là root và m­t 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 c­p 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à m­t mã b¡n ã t¡o ß trên)

L°u l¡i file config.inc.php, mß IE và truy c­p vào Ëa chÉ HYPERLINK "http://localhost/phpmyadmin/index.php" \t "_blank" http://localhost/phpmyadmin/index.php. N¿u b¡n nh­n °ã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ï l­p 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ï l­p 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 nh­n 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É nh­n °ã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½ nh­n °ã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° v­y, 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ì v­y, 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 nh­p 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"

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ì v­y, 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 à nh­n 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 nh­n 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ì v­y, 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à t­p 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ì v­y 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 nh­n.

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ì v­y, 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ì v­y, 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 th­t sñ là m£ng nh° trong các ngôn ngï l­p trình b­c 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 v­y, 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 l­p 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É Á c­p ¿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° v­y 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 nh­n dang ký.V­y 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 lu­n.

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 c­p 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 => c­p nh­t 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 c­p 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 c­p) và time (thÝi iÃm user b¯t §u truy c­p 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 c­p nh­t, Tên các tr°Ýng °ãc c­p nh­t, Các giá trË c­p nh­t t°¡ng éng và iÁu kiÇn c­p nh­t sí dång WHERE. N¿u b¡n muÑn c­p nh­t 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 nh­n 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 nh­n 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½ nh­n °ã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½ nh­n 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° v­y 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.

V­y 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° v­y, 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 nh­n thi¿t l­p. [ 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à nh­p 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 nh­n 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.

V­y 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 c­p 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 c­p 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, nh­p 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¡]

Nh­n 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 l­p 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 c­p 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½ nh­n °ã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 c­p vào Ëa chÉ http://localhost/test.php. N¿u nh­n °ã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: Truyen2U.Com

Tags: