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ạytrang 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.

VN:F [1.9.22_1171]
Rating: 7.6/10 (15 votes cast)
Cookies và Session trong php, 7.6 out of 10 based on 15 ratings
Share This