Tu Hoc Php

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tu Hoc Php as PDF for free.

More details

  • Words: 11,700
  • Pages: 42
Tự học PHP

( 3127 lượt xem )

Thời gian gởi : 18:44 09-05-2005 PHP là m ột ngôn ngữ hiện đại và phổ bi ến n hất của lập trình web hiện na y. Đâ y là bài viết s ơ k hởi có lẽ của tác giả Nothing( Matri x), giúp bạn hiểu nó là gì v à có vài ý niệm c ơ bản cũng nh ư nắ m v ững vài mã nguồn ban đầu của nó - Ngư ời gửi : Huuthiencp19 82 I.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 gần như đã trở thành một ngôn ngữ lập trình Web rất phổ biến trên mạng hiện nay. PHP là chữ viết tắt của cụm từ "PHP Hypertext Preprocessor", tạm dịch là ngôn ngữ tiền xử lí các siêu văn bản. Các mã lệnh PHP được nhúng vào các trang web, các trang này thường có phần mở rộng là .php, .php3, .php4. Khi client gởi yêu cầu "cần tải các trang này về" đến web server, đầu tiên web server sẽ phân tích và thi hành các mã lệnh PHP được nhúng trong, sau đó trả về một trang web kết quả đã được xử lí cho client. Bạn có thể hỏi, tại sau có nhiều tuỳ chọn như ASP, Cold Fusion, Perl, Java, Python nhưng chúng ta lại chọn PHP? Và câu trả lời là: bởi nó là một ngôn ngữ rất dễ dùng, dễ học, cú pháp lệnh đơn giản, các biến không cần phải khai báo trước khi dùng, tự động ép kiểu(typecast), chạy nhanh, tập hàm built-in rất phong phú, có mã nguồn mở… II.Các cách làm việc với PHP: Có 4 cách để dùng PHP: i. ii. iii. iv.

Cách i 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ứ iv chỉ có tác dụng nếu asp_tag được đặt trong file cấu hình của PHP. III.Các kiểu dữ liệu:

PHP hỗ trợ tám kiểu dữ liệu nguyên thuỷ. Bốn kiểu thông thường là: boolean, integer, floating-point number(float), string. Hai kiểu phức tạp là: mảng( array) và đối tượng ( object). Và cuối cùng là hai kiểu đặc biệt : resource và NULL. Loại dữ liệu của biến thông thường không được gán bởi người lập trình mà được quyết định tại thời gian chạy của PHP, phụ thuộc vào ngữ cảnh mà biến được dùng. 1.Boolean: đây là kiểu đơn giản nhất. Một kiểu boolean biểu thị một giá trị thật. Nó có thể là TRUE hay FALSE. Cú pháp: để chỉ định một giá trị boolean, có thể sử dụng từ khoá TRUE hay là FALSE. Cả hai đều không phân biệt chữ hoa hay chữ thường. Ví dụ: $foo=True; // gán giá trị TRUE cho biến $foo. Để có thể chuyển một giá trị sang kiểu boolean, chúng ta có thể dùng (bool) hay (boolean). Tuy nhiên trong hầu hết các trường hợp bạn không cần phải sử dụng việc ép kiểu này, bởi giá trị sẽ được tự động chuyển nếu nó là một toán tử, hàm hay là cấu trúc điều khiển đòi hỏi một tham số kiểu boolean. Chú ý: -1 được xem là TRUE, giống như các giá trị khác 0 khác ( bất kể là số dương hay âm). 2.Integer: là một tập hợp bao gồm các số {...,-2,-1,0,1,2,...}. Cú pháp: Integer có thể được chỉ định trong cơ số 10, cơ số thập lục phân hay cơ số bát phân, tuỳ chọn đi trước bởi dấu - hay +. Nếu bạn sử dụng với cơ số bát phân, bạn phải theo thứ tự với 0 đứng trước, còn đối với số thập lục phân thì 0x. Ví dụ như sau: $a $a $a $a

= = = =

1234; # số thập phân -123; # số âm 0123; # số bát phân 0x1A; # số thập lục phân

Kích thước của kiểu dữ liệu này là 32bit, và PHP không hỗ trợ kiểu unsigned integer. Nếu bạn chỉ định một số vượt qua biên của kiểu dữ liệu integer, nó sẽ được xem như kiểu float. Tương tự như vậy, khi bạn thực hiện một phép toán mà kết quả trả về là một số vượt qua biên của kiểu integer, thì kiểu float sẽ được trả về. Tuy nhiên, có một lỗi trong PHP mà không phải bao giờ điều này cũng đúng, nó liên quan đến các số âm. Chẳng hạn, khi bạn thực hiện -50000* $million, kết quả sẽ là 429496728. Tuy nhiên, khi cả hai toán tử đều là số dương thì không có vấn đề gì xảy ra. Để chuyển một giá trị sang kiểu integer, ta có thể dùng toán tử ép kiểu (int) hay

(integer). Tuy nhiên, trong hầu hết các trường hợp bạn không cần phải dùng toán tử ép kiểu đó, bởi giá trị sẽ được tự động chuyển sang nếu toán tử, hàm hay cấu trúc điều khiển đòi hỏi một đối số integer. 3.Kiểu số thực (floats,doubles,hay real numbers) : có thể được chỉ định bằng cách sử dụng một trong các cú pháp sau: $a = 1.234; $a = 1.2e3; $a = 7E-10; Kích cỡ của kiểu float tùy thuộc vào platform, giá trị lớn nhất là xấp xỉ 1.8e308 4.String: là những chuỗi các kí tự.Trong PHP,một kí tự cũng tương tự như một byte,do đó có chính xác 256 kí tự khác nhau. Cú pháp: có thể khai báo bằng ba cách khác nhau như sau: •Dấu nháy đơn: cách dễ dàng nhất để chỉ định một chuỗi đơn giản là đóng nó trong một dấu nháy đơn.Ví dụ:echo 'le bao vy'; •Dấu nháy kép: nếu chuỗi được đóng trong dấu nháy kép("),PHP hiểu sẽ có thêm các chuỗi cho các kí tự đặc biệt ..... Ví dụ: \n;\t;\\;\$;… •Heredoc: các khác để phân định chuỗi là sử dụng cú pháp ("<<<"). Chỉ nên cung cấp một định danh sau <<<, sau đó là chuỗi và tiếp là cùng tên định danh để đóng dấu nháy. Định danh dùng để đóng phải bắt đầu bằng cột đầu tiên của dòng. Định danh được dùng phải có tên giống như trong các quy luật đặt tên biến trong PHP. 5.Mảng : là một danh sách các phần tử có cùng kiểu dữ liệu.Mảng có thể là mảng một chiều hay nhiều chiều. •Mảng một chiều có chỉ mục: là mảng được quản lý bằng cách sử dụng chỉ số dưới kiểu integer để biểu thị vị trí của giá trị yêu cầu.Cú pháp: $name[index1]; Ví dụ: một mảng một chiều có thể được tạo ra như sau: CODE $meat[0]="chicken"; $meat[1]="steak"; $meat[2]="turkey";

Nếu bạn thực thi dòng lệnh sau: print $meat[1]; thì trên trình duyệt sẽ hiển thị dòng sau: steak. Bạn cũng có thể sử dụng hàm array( ) của PHP để tạo ra một mảng.Ví dụ: CODE $meat=array("chicken","steak","turkey");

•Mảng một chiều kết hợp: rất thuận lợi khi dùng để ánh xạ một mảng sử dụng các từ hơn là sử dụng các integer, nó giúp ta giảm bớt thời gian và các mã yêu cầu để hiển thị một giá trị cụ thể. Ví dụ: bạn muốn ghi lại tất cả các thức ăn và các cặp rượu ngon. CODE $pairings["zinfandel"] = "Broiled Veal Chops"; $pairings["merlot"] = "Baked Ham"; $pairings["sauvignon"] = "Prime Rib";

Một cách khác là bạn có thể sử dụng hàm array( ) của PHP để tạo ra một mảng loại này, ví dụ như sau: CODE $pairings = array( zinfandel => "Broiled Veal Chops", merlot => "Baked Ham",sauvignon => "Prime Rib", sauternes => "Roasted Salmon";

•Mảng nhiều chiều có chỉ mục: chức năng của nó cũng giống như mảng một chiều có chỉ mục, ngoại trừ việc nó có thêm một mảng chỉ mục được dùng để chỉ định một phần tử. Cú pháp: $name[index1] [index2]..[indexN]; Một mảng hai chiều có chỉ mục được tạo ra như sau: $position = $chess_board[5][4];

•Mảng đa chiều kết hợp: khá hữu ích trong PHP. Giả sử bạn muốn ghi lại các cặp rượu-thức ăn, không chỉ loại rượu, mà cả nhà sản xuất. Bạn có thể thực hiện như sau: $pairings["Martinelli"] ["zinfandel"] = "Broiled Veal Chops"; $pairings["Beringer"] ["merlot"] = "Baked Ham"; $pairings["Jarvis"] ["sauvignon"] = "Prime Rib";

6.Object: bạn có thể xem object như là một biến mà minh hoạ một kiểu mẫu template được gọi là class. Khái niệm của đối tượng và lớp được sử dụng nhiều trong ngôn ngữ lập trình hướng đối tượng OOP. Không giống như các kiểu dữ liệu khác trong PHP, object phải được khai báo.Điều quan trọng là phải nhận ra rằng object không hơn gì một minh hoạ của một lớp, và hoạt động như là một khuôn mẫu cho việc tạo các object có các đặc tính và chức năng cụ thể. Cho nên, lớp(class) phải được định nghĩa trước khi khai báo một object. Để khởi tạo một đối tượng, bạn sử dung câu lệnh new để minh hoạ đối tượng với một biến.Ví dụ: do_foo(); ?> 7.Resource: là một biến đặc biệt, chứa một tham chiếu đến một resource bên ngoài. Các resource được tạo ra và sử dụng bởi các hàm đặc biệt. Giải phóng resources: bởi do tham chiếu đếm của hệ thống được giới thiệu trong PHP4 Zend-engine, nó sẽ tự động phát hiện khi một resource không cần thiết cho lâu dài. Khi ở trong trường hợp này, tất cả các resource mà đã được dùng cho resource này được giải phóng bởi "bộ phận thu nhặt rác". Do đó, hiếm khi thật sự cần thiết để giải phóng bộ nhớ thông thường bằng cách sử dụng hàm free_result(). 8.NULL: giá trị NULL đặc biệt dùng để thể hiện một biến không có giá trị. Một biến được xem là NULL nếu:

- Nó được gán giá trị hằng số NULL. - Nó chưa được khởi tạo giá trị nào. - Nó là hàm unset( ) Chú thích: unset () là một hàm dùng để hủy bỏ các biến chỉ định. Cú pháp: chỉ có một loại giá trị của kiểu NULL. Bạn có thể khai báo như ví dụ sau: $var=NULL;

Tự học PHP - Phần 2

( 1588 lượt xem )

Thời gian gởi : 18:47 09-05-2005 PHP l à mộ t ng ôn ngữ hiện đ ại và ph ổ biến nh ất của lậ p tr ình we b hiện nay . Đ ây l à bà i viết sơ khởi c ó lẽ của tá c giả Not hin g( Ma tr ix) , giú p bạ n hiểu nó l à gì và có v ài ý niệm cơ b ản c ũng như nắ m vững v ài mã ngu ồn ba n đầ u củ a nó - Ngườ i gửi: Hung1910

IV.Biến trong PHP: Biến trong PHP được thể hiện bởi dấu dollar $ và theo sau là tên của biến. Tên biến không phân biệt chữ hoa hay chữ thường. Tên biến phải bắt đầu bằng một chữ cái hay một dấu gạch nối_, theo sau là các chữ cái, chữ số hay là dấu gạch nối. Ví dụ: var = "Bob"; $Var = "Joe"; echo "$var, $Var";

Trong PHP3 thì các biến phải luôn luôn được gán giá trị. Còn trong PHP4 thì cung cấp thêm một cách khác để gán giá trị cho biến: gán theo tham chiếu. Điều này có nghĩa là một biến mới có thể tham chiếu đến một biến nguyên thuỷ. Sự thay đổi của biến mới sẽ tác động đến biến nguyên thuỷ và ngược lại. Nó cũng có nghĩa là không có sao chép, do đó việc kết gán sẽ diễn ra nhanh hơn. Để thực hiện gán bằng tham chiếu, chỉ cần thêm & ở đầu tên của biến được gán.Ví dụ sau sẽ in ra dòng 'My name is Bob' hai lần:

Phạm vi của biến: Các biến trong PHP có thể là một trong bốn loại phạm vi sau: - Biến cục bộ. - Tham số các hàm. - Biến toàn cục. - Biến static. 1)Biến cục bộ: Một biến được khai báo trong một hàm thì được xem như là một biến cục bộ và nó chỉ được tham chiếu trong hàm đó. Bất kể việc gán giá trị bên ngoài hàm đều xem như là biến hoàn toàn khác với biến trong hàm đó. Chú ý khi thoát khỏi hàm mà biến cục bộ được khai báo, thì biến và giá trị của nó sẽ bị huỷ bỏ. Biến cục bộ có thuận lợi bởi nó loại bỏ những khả năng của các tác động không dự đoán được làm thay đổi kết quả từ các biến có thể truy cập toàn cục.Ví dụ: $x = 4; function assignx () { $x = 0; print "\$x inside function is $x. "; } assignx(); print "\$x outside of function is $x. ";

Sau khi thực hiện sẽ có các kết quả như sau: $x inside function is 0. $x outside of function is 4. 2)Tham số của hàm: cũng giống như nhiều ngôn ngữ lập trình khác, trong PHP hàm có chứa tham số phải khai báo các tham số trong phần đầu của hàm. Mặc dầu, những tham số này nhận các giá trị đến từ bên ngoài hàm, nhưng chúng sẽ chỉ có thể truy cập một khi hàm tồn tại. Các tham số của hàm được khai báo sau tên hàm và bên trong dấu {. Ví dụ: function x10 ($value) { $value = $value * 10; return $value;}

Điều quan trọng cần phải chú ý là mặc dầu bạn có thể truy cập và thao tác với các tham số trong hàm mà nó được khai báo, nhưng nó sẽ bị huỷ bỏ khi hàm kết thúc thực hiện. 3)Biến toàn cục: ngược lại với biến cục bộ, biến toàn cục có thể được truy cập từ bất cứ phần nào trong chương trình .Tuy nhiên, để có thể chỉnh sửa, biến toàn cục phải được khai báo toàn cục trong hàm mà nó được chỉnh sửa. Để khai báo một biến là toàn cục ta đặt từ khoá GLOBAL ở phía trước.Ví dụ: $somevar = 15; function addit() { GLOBAL $somevar; $somevar++; print "Somevar is $somevar"; } addit();

Kết quả của $somevar là 16. Tuy nhiên, nếu bạn bỏ dòng lệnh GLOBAL $somevar; thì biến $somevar sẽ chỉ có giá trị là 1, bởi biến $somevar được xem như là biến cục bộ trong hàm addit( ). Một cách khác để khai báo một biến là toàn cục là sử dụng mảng $GLOBALS của PHP. Ví du, khai báo biến $somevar là toàn cục bằng cách sử dụng mảng này: $somevar = 15; function addit() { $GLOBALS["somevar"]; $somevar++; } addit(); print "Somevar is $somevar"; 4)Biến static: tương phản với các biến được khai báo trong các tham số của hàm sẽ bị huỷ bỏ khi thoát khỏi hàm, biến static sẽ không mất giá trị của nó khi thoát khỏi hàm và sẽ giữ nguyên giá trị đó khi hàm được gọi lại lần nữa. Bạn có thể khai báo một biến là static bằng cách dùng từ khoá STATIC đặt trước tên biến. Ví dụ: function keep_track() { STATIC $count = 0; $count++;

print $count; print " "; } keep_track(); keep_track(); keep_track(); Kết quả là : 1 2 3 Truy cập biến từ trình duyệt: Khi dùng PHP, cũng như các phần mềm trung gian khác, thông tin được cung cấp tuỳ chọn dựa vào tham chiếu người dùng. Dĩ nhiên thông tin sẽ đến thông qua “form”. Thông tin cũng có thể đến từ những nơi khác, như “cookie” hay “sessions”. a.Biến form: Một trong những cách phổ biến là chuyển biến thông qua “form”. Mỗi thành phần trong form của chúng ta sẽ được gán tên và thuộc tính giá trị. Khi form được “submit” thì name=value sẽ được chuyển đến PHP. Chúng ta có thể chuyển đến PHP bởi phương pháp GET hoặc POST, tùy thuộc chúng ta chọn gì trong thuộc tính hành động của “form”. Một khi form được “submit”, những thành phần của form sẽ tự động trở thành những biến toàn cục trong PHP. b.Sessions: PHP cũng giống như ASP và ColdFusion đều hỗ trợ sessions. Vậy sessions là gì? Về cơ bản nó là một cách khác để duy trì trạng thái giữa các trang Web. Chúng ta bắt đầu một sessions bởi hàm start_session(). Khi đó PHP sẽ đăng ký một session ID duy nhất và gửi session ID đó về cho người dùng thông qua cookie. PHP sẽ tạo những tệp đáp trả trên server để có thể lưu giữ dấu vết của bất kỳ biến nào. Những tệp này có cùng tên với session ID. Một khi session được tạo chúng ta có thể đăng ký bất kỳ biến số nào. Giá trị của nó sẽ được giữ trên một tệp ở máy chủ. Và như vậy trong thời gian sống của session những biến này sẽ được thực hiện bởi bất cứ trang nào trong cùng một tên miền mà không cần truy cập đến chúng. Tuy nhiên có một số người dùng không cho phép cookie, khi đó PHP giữ dấu vết các session ID qua các querystring. Chúng ta có thể làm điều này bằng tay bằng cách cho sessiong ID phụ thuộc queryString, hoặc thay đổi tuỳ chọn cấu hình. Để

thêm session Id đến querystring, ta dùng . Nó sẽ tự động in ra một chuỗi như sau: PHPSESSID=07e935k3kkjr0986s9d89fr9trg8rgrg20 ”>Click my Page Đoạn mã sau sẽ đăng ký một session ID và gán cho nó giá trị là: hello world

c.Cookies: Cookies là một mẩu thông tin nhỏ được lưu trữ trên máy tính người dùng. Một cookies chứa một đoạn văn bản nhỏ có thể đọc bởi máy chủ Web. Cookies cung cấp cách để có thể giữ dấu vết người sử dụng thông qua một số dịch vụ. Chúng ta phải nhớ rằng Web là môi trường trạng thái. Máy chủ Web sẽ không biết ai yêu cầu thông tin, cookies sẽ giúp chúng ta giữ thông tin người dùng khi họ di chuyển quanh site. Khi họ tồn tại , cookies trở thành một phần của yêu cầu HTTP gửi đến cho máy chủ Web. Những trước hết chúng ta cần thiết lập một cookies. Những người phát triển sẽ làm điều này, giống như mọi thứ khác trong PHP, chúng rất đơn giản. Dùng hàm setcookie() với những tham số theo sau: setcookie(name, value, time_to_expire, path, domain, security setting); Vi dụ: setcookie(“mycookie”, “my_id”, time()+ (60*60*24*30),”/”,”.mydomain.com”,0) Cookie này thiết lập những tham số như sau: - Lưu trữ tên biến có tên là mycookie. - Giá trị của biến là my_id. - cookie có giá trị 30 ngày kể từ ngày thiết lập. - cookie có hiệu lực trong mọi trang của domain. - Nó có hiệu lực trong mọi chỗ của tền miền mydomain.com

- Không có thiết lập an toàn đặc biệt V.Hằng số (Constant): Hằng là một giá trị không thể chỉnh sửa được thông qua việc thực hiện chương trình. Bạn có thể định nghĩa một hằng bằng cách dùng hàm define( ). Một khi hằng được định nghĩa, nó không bao giờ bị thay đổi. Chỉ có các kiểu dữ liệu boolean, integer, float, string mới có thể chứa các hằng. Bạn có thể nhận giá trị của một hằng bằng cách đơn giản chỉ định tên của nó. Không giống như với biến, bạn không cần khai báo $ trước một hằng. Bạn cũng có thể dùng hàm constant(), để đọc giá trị của hằng. Sử dụng hàm get_defined_constants( ) để nhận một danh sách tất cả các hàm đã được định nghĩa. Các hằng được định nghĩa trước: PHP cung cấp một lượng lớn các hằng đã được định nghĩa trước để bất kỳ script nào cũng có thể chạy được. VI. Toán tử: Toán tử là một ký hiệu chỉ định một hoạt động trong biểu thức.Các toán tử có trong PHP như sau: Toán tử Mục đích ( ) Thực hiện theo yêu cầu có thứ tự. New Minh hoạ một object mới. ! ~ Phép Not trong Boolean, Not trong Bitwise. ++ -- Tự động tăng, tự động giảm @ Che dấu lỗi. / * % Chia, nhân, chia lấy dư. + - . Cộng, trừ, nối. << >> Dịch sang trái, dịch sang phải trong Bitwise. < <= > >= So sánh nhỏ hơn, nhỏ hơn hay bằng, lớn hơn, lớn hơn hay bằng. == != === <> So sánh bằng, không bằng, giống nhau, khác nhau. & ^ | Phép AND, OR, XOR trong Bitwise. &&

Tự học PHP - Phần 3

( 1094 lượt xem )

Thời gian gởi : 20:13 12-05-2005 PHP là m ột ngôn ngữ hiện đại và phổ bi ến n hất của lập trình web hiện na y. Đâ y là bài viết s ơ k hởi có lẽ của tác giả Nothing( Matri x), giúp bạn hiểu nó là gì v à có vài ý niệm c ơ bản cũng nh ư nắ m v ững vài mã nguồn ban đầu của nó - Ngư ời gửi : Hung 19 10 Cấu trúc điều khiển

Trong ngôn ngữ PHP có hai loại hình cơ bản để điều khiển cấu trúc : • Ngôn ngữ điều kiện • Điều khiển theo một vòng khép kín Trong bài này bạn sẽ thấy một bài ví dụ về điều khiển cấu trúc .Bây giờ chúng ta sẽ học kĩ hơn. + Ngôn ngữ điều kiện: Ngôn ngữ điều kiện có thể giúp bạn chia nhỏ các phần khác nhau trong một ngôn ngữ ;ập trình phụ thuộc vào đó là một hay nhiểu điều kiện ,xác định đúng hay sai .Nói một cách đơn giản nó cho phép bạn thử nghiệm và điều hành những thao tác khác nhau dựa vào kết quả -Câu lệnh Nếu ( If statement) Xem ví dụ sau :

Ví dụ này biểu thị một cách đơn giản nhất của một câu lệnh.Các câu lệnh luôn bắt đầu bằng chữ "If" theo sau là các điều kiện được đặt trong ngoặc đơn.Nếu câu lệnh điều kiện được công nhân là đúng thì sau đó các câu lệnh kèm theo điều kiện sẽ được chấp nhận .Trong trường hợp này nếu điều kiện là sai thì không thể thực hiện được gì và bạn sẽ thấy một cửa sổ Browser trống rỗng khi chạy chương trình ngôn ngữ lập trình. Nếu có hơn một câu lệnh được thực hiện trong cách điều khiển cấu trúc thì phải cho chúng vào trong ngoặc {

Nên nhớ rằng vị trí của các yếu tố không ảnh hưởng tới việc thực hiện của ngôn ngữ lập trình. Các ví dụ được sắp xếp dưới đây rất hoàn thiện không chỉ trong các câu lệnh mà cong ở tất cả hình thức điều khiển theo một chu kì kín if ($x == 1) print '$x is equal to 1'; if ($x == 1) print '$x is equal to 1'; if ($x == 1) { print '$x is equal to 1'; } if ($x == 1) { print '$x is equal to 1'; } Với sự rõ ràng này các nhà lập trình lựa chọn việc sử dụng cách viết lùi vào và ngoặc " { } " thậm chí cả một dòng mã .Tuy nhiên người ta vẫn thường ưa dùng mã số riêng. Bạn cũng có thể để tất cả điều kiện trong ngoặc đơn ,để thực hiện tất cả các điều kiện thì đòi hỏi tất cả các điều kiện phải đúng.

Các câu lệnh khác ( Else Statement) Như tên của nó bạn có thể thực hiện thêm một số chức năng khác nếu điều kiện bên trong 1 (If Statement) được xác định là sai:

+ Câu lệnh Else if Statement Đến nay chúng ta vẫn có thể thực hiện một lệnh mà điều kiện không đúng.Nhưng còn nhiều điều kiện thì sao? Bạn có thể sử dụng một loạt câu lệnh If Statement để thử nghiệm tính khả thi của mỗi điều kiện, nhưng trong một số trường hợp thì lựa chọn đó không thích hợp vậy bạn phải dùng tới Else if Statement Sự kết hợp giữa If ,Else Statement và Else if Statement được thực hiện liên tiếp nếu điều kiện trong If Statemnet là sai .Khi điều kiện trong một Else if Statement được xác định là đúng thì các lện sẽ được thực hiện.Ngôn ngữ lập trình sẽ ngừng thực hiện toàn bộ If | Else if| Else Statement .Phần còn lại của ngôn ngữ lập trình sẽ tiếp tục thực hiện . Xem ví dụ sau :

Phần cuối còn lại của câu lệnh sẽ bị loại bỏ nếu bạn không muốn thực hiện vì If hoặc Else If là đúng

Trong trường hợp này ko có điều kiện của If hoặc Else if statement là đúng và Else statement không được cung cấp dẫn tới không có kết quả của Browser . +Sự thay đổi : Trong những tình huống này sự thay đổi là lựa chọn tốt nhất đối với If | Else if| Else Statement để kiểm tra có nhiều giá trị chống lại 1 đièu kiên thay đổi hay không.Đây là dạng câu lệnh cơ bản

Sau khi chạy từng phần mã hầu hết sẽ nên có nghĩa đối với bạn .Ở dòng đầu tiên của câu lện chúng ta thấy có sự thay đổi đòng nhất hơn được thực hiện trong ngoặc đơn. Mỗi trường hợp có thể có những giá trị thay đổi được. Những thay đổi được thực hiện từng phần nhỏ trên If/Else if/Else statements.Mỗi trường hợp giá trị phải khớp với giá trị thay đổi,mỗi câu lệnh được thực hiện gồm các trường hợp khác Để tránh trường hợp này xảy ra người ta sử dụng 1 câu lệnh khác " Break;" .Kết thúc việc thực hiện thay đổi câu lệnh và để cho ngôn ngữ lập trình tiwps tục thực hiện, nó cũng thực hiện một vòng khép kín . Bạn cũng có thể tùy ý sử dụng trường hợp đặc biệt gọi là " default" ( thao tác cài đặt trước) .Trường hợp này thao tác giống như Else Statement ,và thực hiện nếu các trường hợp khách là sai . TRường hợp này có thể là trường hợp cuối cùng bạn biết:
print '$var is equal to yes'; break; case "no": print '$var is equal to no'; break; default: print 'none of the other two cases were true, so this sentance will be printed out instead.'; } ?>

Giông như Break Statement là Exit Statement. Lối ra thường được sử dụng trong các tình huống mà bạn chạy chương trình gặp lỗi nặng( fatal error) (Ví dụ như user đăng nhập sai pass) hoặc bất kì lúc nào bạn cần kết thúc thực hiện ngôn ngữ lập trình trược khi nó tự động chấm dứt :

Không giống như break, exit có thể được sử dụng ở bất cứ đâu trong ngôn ngữ lập trình của bạn,trong và ngoài điều khiển cấu trúc. + Ba bước của một cơ chế vận hành Mặc dù theo thuật ngữ kĩ thuật một cơ chế vận hành không phải là một cấu trúc

điều khiển gồm ba phần ,biểu hiện bằng dấu " ? " có thể sử dụng với If/Else Statements .Nó cũng có thể được sử dụng trong những trường hợp mà bạn muốn thực hiện đọc lậpphụ thuộc vào điều kiện nào đúng hay sai

Điều kiện phải được đăt trong ngoặc đơn đầu tiên .Nếu thực hiện được thì phần lệnh trong ngoặc đơn thứ hai cũng sẽ thự hiện.Nếu không phàn lệnh trong ngoặc đơn thứ 3 sẽ thự hiện (condition) ? (executes if the condition is true) : (executes if the condition is false); Bãn sẽ thấy sự hữu ích của nó như thế nào trong phần tiếp theo. Control Loops ( Điều khiển theo chu kì) Trong PHP thường có những trường hợp cá biệt mà bạn cần thực hiện lại nhiệm vụ ,như nhận sữ liệu từ các cơ sở dữ liệu ,gửi e-mail vào danh sách mail hoặc xem lại nội dung của bài viết .Điều khiển theo chu kì sẽ cho phép bạn thực hiện những nhiệm vụ này một cách hiệu quả . While Loops (Chu kì thời gian) Đây là những hình thức dơn giản nhất của chu kì "; $x++; } ?>

Khi bạn chạy chương trình này bạn sẽ thấy các số từ 1 đến 10 hiện trên màn hình của bạn.Hãy xem mã . Trong nhiều trường hợp nó rất giống với If statement .Trước hết đó là thời gian đồng nhất kèm theo điều kiện trong ngoặ đơn.

Các lệnh trong một chu kì sẽ được thực hiện miễn là điều kiện trong ngoặc đơn được xác định là đúng .Khi điều kiện có giá trị được kiểm tra trước khi chu kì đó được thực hiện ,nếu điều kiện sai thì các lệnh trong chu kì đó không thể thực hiện được. Do...While Loops ( Thực hiện chu kì thời gian) Do...While Loops có quan hệ với While Loops: "; $x++; } while ($x <=10);?>

Điểm khác nhau cơ bản là cách thực hiện ,giá tẹi của điều kiện trong Do...While Loop được thử nghiệm sau khi lịch trình hoạt động.Điều này có nghĩa trong các ví dụ trên $x đã cho ra kết quả một lần ,sau đó khi việc thực hiện chu kì kết thúc thì $x lớn hơn 10 For Loops ( Đối với cho kì )

"; } ?>

Trên đây là một ví dụ của một chu kì .For Loops rất giống với While Loops nhưng sử dụng thuận tiện hơn trong nhiều trường hợp .Chúng cũng là những chu kì phức tạp nhất trong PHP .,vay mựơn phần cú pháp và chức năng từ chương trình C . Đây là cấu chúc điều khiển cuối cùng mà bài này giới thiệu tới các bạn Nếu như bạn đoán được đoạn trích ở trên cho ra một một kết quả như ví dụ 1 của while loop ,có thể bạn đã đúng .Hãy xem xét tại sao nó lai vận hành như thế .Trong dấu ngoặc đơn For Loops thực hiện 3 điều kiện ngăn cách bởi dấu " ; "

.Điều kiện thứ nhất chỉ được thực hiện 1 lần khi chu kì bắt đầu .Trong trường hợp này $x có giá trị bằng 0 Điều kiện tiếp theo là điều kiện được kiểm tra mỗi lần khi chu kì hoạt động .Mỗi lần điêềukiện sai chu kì sẽ ngừng thực hiện. Cũng giống như While Loops ,nếu trong lần vận hành đầu tiên mà điều kiện sai thì không có lệnh nào trong chu kì được thực hiện. Điều kiện cuối cùng sẽ được thực hiện khi chu kì hoạt động sau khicác lệnh được thực hiện .Nên nhớ là không có dấu " ; " sau điều kiẹn cuối cùng ( Bạn thấy nó có giống Pascal không nào ) Như bạn đã biết ,For Loops thực hiện nhưng chức năng tương tự như While Loops nhưng hiệu quả hơn .Nói cách khác đó là cách tốt nhất để sử dụng For Loops ,những trương hợp mà bạn biết yếu tố nào là quan trọng để ban thực hiện.

Tự học PHP - Phần 4

( 1232 lượt xem )

Thời gian gởi : 20:29 12-05-2005 PHP là m ột ngôn ngữ hiện đại và phổ bi ến n hất của lập trình web hiện na y. Đâ y là bài viết s ơ k hởi có lẽ của tác giả Nothing( Matri x), giúp bạn hiểu nó là gì v à có vài ý niệm c ơ bản cũng nh ư nắ m v ững vài mã nguồn ban đầu của nó - Ngư ời gửi : Hung 19 10 Hàm: Đây là một trong những thuận lợi nhất trong phát triển ứng dụng. Các hàm cho phép bạn phát triển việc sử dụng lại và dễ dàng chỉnh sửa các thành phần mà thật sự hữu ích khi bạn phát triển các ứng dụng Web tương tự như trong quan niệm và tiện ích. Các kết quả của hàm rất ngắn gọn, dễ hiểu và dễ đọc. Vậy hàm là gì? Hàm là một đoạn các mã lệnh với một mục đích cụ thể và phải được gán một tên duy nhất. Tên hàm có thể được gọi tại bất kỳ đâu trong chương trình, cho phép các đoạn mã thể hiện bởi tên của nó được thực hiện lặp lại khi cần thiết. Đây là một thuận lợi bởi cùng một đoạn mã lệnh chỉ được viết một lần nhưng có thể được chỉnh sửa dễ dàng khi cần thiết. Tạo một hàm PHP là một quá trình đơn giản. Bạn có thể tạo một hàm tại bất kỳ nơi nào trong chương trình PHP. Tuy nhiên, cho mục đích tổ chức bạn có thể thấy rằng sự thuận lợi khi đặt tất cả các hàm được dự định sẽ sử dụng trong script tại đầu mỗi file script. Một phương thức khác cho việc tổ chức hàm mà có thể giảm đi sự dư thừa đáng kể và tăng việc sử dụng lại là đặt các hàm trong những file riêng rẽ( được xem như là một thư viện). Điều này là thuận lợi bởi bạn có thể dùng các hàm lặp đi lặp lại trong những ứng dụng khác nhau mà không tạo ra các việc copy dư thừa và do đó giảm bớt các nguy cơ gây lỗi do việc viết lại. Một hàm thường bao gồm ba phần phân biệt: •Tên của hàm. •Cặp dấu ngoặc ( ) chứa các tham số tuỳ chọn nhập vào. •Phần thân của hàm,nằm trong cặp dấu { }.

Ví dụ khai báo một hàm sau: function display_copyright($site_name) { print "Copyright © 2000 $site_name. All Rights Reserved."; } Các hàm lồng nhau: Các hàm có thể lồng nhau. Điều này thật sự hữu ích cho các chương trình lớn và nhỏ, khi nó thêm vào một mức độ modul hoá khác vào trong ứng dụng, kết quả sẽ tăng lên đáng kể trong việc quản lý mã. Quay lại với ví dụ display_copyright ở trên, bạn có thể giới hạn nhu cầu chỉnh sửa ngày tháng cùng với việc dùng một hàm lồng định nghĩa trước của PHP trong hàm display_copyright(): function display_copyright($site_name) { print "Copyright ©". date("Y"). " $site_name. All Rights Reserved."; } Bạn cũng có thể lồng các khai báo hàm trong một hàm khác. Tuy nhiên, việc lồng một khai báo hàm không ngụ ý rằng nó sẽ được bảo vệ trong phạm vi giới hạn mà nó được khai báo. Hơn thế nữa, một hàm được lồng vào không thừa kế các tham số nhập vào của "cha mẹ" nó, các tham số phải được chuyển sang hàm được lồng chỉ khi chúng được chuyển sang hàm khác. Tuy nhiên, việc lồng các khai báo hàm là thật sự hữu ích cho các lý do quản lý mã và đảm bảo sự rõ ràng của tổ chức mã. Ví dụ: function display_footer($site_name) { function display_copyright($site_name) { print "Copyright © ". date("Y"). " $site_name. All Rights Reserved."; } print "
home | recipes | events
tutorials | about | contact us
"; display_copyright($site_name); print "
"; } $site_name = "PHP Recipes"; display_footer($site_name);

Sau khi thực hiện,đoạn script trên sẽ cho kết quả như sau:

home | recipes | events tutorials | about | contact us Các hàm lồng nhau trong PHP không được bảo vệ bởi việc được gọi từ bất kỳ đoạn script nào trong chương trình, nhưng chúng không thể được gọi lại cho đến sau khi các hàm cha mẹ được gọi. Việc gọi thử một hàm lồng trước khi gọi hàm cha mẹ của nó sẽ sinh ra một thông báo lỗi. Các giá trị trả về từ một hàm: Việc trả về một giá trị từ hàm là rất hữu ích, nó được thực hiện bằng cách gán giá trị gọi hàm cho một biến. Bất kỳ kiểu dữ liệu nào cũng được trả về từ một hàm bao gồm cả kiểu mảng và danh sách. Ví dụ: xây dựng một hàm tính thuế bán hàng $price = 24.99; $tax = .06; function calculate_cost($tax, $price) { $sales_tax = $tax; return $price + ($price * $sales_tax); } // chú ý cách calculate_cost() trả lại một giá trị $total_cost = calculate_cost ($tax, $price); // làm tròn biến $total_cost có 2 dấu chấm thập phân. $total_cost = round($total_cost, 2); print "Total cost: ".$total_cost; // $total_cost = 26.49 Hàm đệ quy: Hoạt động của một hàm gọi lại bản thân chính nó nhiều lần để thoả mãn một vài phép toán thật sự là một sức mạnh. Nếu được sử dụng một cách đúng đắn, các việc gọi hàm đệ quy có thể tiết kiệm được khoảng trống không đáng và dư thừa trong một script và đặc biệt hữu ích cho việc thực hiện các thủ tục lặp đi lặp lại. Ví dụ sử dụng một hàm lặp đệ quy để tính một tập hợp các số integer. function summation ($count) { if ($count != 0) : return $count + summation($count− 1);

endif; } $sum = summation(10); print "Summation = $sum"; Kết quả của đoạn mã trên sẽ là Summation=55 Sử dụng hàm đệ quy có thể cải thiện tốc độ trong một chương trình nếu hàm được gọi đủ thường xuyên.Tuy nhiên,phải cẩn thận khi viết các thủ tục đệ quy ,nếu mã không đúng sẽ dẫn đến việc lặp không dừng được. Các hàm có thể thay đổi: Khả năng thú vị của PHP là có thể thực hiện các hàm có thể biến đổi được. Một hàm có khả năng thay đổi là một lời gọi "động" đến hàm mà tên của nó được xác định tại thời điểm thực thi. Mặc dầu không thật sự cần thiết trong hầu hết các ứng dụng Web, nhưng các hàm có thể thay đổi có thể giảm kích thước mã và độ phức tạp một cách đáng kể, thông thường loại bỏ các câu lệnh điều kiện if không cần thiết. Ta có thể gọi hàm có thể thay đổi được bằng cách gọi tên một biến theo sau là tập các dấu ngoặc đơn( ). Trong dấu ngoặc đơn đó là tập các tham số tuỳ chọn nhập vào. Hình thức thông thường của một hàm có thể thay đổi như sau: $function_name(); Ví dụ :sử dụng hàm có thể thay đổi để xác định các biến nhập vào. //thông điệp chào tiếng Italia function italian() { print "Benvenuti al PHP Recipes."; } // thông điệp chào tiếng Anh function english() { print "Welcome to PHP Recipes."; } // gán ngôn ngữ dùng là tiếng Italia $language = "italian"; //thực thi hàm có thể thay đổi được. $language(); Xây dựng các thư viện hàm: Các thư viện hàm là một trong những cách hữu ích để tiết kiệm thời gian khi xây dựng các ứng dụng. Ví dụ, bạn có thể viết một loạt các hàm cho việc sắp xếp các mảng. Bạn có thể sử dụng lại các hàm này trong các ứng dụng khác nhau. Hơn là việc thường xuyên viết lại hay copy và dán các hàm này vào các script mới, nó thật sự tiện lợi khi đặt tất cả các hàm liên quan đến việc sắp xếp trong cùng một file phân biệt. File này sẽ chứa các tiêu đề dễ dàng nhận ra,chẳng hạn như array_sorting.inc. Ví dụ như sau:

Hàm thư viện array_sorting.inc này sẽ hoạt động như là một chỗ chứa cho tất cả các hàm sắp xếp mảng. Điều này thật sự hữu ích bởi bạn có thể tổ chức các hàm một cách hiệu quả theo mục đích cho phép dễ dàng tìm kiếm khi cần thiết. Một khi bạn xây dựng cho chính mình một thư viện hàm, bạn có thể sử dụng các câu lệnh include() và require() của PHP để chứa toàn bộ các file thư viện vào trong một script do đó làm cho tất cả các hàm đều có sẵn. Cú pháp chung của hai câu lệnh này như sau: include(path/filename); require(path/filename); hay cũng có thể như sau: include "path/filename"; require "path/filename"; "path":đường dẫn tuyệt đối hay tương đối của filename. Giả sử bạn muốn dùng thư viện array_sorting.inc trong một script.Bạn có thể dễ dàng thực hiện như sau: include ("array_sorting.inc"); Bây giờ thì bạn có thể dễ dàng sử dụng bất kỳ hàm nào trong array_sorting.inc $some_array = (50, 42, 35, 46); //sử dụng phương pháp sắp xếp bubble_sort( ) $sorted_array = bubble_sort($some_array, 1);

IX.Classes và Objects

1.Class: là một tập hợp các biến và các hàm cùng làm việc với các biến này. Một class được định nghĩa theo cú pháp sau: items[$artnr] += $num; } function remove_item ($artnr, $num) { if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true; } else { return false; } } } ?> Ví dụ trên định nghĩa một class có tên là Cart, chứa các mảng kết hợp của các article trong một cart và hai hàm dùng để thêm và bỏ các thứ ra khỏi cart này. Chú ý: trong PHP 4, chỉ có các hằng được khởi tạo cho các biến var mới được cho phép Để khởi tạo các biến với các giá trị không phải là hằng số, bạn cần có một hàm khởi tạo được gọi một cách tự động khi object được dựng từ lớp. Chẳng hạn như hàm được gọi trong một hàm dựng như sau:


{ var $todays_date; var $name; var $owner; var $items; function Cart() { $this->todays_date = date("Y-m-d"); $this->name = $GLOBALS['firstname']; /* etc. . . */ } } ?> 2.extends: thường thì bạn cần các lớp với các biến và các hàm tương tự cho một lớp tồn tại khác. Thực tế, rất tốt khi bạn định nghĩa một lớp chung mà được sử dụng trong các đồ án của bạn và chỉnh sửa lớp này cho thích nghi với nhu cầu của mỗi đồ án. Để thực hiện điều này, các class có thể được mở rộng từ các class khác.Việc mở rộng hay dẫn xuất một lớp có tất cả các biến và các hàm của lớp cha ( điều này được xem là thừa kế) và những gì bạn thêm vào trong định nghĩa mở rộng. Không giống như các ngôn ngữ lập trình hướng đối tượng khác, PHP không hỗ trợ đa thừa kế, cho nên một lớp mở rộng chỉ luôn luôn phụ thuộc vào một lớp cha riêng rẻ của nó. Các lớp được mở rộng sẽ sử dụng từ khoá extends. Ví dụ: class Named_Cart extends Cart{ var $owner; function set_owner ($name){ $this->owner = $name; } } Ví dụ trên định nghĩa một lớp Named_Cart mà có tất cả các biến và các hàm của lớp Cart thêm và cộng thêm các biến $owener và hàm set_owner(). 3.Hàm dựng: là những hàm trong một lớp mà được tự động gọi khi bạn tạo ra một minh hoạ mới của một lớp với từ khoá new. Trong PHP4, một lớp được xem là hàm dựng khi nó có cùng tên với tên lớp mà nó được định nghĩa trong đó.Ví dụ:

class Auto_Cart extends Cart { function Auto_Cart() { $this->add_item ("10", 1); } } Ví dụ trên định nghĩa một lớp Auto_Cart mà một Cart có một hàm dựng khởi tạo mỗi khi một Auto_Cart mới được gọi bằng từ khoá new. Các hàm dựng có thể có các đối số và các đối số này có thể là tuỳ chọn. Để sử dụng lớp mà không có tham số, tất cả các tham số đến hàm dựng nên là tuỳ chọn bằng cách cung cấp các giá trị mặc định. Ví dụ như sau: class Constructor_Cart extends Car{ function Constructor_Cart($item = "10", $num = 1){ $this->add_item ($item, $num); } } // Shop the same old boring stuff. $default_cart = new Constructor_Cart; // Shop for real... $different_cart = new Constructor_Cart("20", 17); Chú ý: trong PHP4 khi một lớp không có hàm dựng thì hàm dựng của lớp cha sẽ được gọi nếu nó tồn tại.Ví dụ: class A { function A(){ echo "I am the constructor of A.
\n"; } function B() { echo "I am a regular function named B in class A.
\n"; echo "I am not a constructor in A.
\n"; } } class B extends A{ function C() { echo "I am a regular function.
\n";

} } // gọi B() như là một hàm dựng $b = new B;

Tự làm bộ đếm bằng PHP

( 934 lượt xem )

Thời gian gởi : 22:54 05-05-2005 Khi nói đến bộ đ ếm bạn thường nghĩ nga y đến các dịch vụ miễn phí nh ư của br avenet, v.v.. tuy nhiên đ ể websit e của bạn thêm tính chuyên nghi ệp tại sao bạn không th ử làm m ột bộ đếm bằng php nhỉ , sau đâ y tôi xin giới thi ệu v ới các bạn bài viết của bạn Nguyễn Anh Tuấn - Người gửi: hung1 91 0

Chíp 1: Bạn hãy mở trang web của mình ra (ví dụ mở bằng FrontPage), tìm đến vị trí mà bạn muốn để bộ đếm. Sau đó nhấp chuột qua phần HTML, đừng thay đổi vị trí con trỏ, bạn “bê cái đống bên dưới" bỏ vào đó (coi chừng gõ sai nha!): Example of how your free counter will look: (differentstylesavailable here) Sponsored Lin Sau đó lưu tập tin này lại, và đổi thành *.php thay vì *.htm như lúc đầu. Chíp 2: Bây giờ hãy mở NotePad ra he. Gõ vào đó một số nào đó (tốt nhất là số 0), đây sẽ là giá trị cho bộ đếm của bạn khi khởi tạo. Nhớ là đừng có khoảng trắng hay dấu enter nào à nghen, rồi tiếp tục lưu tập tin này lại với tên "counter.log". Chíp 3: Giờ tạm xong rồi đó, bây giờ tải (upload) lên mạng. Sau khi upload xong, bạn phải dùng chức năng "chmod" (tương đương với lệnh gán thuộc tính trong Windows) để thay đổi thuộc tính tập tin counter.log thành 777 (nghĩa là cho đọc tập tin và ghi lại lên tập tin đó). Vậy là xong, nếu chờ người ta vào để thử thì hơi lâu đó, bạn hãy truy cập vào trang web của mình đi, mỗi lần bạn Refresh thì bộ đếm sẽ tăng lên l. Có thể giải thích như sau: tập tin counter.log dùng để lưu giá trị biến đếm, khi trang php chạy, nó số lấy giá trị này ra tăng lên 1 đơn vị, sau đó ghi đè lên tập tin counter.log, đồng thời in số đó ra màn hình với câu lệnh “echo''. Thật đơn giản! Vậy là từ nay bạn sẽ biết có bao nhiêu người ghé thăm "nhà" bạn rồi nhá! Lưu ý: Đoạn mã trên chỉ chạy trên server nào có hỗ trợ PHP thôi à nghen!

Session và cách dùng

( 731 lượt xem )

Thời gian gởi : 09:53 22-06-2005 Thông thư ờng k hi duyệt we b, nói thẳng h ơn là k hi bạn tham gia forum, để thông tin của bạn đ ược giữ từ lúc đăng n hập cho đến lú c bạn thoát ra thì tất nhiên chúng ta sẽ s ử dụng đến se ssion, và bạn sẽ hiểu nó là gì nga y sau khi đọc x ong bài viết này . Thông thường khi duyệt web, nói thẳng hơn là khi bạn tham gia forum, để thông tin của bạn được giữ từ lúc đăng nhập cho đến lúc bạn thoát ra thì tất nhiên chúng ta sẽ sử dụng đến session, và bạn sẽ hiểu nó là gì ngay sau khi đọc xong bài viết này.

Ses sion Session được hiểu là phiên làm việc, và session name là tên của phiên làm việc. Để mở đầu việc ghi thông tin vào session name bạn cần dùng: session_start(); Ghi thông tin vào session name: $_SESSION["SESSION NAME"] = VALUE; Ex: $_SESSION["member"] = "lyhuuloi"; Xóa session: $_SESSION["member"] = 0; PS: Để update thông tin vào session bạn làm tương tự như khi ghi thông tin.

Học cookie qua ví dụ

( 638 lượt xem )

Thời gian gởi : 09:49 22-06-2005 Bài viết sẽ trình bài

viết tạo , lấy và xóa cookies.

Có tất cả 3 khâu chính trong việc xử lý cookie ngữ khác.

ở PHP và các ngôn

Bài viết sẽ trình bài viết tạo, lấy và xóa cookies. Có tất cả 3 khâu chính trong việc xử lý cookie ở PHP và các ngôn ngữ khác. Nó bao gồm: • • •

Tạo cookies. Lấy thông tin của cookies. Xóa cookies.

Bạn tạo file cookie .php có code như sau: (Code hoàn chỉnh trong việc tạo và lấy thông tin của 1 cookie bất kỳ) I. Tạo cooki e: Bạn tạo file log in.php có code như sau:
?> Sau khi tạo file lo gin. php , bạn chạy file này để tạo cookie. II. Lấy thông tin cooki e: Như trong ví dụ trên, ta sẽ trực tiếp lấy thông tin của 2 cookies là: member_name và member_pwd. Bạn tạo file inde x.php có code như sau: III. Xóa cook ie: Để xóa cookie ta cũng làm như tạo cookie. Để xóa cookie ta chỉ cần thiết lập giá trị là 0 (Số không) cho các cookies cần xóa. Bạn tạo file de l_cookie .php có code như sau: Trở về."; ?>

PHP và Mysql phần 1

( 885 lượt xem )

Thời gian gởi : 12:46 21-05-2005 Để kết nối đến CSDL My sq l . ta dùng các hàm n hư m ysql_connect mysql_pconne ct hoặc dùng nh ững hàm trong Impro ved MySQL Extension ( cho m ysl 4 .1 trở lên )

,

========= MYSQL phần 01 ========= Để kết nối đến CSDL Mysql . ta dùng các hàm như mysql_connect , mysql_pconnect hoặc dùng những hàm trong Improved MySQL Extension ( cho mysl 4.1 trở lên ) OK , hì , quan sát code đơn giản $link = mysql_connect("localhost","lieumang","haihuynh") or die("Không kết nối DB ."); Ở đây $link cho ta kết quả cuộc kết nối ( lưu ý biến $link , còn sử dụng dài dài ) ,localhost là nơi đặt CSDL , lieumang là username mysql , haihuynh là password mysql , nếu kết nối không thành công thì sẽ dừng duyệt code tại chuỗi thông báo "Không kết nối db"; Để đóng kết nối , ta dùng mysql_close($link); để đóng kết nối . Việc đóng kết nối hết sức quan trọng , giúp cho Mysql server nhẹ nhàng hơn , giải phóng bộ nhớ :) . Sau khi đã login thành công ta có thể dùng những hàm khác : - mysql_query();// Truy vấn CSDL - mysql_creat_db(); // Tạo CSDL - mysql_drop_db(); // Drop CSDL ... =============== A.Xem thông tin --------------------------------Để xem trong tài khoản mới login có bao nhiêu CSDL dứơi quyền thì dùng hàm mysql_list_dbs($link); Trong đó $link là kết nối ban đầu ta đặt . Vì dụ : List database :

$danhsach = mysql_list_dbs($link); $i = 0; // $sodb= mysql_num_rows($danhsach);// số db lấy được while ($i < $sodb) { echo mysql_db_name($danhsach, $i) . "
"; // hiển thị danh sách db } ok , ở đây ta se thấy 2 db mysql , test ( vidu) Ví dụ : List table của 1 db : $tab = mysql_list_tables("mysql"); // mysql là tên CSDL while ($row = mysql_fetch_row($tab)) { echo "Table: $row[0]
"; // cho thông tin table }

PHP và Mysql phần 2

( 679 lượt xem )

Thời gian gởi : 13:03 21-05-2005 Phần trước chúng ta fiel d của table :)

đã biết lấy thông tin db

, table . Giờ mình

lấy

================ PHP và Mysql phần 2 ================ Phần trước chúng ta đã biết lấy thông tin db , table . Giờ mình lấy field của table :) Code : $fields = mysql_list_fields("$db", "$tab", $link); // $db là tên csdl , $tab là tên table , $link là kết qủa kết nối ( xem phần 01 ) $columns = mysql_num_fields($fields); for ($i = 0; $i < $columns; $i++) { echo mysql_field_name($fields, $i) . " "; // hiển thị thông tin field có được } Ngoài ra các bạn có thể nghiên cứu những hàm khác trong php như

mysql_field_flags , mysql_field_len , mysql_field_type . Như vậy kết hợp với những cái khác liên quan thì ... chắc các bạn làm 1 cai như phpmyadmin ... :)

Lấy thông tin chung từ 2 table ở cùng 1 DB

( 339 lượt xem )

Thời gian gởi : 22:22 11-08-2005

Trong bà i viết n ày tôi sẽ tr ình bày cách lấy thông tin chung từ 2 table ở cùng 1 data base (Đối với MySQL), hiểu đ ược v ấn đề này bạn sẽ tăng thêm đư ợc một kinh nghi ệm về cách lấy dữ liệu. Giả sử bạn có 1 table tên là users , trong đó bao gồm các fileds: id, name , pas swo rd, email . Và 1 table tên là users_inf o, trong đó bao gồm các fields: user_id , user_g roup , user_add ress , user_phone . * Các dòng của table users và table users _inf o trùng nhau. Tức là bên table users có 2 dòng thì ở table users_inf o cũng có 2 dòng. Trong table users có: id | name | password | email 1 | lyhuuloi | 123456 | [email protected] 2 | loihuuly | 654321 | [email protected] Trong table users_inf o có: user_id | user_group | user_address | user_phone 1 | admin | soctrang | 079 123 456 2 | minad | trangsoc | 970 321 654 * Bây giờ chúng ta sẽ tiến hành lấy thông tin của 2 field (trường): user_add ress , user_phone trong table users_inf o. Câu lệnh để lấy thông tin của user có id bằng 1 trong table users và table users_info: SELECT U.*, UI.* FROM users AS U, users_info AS UI WHE RE U.id='1' AND U.id = UI.user_id Đầu tiên ta sẽ đặt tên khác cho table users là U và users_inf o là UI bằng cách sử dụng lệnh AS, đặt tên khác cho nó mục đích là nhằm giảm bớt sự phức tạp của câu lệnh.

Tiếp đến kiểm tra lại lệnh SELECT, điền tên field cần lấy thông tin (Dùng "*" để lấy tất cả các fields có trong table). Trong câu lệnh trên thay vì ta sẽ viết là "SELECT u sers.*, u sers_inf o.UI ", nhưng ở phần sau (Sau lệnh FORM) đã đặt tên lại cho 2 tables này nên sẽ viết thành "SELECT U .*, U I.* ". Cuối cùng là lệnh WHERE nhằm xác định lại id của người cần lấy, ở đây lấy user có id bằng 1 nên sẽ viết là "U.id= '1' ". Tiếp tục viết "U.id =UI.user _i d" để tìm kiếm xem trong UI.user_id có U.id nào bằng 1 không (vì ta đặt U.id=1 trước đó rồi còn gì) và dùng "AND " để kết hợp 2 đứa nó lại - Nếu có thì sẽ trả về thông tin của 2 field user_add ress và user_phone lần lượt là: soctrang và 079 123 456.

Sử dụng CSDL MySQL Phần 1

( 534 lượt xem )

Thời gian gởi : 05:51 14-08-2005

CSDL là 1 phần quan trọng không thể thể thiếu đư ợc tr on g các ứ ng dụng web chuyên nghi ệp . MySQL từ lâu đ ã là hệ CSDL đ ược dùng phổ biến nhất v ới PHP vì tính gọn nhẹ, nhanh, miễn phí và đ ược PHP hỗ trợ s ẵn. Tron g bài viết này chúng ta s ẽ tìm hiểu cách kết nối vào CSDL MySQL, truy cậ p v à lưu trữ dữ liệu với PHP .

KẾT NỐI V ÀO MYSQL SERVE R PHP cung cấp hàm mysql_connec t để kết nối vèo MySQL server. Cú pháp của hàm này như sau: mysql_connect($server_address, $username, $password)

$serv er_add ress là địa chỉ của MySQL server, có thể là domain name hoặc IP address, các ví dụ trong bài viết này sẽ dùng giá trị "lo calhost " cho $server_address. $username là tên account dùng để login vào MySQL server, các ví dụ trong bài viết sẽ sử dụng giá trị "root " cho $username. $pa ssword là mật mã để kết nối vào MySQL server, các ví dụ trong bài viết sẽ sử dụng chuỗi rỗng "" làm mật mã. Hàm mysql_connect sẽ trả về 1 kết nối đến MySQL server nếu như quá trình kết nối thành công, hoặc trả về giá trị FALSE nếu như kết nối không được. Để đóng kết nối tới MySQL server, PHP cung cấp hàm mysql_close. Đoạn mã sau ví dụ quá trình kết nối vào MySQL server và đóng kết nối.
$PASSWORD = ""; $conn = mysql_connect($SERVER, $USERNAME, $PASSWORD); if ( !$conn ) { //Không kết nối được, thoát ra và báo lỗi die("không nết nối được vào MySQL server"); } //end if //đóng kết nối mysql_close($conn); ?>

Sử dụng CSDL MySQL Phần 2

( 409 lượt xem )

Thời gian gởi : 05:53 14-08-2005

CHỌN CSDL ĐỂ LÀM VIỆC Sau khi connet vào MySQL serv er, thao tác tiế p theo là chọn CSDL để làm việc. PHP cung cấp cho ta hàm mysql_sele ct_db để làm việc này , cú phá p mysql_select_db($db_name[, $conn])

Với $db_name là tên CSDL cần chọn, $conn là kết nối được thực hiện qua lệnh mysql_connect. Các ví dụ trong bài viết này sẽ sử dụng CSDL có tên là test :
$SERVER = $USERNAME $PASSWORD $DBNAME =

"localhost"; = "root"; = ""; "test";

$conn = mysql_connect($SERVER, $USERNAME, $PASSWORD); if ( !$conn ) { //Không kết nối được, thoát ra và báo lỗi die("không nết nối được vào MySQL server"); } //end if //chọn CSDL để làm việc mysql_select_db($DBNAME, $conn); //đóng kết nối mysql_close($conn); ?>

Sử dụng CSDL MySQL Phần 3

Thời gian gởi : 05:59 14-08-2005

( 435 lượt xem )

Chúng ta sẽ truy vấn câu lệnh SELECT v à lấy k ết quả trả về. Việc lấy thông tin và sắp xếp chúng hết s ức đ ơn giản v à hiệu quả.

THỰC THI

1 CÂU LỆNH SELECT V

À L ẤY KẾT QUẢ TRẢ VỀ

PHP cung cấp cho ta 3 hàm hữu dụng để thực hiện công việc này: •

• •



$result = mysql_query($sql, $conn): thực hiện câu lệnh SQL được cung cấp qua tham số $sql và trả về 1 kết quả kiểu $result (hàm này trả về FALSE nếu như câu lệnh thực hiện không thành công). mysql_num_rows($result): hàm này trả về số lượng row lấy được qua câu lệnh SELECT (được thực thi bởi hàm mysql_query) trước đó. $row = mysql_fetch_row($result), $row = mysql_fetch_assoc($result): trả về dòng kết quả hiện thời của câu lệnh select và chuyển con trỏ tới dòng tiếp theo (như vậy lệnh gọi mysql_fetch_row hoặc mysql_fetch_assoc tiếp đó sẽ trả về dòng tiếp theo); hoặc giá trị FALSE nếu như không còn dòng nào để trả về nữa. Kết quả trả về từ 2 hàm này là 1 array. mysql_error($conn): trả về thông báo lỗi của MySQL server nếu như một lệnh trước đó có lỗi.

Để hiểu rõ hơn công dụng của các hàm trên, đồng thời phân biệt sự khác nhau giữa 2 hàm mysql_fetch_row và mysql_fetch_assoc, ta cung xem xét các ví dụ sau. Các ví dụ của ta sẽ sử dụng table có tên là me mbe r. Ví dụ 1: dùng mysql_fetch_row()
"localhost"; = "root"; = ""; "test";

$conn = mysql_connect($SERVER, $USERNAME, $PASSWORD); if ( !$conn ) { //Không kết nối được, thoát ra và báo lỗi die("không nết nối được vào MySQL server: ".mysql_error($conn)); } //end if //chọn CSDL để làm việc

mysql_select_db($DBNAME, $conn) or die("Không thể chọn được CSDL: ".mysql_error($conn)); $sql = "SELECT * FROM member"; $result = mysql_query($sql, $conn); if ( !$result ) die("Không thể thực hiện được câu lệnh SQL: ".mysql_error($conn)); echo "Số lượng row tìm được: ".mysql_num_rows($result)." \n"; while ( $row = mysql_fetch_row($result) ) { echo "Username = ".$row[0]." \n"; echo "Password = ".$row[1]." \n"; } //end while //nên luôn giải phóng bộ nhớ mysql_free_result($result); //đóng kết nối mysql_close($conn); Hàm mysql_fetch_row() sẽ trả về 1 array mà phần tử thứ [0] sẽ tương ứng với cột đầu tiên của table, phần tử thứ [1] sẽ tương ứng với cột thứ hai của table... Chương trình trên sẽ in ra ra 4 dòng: Username = abc Password = 123 Username = def Password = 456 Ví dụ 2: dùng mysql_fetch_assoc()
//chọn CSDL để làm việc mysql_select_db($DBNAME, $conn) or die("Không thể chọn được CSDL: ".mysql_error($conn)); $sql = "SELECT * FROM member"; $result = mysql_query($sql, $conn); if ( !$result ) die("Không thể thực hiện được câu lệnh SQL: ".mysql_error($conn)); echo "Số lượng row tìm được: ".mysql_num_rows($result)." \n"; while ( $row = mysql_fetch_assoc($result) ) { echo "Username = ".$row['username']." \n"; echo "Password = ".$row['password']." \n"; } //end while //nên luôn giải phóng bộ nhớ mysql_free_result($result); //đóng kết nối mysql_close($conn); ?> Hàm mysql_fetch_assoc() sẽ trả về 1 array mà các phần tử sẽ được truy cập qua tên, với tên được lấy từ tên các cột của table. Chương trình ví dụ 2 cũng sẽ in ra ra 4 dòng: Username = abc Password = 123 Username = def Password = 456

( 421 lượt xem )

Sử dụng CSDL MYSQL Phần 4

Thời gian gởi : 06:11 14-08-2005 Phần trước chúng ta cập nhật thông tin. THỰC THI

đã biết cách lấy thông tin,

phần này

qua bư ớc

1 CÂU LỆNH UPDA TE , I NSER T hoặc DELETE

Hàm mysq l_query cũng được dùng để thực thi các câu lệnh DELETE, INSERT hoặc UPDATE, nhưng lúc này hàm sẽ trả về TRUE nếu câu lệnh thực hiện thành công và FALSE trong trường hợp ngược lại. Để lấy số lượng các row được chèn

với lệnh INSERT hoặc bị thay đổi bởi lệnh UPDATE, PHP cung cấp cho ta hàm mysql_affected_rows. Ta hãy xem ví dụ sau:
"localhost"; = "root"; = ""; "test";

$conn = mysql_connect($SERVER, $USERNAME, $PASSWORD); if ( !$conn ) { //Không kết nối được, thoát ra và báo lỗi die("không nết nối được vào MySQL server: ".mysql_error($conn)); } //end if //chọn CSDL để làm việc mysql_select_db($DBNAME, $conn) or die("Không thể chọn được CSDL: ".mysql_error($conn)); $sql = "INSERT INTO member (username, password) VALUES ('xyz', '000')"; $result = mysql_query($sql, $conn); //chèn thêm 1 dòng vào table if ( !$result ) die("Không thể thực hiện được câu lệnh SQL: ".mysql_error($conn)); echo "Số lượng row được chèn: " .mysql_affected_rows($conn)."\n"; // mysql_affected_rows sẽ trả về 1 $sql = "UPDATE member SET password='111' WHERE username='xyz'"; $result = mysql_query($sql, $conn); //đổi password của accoutn xyz if ( !$result ) die("Không thể thực hiện được câu lệnh SQL: ".mysql_error($conn)); echo "Số lượng row được thay đổi: ".mysql_affected_rows($conn)." \n"; //mysql_affected_rows sẽ trả về 1 $sql = "DELETE FROM member";

$result = mysql_query($sql, $conn); //xoá hết tất cả các account if ( !$result ) die("Không thể thực hiện được câu lệnh SQL: ".mysql_error($conn)); echo "Số lượng row được xoá: ".mysql_affected_rows($conn)." \n"; //mysql_affected_rows sẽ trả về 3 //đóng kết nối mysql_close($conn); ?>

( 567 lượt xem )

Một số cách xử lý chuỗi

Thời gian gởi : 09:50 22-06-2005 Bài viết sẽ h ướng dẫn bạn một s ố cách xử lý chuỗ i n hư: ký tự hoa -> thườ ng , th ường - > hoa, đếm kí tự nào đó đã lặp lại bao nhiêu lần, trí ch phần văn bản trước ha y sa u kí tự nào đó. Bài viết sẽ hướng dẫn bạn một số cách xử lý chuỗi như: ký tự hoa -> thường, thường -> hoa, đếm kí tự nào đó đã lặp lại bao nhiêu lần, trích phần văn bản trước hay sau kí tự nào đó. 1. Cách chuyển ngư ợc lại

đổi các chữ thư ờng trong 1 chuỗi thành chữ hoa v à

Thường -> Hoa (Dùng strtolowe r() ): $str = "I LOVE YOU SO MUCH"; $str = strtolower($str); echo $str; // I love you so much Hoa -> Thường (Dùng strtouppe r() ): $str = "I love you so much"; $str = strtoupper($str); echo $str; // I LOVE YOU SO MUCH 2. Đếm kí tự nào đó đã lặp lại
bao nhiêu lần

$data = "I love you."; $result = count_chars($data, 0); for ($i=0; $i < count($result); $i++) { if ($result[$i] != 0) echo "Có 4 $result[$i] ký tự "" , chr($i) , "" trong chuỗi truy vấn. "; } /* Kết quả: Có 2 ký tự " " trong chuỗi truy vấn. Có 1 ký tự "." trong chuỗi truy vấn. Có 1 ký tự "i" trong chuỗi truy vấn. Có 1 ký tự "l" trong chuỗi truy vấn. Có 2 ký tự "o" trong chuỗi truy vấn. Có 1 ký tự "v" trong chuỗi truy vấn. Có 1 ký tự "e" trong chuỗi truy vấn. Có 1 ký tự "u" trong chuỗi truy vấn. */ ?> 3. trí ch phần văn bản trước ha y sau kí tự nào đó Bạn có thể dùng spli t() để lấy chuỗi trước và sau @, và dùng list() để liệt kê chúng ta thành danh sách: $email = "[email protected]"; list($name, $domain) = split("@", $email); echo $name; // Will be output: lyhuuloi_vn echo $domain; // Will be output: @yahoo.com

Related Documents

Tu Hoc Php
June 2020 0
Tu Hoc Plc
November 2019 0
Tu Hoc Autocad
November 2019 1
Tu Hoc C++
November 2019 1
Ky Nang Tu Hoc
June 2020 9
Tu Hoc Csharp
August 2019 6