Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. 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: Truyen247.Pro

Tags: