ĐỐI TƯỢNG TRONG PHP

Một phần của tài liệu Lập trình web (Trang 70 - 74)

Bài 4. LẬP TRÌNH WEB ĐỘNG VỚI PHP

4.2. ĐỐI TƯỢNG TRONG PHP

Khi trình duyệt máy khách gọi trang Web, nghĩa là yêu cầu kết nối với trình chủ Web lấy nội dung trang và đóng kết nối, gọi là phiên làm việc. Để lưu vết trạng thái mỗi phiên làm việc của Client tại Server, ta sử dụng đối tượng session

Đối tượng session dùng để chứa thông tin hay các thay đổi thiết lập cho một phiên kết nối của người dùng. Biến lưu trong session dùng chung cho các trang, nhưng chỉ cho một phiên kết nối của người dùng, nghĩa là biến cục bộ trong phiên kết nối

a. Khởi động session

Để có thể lưu trữ thông tin trong PHP session, đầu tiên phải khởi động session sử dụng hàm session_start() để đăng ký session với server và cho phép lưu trữ thông tin vào session. Hàm này chỉ yêu cầu khi thiết lập sau trong tập tin php.ini: session.auto_start = 0. Hàm này phải đặt trước thẻ <html>

Ví dụ:

<?php session_start();

?>

<html><body>

</body></html>

b. Lưu trữ biến vào session

- Để lưu một biến vào session với một tên khóa Name, sử dụng hàm sau :

$_SESSION[Name] = Value;

Ví dụ: $_SESSION[“views”] = 1;

c. Lấy biến đã lưu vào session

- Để lấy biến đã lưu vào session với tên khoá Name, sử dụng mảng $_SESSION, mảng này lưu tất cả các biến lưu vào session, truy xuất phần tử mảng bởi tên khóa

$_SESSION[Name];

Ví dụ: $_SESSION[“views”];

d. Xóa biến session

- Để xóa biến đã lưu vào session với tên khóa Name, sử dụng hàm:

unset($_SESSION[Name]);

Ví dụ: unset($_SESSION[“views”]);

- Hàm isset($_SESSION[Name]) để kiểm tra đã có biến lưu vào session với tên khóa Name, nếu có trả về true, ngược lại trả về false

- Để xóa tất cả dữ liệu lưu vào session, sử dụng hàm session_destroy()

session_unset()

68

Ví dụ 1: Mở cửa sổ trình duyệt, gọi lại trang (F5 – View/ Refresh) nhiều lần để xem sự thay đổi biến session

<?php session_start();

if(isset($_SESSION['views']))

$_SESSION['views']=$_SESSION['views']+1;

else

$_SESSION['views']=1;

echo "Views=". $_SESSION['views'];

?>

Ví dụ 2:

Trang luusession.php

<?php

session_start();

//Stored session data

$_SESSION["views"]=10;

echo "<html><body>";

echo "Pageviews=". $_SESSION["views"];

?>

<a href="docsession.php">Get session</a>

</body></html>

Trang docsession.php

<?php

session_start();

//Retrieve session data

if (isset($_SESSION["views"])) { echo "<html><body>";

echo "Views=".$_SESSION["views"];

unset($_SESSION["views"]);

}

?>

</body></html>

4.2.2. Cookies

Session là cơ chế lưu thông tin một phiên kết nối phía trình chủ. Còn cookies lưu thông tin một phiên kết nối trên một tập tin của máy khách. Trình khách và trình chủ có thể gởi và nhận cookies của nhau. Thường cookies dùng để lưu các giá trị như tên người đã ghé thăm Web site hay để nhận biết user.

a. Lưu biến vào cookies

- Tạo ra hay thay đổi một biến vào cookies với tên khóa là Name, gán giá trị Value, hết hiệu lực sau thời gian Expire, và đường dẫn, tên miền của Web Site là path, domain, sử dụng hàm:

setcookie(Name, Value, Expire, Path, Domain) Hàm này phải xuất hiện trước thẻ <html>

69 Ví dụ: Tạo biến Cookie có hiệu lực trong 1 giờ

<?php

setcookie("user", "xuannt", time()+3600);

?>

<html><body>

</body></html>

b. Lấy biến từ cookies

- Biến mảng $_COOKIE sử dụng để nhận một mảng các biến lưu vào cookie, truy xuất phần tử mảng bằng tên khóa

$_COOKIE[Name]

Ví dụ:

$_COOKIE[“user”]

Ví dụ:

Trang taocookie.php

<?php $myValue1 = "You are welcome";

$myValue2 = "You are visited our site";

setcookie("value1", $myValue1);

setcookie("value2", $myValue2);

?>

<html><body>

<a href = "doccookie.php">Get Cookie</a>

</body></html>

Trang doccookie.php

<html><body>

<?php if (isset($_COOKIE["value1"])) {

$myValue1 = $_COOKIE["value1"];

echo "Get cookie:<br>" . $myValue1 . "<br>";

}

if (isset($_COOKIE["value2"])) {

$myValue2 = $_COOKIE["value2"];

echo $myValue2 . "<br>";

}

?>

</body></html>

- Hàm isset($_COOKIE[Name]) trả về true nếu đối tượng cookie với tên khóa Name đã được tạo

Ví dụ:

<html><body>

<?php if (isset($_COOKIE["user"]))

echo "Welcome " . $_COOKIE["user"] . "!<br />";

else

70 echo "Welcome guest!<br />";

?>

</body></html>

c. Xóa biến cookie

- Xóa một biến cookie, tương tự tạo biến cookie, nhưng thiết lập giá trị chuỗi rỗng, và đã hết thời gian có hiệu lực

Ví dụ:

<?php

//Thiết lập thời gian hết hiệu lực cách đây 1 giờ setcookie("user", "", time()-3600);

?>

4.2.3 Application

PHP không cung cấp đối tượng Application như ASP hay JSP.

Ví dụ: Để đếm số người dùng Online (Track Users), bạn có thể thực hiện phương pháp đơn giản là đếm có bao nhiêu file session trong thư mục session.

getOnlineUsers.php

<?php

//Define how long the maximum amount of time the session can be inactive session_start();

define("MAX_IDLE_TIME", 3);

function getOnlineUsers() {

if ( $handle = opendir( session_save_path() ) ) {

$count = 0;

while (( $file = readdir( $handle )) != false ) {

if($file != '.' && $file != '..') {

if(time()- fileatime(session_save_path() . '\\' . $file) <

MAX_IDLE_TIME * 60)

$count++;

}

closedir($handle);

return $count;

}

return false;

} }

?>

71

<?php

session_start();

include('getOnlineUsers.php');

echo 'There are ' . getOnlineUsers() . ' user(s) currently browsing MyDomain.com';

?>

Một phần của tài liệu Lập trình web (Trang 70 - 74)

Tải bản đầy đủ (PDF)

(86 trang)