Giới thiệu Cookies và Session trong php

Giới thiệu Cookies và Session trong php

Bất kỳ một trang web nào cũng có các phiên làm việc riêng, việc này giúp website tương tác với từng user từ đó thu thập các thông tin riêng biệt và cần thiết. Để làm dc việc này ta dùng cookie và session. Bây giờ chúng ta sẽ tìm hiểu cách sử dụng của hai loại biến này.

Cookies

  • Cookie dùng để lưu những thông tin về user.
  • Cookie được lưu trong máy client, trong vùng do browser quản lý
  • Không dùng cookies để lưu những thông tin quan trọng vì không đảm bảo, browser đều cho phép ghi cookies mà chỉ dùng cookie cho mục đích tiện ích mà thôi (username, password, thời điểm login cuối, danh sách nhạc ưa thích)…

Tạo cookie

  • setcookie(“TenCookie”,giá trị [,Thời điểm quá hạn]);
  • Nếu không chỉ định thời gian thì cookie sẽ lưu trong bộ nhớ. Và sẽ mất khi user đóng browser.
  • Nếu thời điểm quá hạn là 1 thời điểm trong quá khứ thì browser sẽ xóa cookie

Sử dụng cookie: $_COOKIE["Ten"];

Ví dụ 1: Tạo file setcookies.php và gõ khối lệnh sau (phải trên tất cả mã html):

<!--
<?php
setcookie("un", "bcdOnline", time()+60*60*24*30);
setcookie("lasttime", time(), time()+60*60*24*30);
?>
-->

Chú ý:

Hàm time() cho biết số giây tính từ đầu năm 1970 đến thời điểm hiện tại

Chạy xem thử, bạn sẽ chẳng thấy gì, nhưng 2 cookie đã được tạo (có thể xem thấy trong cache) Tạo file viewcookie.php rồi gõ khối lệnh sau trong tag body:

<!--
<?php
if (isset($_COOKIE["un"])==true)   echo "Chào bạn  " . $_COOKIE["un"] ."";
else   echo "Chào quý khách";
echo "Bạn vào site lần cuối lúc " . date("d/m/Y H:i:s",$_COOKIE["lasttime"]);
echo "<hr />";
print_r($_COOKIE); // Xem mọi cookie
?>
-->

Chạy test xem thử, bạn thấy giá trị 2 cookie.

Ví dụ 2: Mở file xulydangnhap.php, gõ thêm ở đầu:

<!--
<?php
if (isset($_POST['nho'])==true)
{
setcookie("username",$_POST['u'],  time()+60*60*24*7 );
setcookie("password",$_POST['p'],  time()+60*60*24*7 );
}
else
{
setcookie("username",$_POST['u'],time()-1);
setcookie("password",$_POST['p'],time()-1);
}
?>
-->

Lưu file lại

Mở file 1 file dangnhap.php , chọn tag form rồi kểm tra xem có phải method là POST không. Nhắp textfield tên u rồi qua code, bạn sẽ thấy đoạn mã:

<!--
<input name="u" type="text" class="txtfield" id="u" />
-->

Gõ thêm vào (màu đỏ) để có kết quả sau:

<!--
<input value="<? echo $_COOKIE['username'];?>" name="u" type="text" class="txtfield" id="u" />
-->

Qua Design, nhắp textfield tên p rồi qua code, bạn sẽ thấy đoạn mã:

<!--
<input name="p" id="p" type="password" class="txtfield"  />
-->

Gõ thêm vào (màu đỏ) để có kết quả sau:

<!--
<input value="<? echo $_COOKIE['password'];?>" name="p" id="p"  type="password" class="txtfield" />
-->

Chạy trang dangnhap.php. Gõ username và password , check vào Nhớ username rồi nhắp Đăng nhập, bạn sẽ thấy user name password. Lúc này username và password đã được lưu lại trong cookie. Xem xong đóng browser lại. Chạy trang dangnhap.php. Bạn sẽ thấy username, password đã được hiện sẵn.

Session:

  • Là đối tượng chứa thông tin user trên server.
  • Mỗi user có 1 session riêng.
  • Cấu trúc session của mỗi user là giống nhau (chỉ khác gia trị các biến).
  • $_SESSION là dãy toàn cục có sẵn trong php, dùng để chứa các biến session. Do đó dữ liệu trong session có thể được truy xuất từ mọi trang php trong site.

Khai báo và sử dụng:

$_SESSION["TênBiến"]

Trang php nào có dùng session thì phải có hàm Hàm này phải nằm trên tất cả mã lệnh html

Ví dụ:

<!--
<? $_SESSION["login"]=1 ; //tạo biến, mọi trang đều đọc được ?>
-->

Ví dụ :

<!--
<?php
if(isset($_SESSION['views'])==true)
$_SESSION['views']=$_SESSION['views']+1;
else
$_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
if ($_SESSION['views']>=10) unset($_SESSION['views']);  //session_destroy();
?>
-->

Hàm isset để kiểm tra tồn tại của biến nếu có thì mình thực hiện lệnh không tồn tại thì gán giá trị nó bằng 1.

  • session_destroy(): Cho phép hủy bỏ toàn bộ giá trị của session
  • session_unset(): Cho phép hủy bỏ session .

Kết luận:Vậy là đã tìm hiểu sơ lược về cookie và sesion cơ bản về thì hai loại biến này hoàn toàn giống nhau chỉ là cookie thì là biến ở clien hoạt động ở trình duyệt, session thì ở server. Biến này dùng để quản lý các phiên làm việc của một mảng nào đó chẳng hạn của 1 user. Khi bạn khai báo biến session hay cookie trong thời gian sống của nó thì ở bất kỳ trang nào trong site bạn cũng đều sử dụng được biến này.

Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Bình luận (0)

 

Add Comment

Filtered HTML

  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Các thẻ HTML được chấp nhận: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Tự động ngắt dòng và đoạn văn.

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Aaron Winborn là ai? giới thiệu Aaron Winborn Community Spotlight

Aaron Winborn là ai? giới thiệu Aaron Winborn Community Spotlight

If you have been around the Drupal community for a while you know who Aaron Winborn is.

Hướng dẫn Patch Drupal core không cần ending up core/core or core/b

Hướng dẫn Patch Drupal core không cần ending up core/core or core/b

If you've ever patched Drupal core with Composer you may have noticed patched files can sometimes end up in the wrong place like core/core or core/b.

Hướng dẫn lưu các trang web đang làm việc khi đóng trình duyệt Google Chrome

Hướng dẫn lưu các trang web đang làm việc khi đóng trình duyệt Google Chrome

Khi nâng cấp trình duyệt Google Chrome lên phiên bản mới, thì tính năng lưu các cửa sổ...

Công ty diệt chuột T&C

 

Diet con trung