Hướng dẫn check session in php - kiểm tra phiên trong php

Nội dung chính

  • Session là gì?
  • Thiết lập session
  • Huỷ bỏ session
  • Related Posts
  • STDIO Co., Ltd
  • Thiết lập, lưu Cookie
  • Truy cập - đọc - Cookie
  • Xóa Cookie
  • Khái niệm về Session
  • Chạy Session - Lưu trữ và lấy thông tin
  • Hủy Session

Tìm hiểu về cách hoạt động của session trong PHP.

Session là gì?

Session trong PHP cho phép lưu trữ thông tin (tên người dùng, danh mục hàng hoá trong giỏ hàng…) trong suốt quá trình làm việc của họ. Không giống như cookie, dữ liệu của session là tạm thời và chỉ thực sự kết thúc khi người dùng tắt trình duyệt hoặc máy chủ chấm dứt kết nối. Vì vậy, đôi lúc cần phải lưu trữ thông tin về session trong cơ sở dữ liệu.

Session làm việc bằng cách:

  • Mỗi session sẽ được cấp một định danh (ID) khác nhau là chuỗi 32 kí tự.
  • Cookie gọi là <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>1 sẽ được tự động gửi đến máy tính người dùng để lưu trữ chuỗi.
  • Một tệp tin được tự động tạo ra và nội dung đươc lưu trong thư mục thiết lập trong file php.ini.

Thiết lập session

  • Huỷ bỏ session
  • Related Posts

STDIO Co., Ltd: hàm khởi động session phải đặt phía trên thẻ HTML.

<?php // Start the session session_start(); ?> <!DOCTYPE html> <html> <body> <?php $_SESSION["manager"] = "KevinLa"; ?> </body> </html>

Thiết lập, lưu Cookie

<?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>

Truy cập - đọc - Cookie

Xóa Cookie

  • Khái niệm về Session
  • Chạy Session - Lưu trữ và lấy thông tin

Huỷ bỏ session

Related Posts

<?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php session_destroy(); session_unset(); unset($_SESSION["manager"]); ?> </body> </html>

Truy cập - đọc - Cookie

  • Xóa Cookie
  • Khái niệm về Session
  • Chạy Session - Lưu trữ và lấy thông tin

Related Posts

  • STDIO Co., Ltd

  • Thiết lập, lưu Cookie

  • Truy cập - đọc - Cookie
  • Xóa Cookie
  • Khái niệm về Session
  • Chạy Session - Lưu trữ và lấy thông tin

STDIO Co., Ltd

Thiết lập, lưu Cookie
+84 28 22 00 11 12
[email protected]

Truy cập - đọc - Cookie
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

Xóa Cookie

  • Khái niệm về Session
  • Chạy Session - Lưu trữ và lấy thông tin
  • Hủy Session
  • Tìm hiểu về cách hoạt động của session trong PHP.
  • Session trong PHP cho phép lưu trữ thông tin (tên người dùng, danh mục hàng hoá trong giỏ hàng…) trong suốt quá trình làm việc của họ. Không giống như cookie, dữ liệu của session là tạm thời và chỉ thực sự kết thúc khi người dùng tắt trình duyệt hoặc máy chủ chấm dứt kết nối. Vì vậy, đôi lúc cần phải lưu trữ thông tin về session trong cơ sở dữ liệu.
  • Session làm việc bằng cách:
  • Hủy Session

Tìm hiểu về cách hoạt động của session trong PHP.

  • Session trong PHP cho phép lưu trữ thông tin (tên người dùng, danh mục hàng hoá trong giỏ hàng…) trong suốt quá trình làm việc của họ. Không giống như cookie, dữ liệu của session là tạm thời và chỉ thực sự kết thúc khi người dùng tắt trình duyệt hoặc máy chủ chấm dứt kết nối. Vì vậy, đôi lúc cần phải lưu trữ thông tin về session trong cơ sở dữ liệu.
  • Session làm việc bằng cách:
  • Mỗi session sẽ được cấp một định danh (ID) khác nhau là chuỗi 32 kí tự.

Cookie gọi là <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>1 sẽ được tự động gửi đến máy tính người dùng để lưu trữ chuỗi.

Thiết lập, lưu Cookie

Truy cập - đọc - Cookie

setcookie($name, $value, $expire = 0, $path="", $domain = "", $security = false, $httponly = false);
  • Xóa Cookie
  • Khái niệm về Session
  • Chạy Session - Lưu trữ và lấy thông tin
  • Hủy Session
  • Tìm hiểu về cách hoạt động của session trong PHP.
  • Session trong PHP cho phép lưu trữ thông tin (tên người dùng, danh mục hàng hoá trong giỏ hàng…) trong suốt quá trình làm việc của họ. Không giống như cookie, dữ liệu của session là tạm thời và chỉ thực sự kết thúc khi người dùng tắt trình duyệt hoặc máy chủ chấm dứt kết nối. Vì vậy, đôi lúc cần phải lưu trữ thông tin về session trong cơ sở dữ liệu.
  • Session làm việc bằng cách:

Mỗi session sẽ được cấp một định danh (ID) khác nhau là chuỗi 32 kí tự.

setcookie($name, $value, $expire = 0, $path="", $domain = "", $security = false, $httponly = false); 4

<?php setcookie("name", "XUANTHULAB", time() + 600, "/"); echo "Set cookie"; ?>

Cookie gọi là <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>1 sẽ được tự động gửi đến máy tính người dùng để lưu trữ chuỗi.

Một tệp tin được tự động tạo ra và nội dung đươc lưu trong thư mục thiết lập trong file php.ini.

php -S 0.0.0.0:8080 setcookie.php

Một session được thiết lập trong PH sử dụng cú pháp: <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>2.

Tất cả session được lưu trong biến toàn cục <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>3.

Hoặc dùng lệnh curl để xem header trả về:

Truy cập - đọc - Cookie

Bạn dùng biến <?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php session_destroy(); session_unset(); unset($_SESSION["manager"]); ?> </body> </html> 1 là một mảng để truy cập thông tin cookie do trình duyệt gửi lên. Giống như setcookie($name, $value, $expire = 0, $path="", $domain = "", $security = false, $httponly = false); 9 bạn nên dùng <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>4 để kiểm tra sự tồn tại của COOKIE.

<?php setcookie("name", "XUANTHULAB", time() + 600, "/"); echo "Set cookie"; ?>1

<?php if( isset($_COOKIE["name"])) { echo "Welcome " . $_COOKIE["name"]; } else { echo "Không có tên"; } ?>

Xóa Cookie

Để yêu cầu trình duyệt xóa cookie bạn sử dụng chính hàm setcookie với thủ thuật đặt thời gian đã hết hạn. Ví dụ:

setcookie( "name", "", time()- 60, "/","", 0);

Khái niệm về Session

Để trao đổi dữ liệu từ trang này qua trang khác (giữa 2 request) thì làm như thế nào? Ví dụ nếu người dùng đã đăng nhập, thì thông tin đăng nhập được lưu lại và chuyển cho các trang khác nhau trong phiên làm việc để tránh mỗi lần gửi request lại phải đăng nhập, hay người dùng chọn đựa mặt hàng vào giỏ hàng thì phải nhớ để chuyển đến trang thanh toán ... PHP có cơ chế để làm việc này đó chính là <?php setcookie("name", "XUANTHULAB", time() + 600, "/"); echo "Set cookie"; ?>2

Session là thông tin về phiên làm việc cho từng khách truy cập, trong PHP nó tạo một file trong thư mục tạm (thư mục này cài đặt ở <?php setcookie("name", "XUANTHULAB", time() + 600, "/"); echo "Set cookie"; ?>3) để lưu thông tin này, thông tin này được dùng chung cho tất cả các trang mà khách truy cập. Mỗi khách truy cập, dựa vào thông tin trình duyệt gửi lên nó tạo (hoặc phục hồi) một Session riêng cho khách đó. là thông tin về phiên làm việc cho từng khách truy cập, trong PHP nó tạo một file trong thư mục tạm (thư mục này cài đặt ở <?php setcookie("name", "XUANTHULAB", time() + 600, "/"); echo "Set cookie"; ?>3) để lưu thông tin này, thông tin này được dùng chung cho tất cả các trang mà khách truy cập. Mỗi khách truy cập, dựa vào thông tin trình duyệt gửi lên nó tạo (hoặc phục hồi) một Session riêng cho khách đó.

Sự làm việc của Session có thể vắn tắt như sau:

  • Khi khách lần đầu truy cập, PHP tự động tạo ra một định danh duy nhất cho khách đó, định danh này là một chuỗi ngẫu nhiên - duy nhất. Nó là tham số để xác định tên file dữ liệu session.
  • Một mẩu tin nhỏ Cookie gọi là PHPSESSID (là ánh xạ đến định danh ở trên) sẽ được gửi đến trình duyệt và trình duyệt lưu giữ PHPSESSID này, để sau đó mỗi lần trình duyệt truy cập nó gửi lại PHPSESSID cho PHP.
  • PHP dựa vào PHPSESSID gửi đến để phục hồi - lấy lại dữ liệu từ file là thông tin của SESSION.
  • Session bị hủy - mất khi trình duyệt bị đóng lại, thông thường PHP cũng có tham số ấn định thời gian tồn tại của SESSION, ví dụ như 30 phút.

Như vậy <?php setcookie("name", "XUANTHULAB", time() + 600, "/"); echo "Set cookie"; ?>2 là cơ chế lưu trữ và phục hồi thông tin cho phiên làm việc (truy cập) của khách, nhằm trao đổi thông tin khi duyệt từ page này sang page khác. Để Session hoạt động thì còn liên quan tới hỗ trợ <?php setcookie("name", "XUANTHULAB", time() + 600, "/"); echo "Set cookie"; ?>5 từ trình duyệt. Ví dụ trong Chrome bạn block Cookie từ facebook, thì bạn không thể đăng nhập được facebook.

Chạy Session - Lưu trữ và lấy thông tin

Session trong PHP bắt đầu hoạt động sau khi bạn gọi hàm <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>2, hàm này sẽ phục hồi dữ liệu SESSION nếu đã có, nếu chưa nó sẽ tạo ra SESSION mới cho bạn. Để sử dụng khuyên nên gọi hàm này ngay khi bắt đầu của Page. Một cách khác mà không cần quan tâm đến gọi <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>2 đó là thiết lập cho PHP tự động chạy hàm này bàng cách <?php setcookie("name", "XUANTHULAB", time() + 600, "/"); echo "Set cookie"; ?>8 trong <?php setcookie("name", "XUANTHULAB", time() + 600, "/"); echo "Set cookie"; ?>9

Khi mà hệ thống session trong PHP được chạy, mặc định nó sẽ gửi về trình duyệt một Cookie với tiền tố <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>1, tất nhiên có thể thay đổi tiền tố này trong php.ini

Ví dụ trang chạy thử Session

php -S 0.0.0.0:8080 setcookie.php1

<?php if (session_id() === '') session_start(); echo "Session đang chạy";

Kiểm tra bạn thấy có Cookie gửi về, cookie này dùng để phục hồi dữ liệu Session

Biến toàn cục php -S 0.0.0.0:8080 setcookie.php2 kiểu mảng là nơi SESSION lưu trữ thông tin - cũng chính là dữ liệu phục hồi được giữa các trang, bạn truy cập biến này trong suốt vòng đời của session để lấy, lưu trữ thông tin. Bạn cũng nên dùng hàm <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>4 để kiểm tra một biến session nào đó đã có hay chưa. Ví dụ sau dùng SESSION để đếm số lần một khách truy cập vào website.

Ví dụ đếm lượt truy cập trang của một khách

php -S 0.0.0.0:8080 setcookie.php4

<?php // Khởi tạo session PHP nếu chưa khởi tạo if (session_id() === '') session_start(); if( isset( $_SESSION['counter'] ) ) { // Đếm mỗi lần truy cập $_SESSION['counter'] += 1; } else { // Lần đầu truy cập $_SESSION['counter'] = 1; } $msg = "<p>Bạn là vào truy cập ". $_SESSION['counter'] . ' lần vào trang</p>'; echo $msg; ?><?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>0

Trong đoạn code trên có sử dụng php -S 0.0.0.0:8080 setcookie.php5 để kiểm tra xem Session có tồn tại hay chưa, nếu có rồi mà bạn gọi <?php session_start(); if(isset($_SESSION['views']) $_SESSION['views'] = $_SESSION['views']+ 1; else $_SESSION['views'] = 1; ?> <!DOCTYPE html> <html> <body> <?php echo "views = ". $_SESSION['views']; ?> </body> </html>2 có thể PHP sẽ cảnh báo lỗi Warning

Khi có chạy Session thì dữ liệu trả về cho trình duyệt nó gửi kèm một mẩu tin nhỏ ở phần Header, dữ liệu này là Cookie liên quan đến ID của Session, để request trình duyệt lưu trữ, request tiếp theo nó sẽ gửi dữ liệu này đến Server và PHP sẽ phục hồi Session theo Cookie này.

Hủy Session

Bạn có thể hủy một biến, giá trị ... đã lưu vào Session:

  • Để hủy một biến nào đó lưu trữ trong Session thì dùng lệnh unset ví dụ php -S 0.0.0.0:8080 setcookie.php7
  • Để hủy toàn bộ Session thì dùng lệnh php -S 0.0.0.0:8080 setcookie.php8

Từ nắm vững Cookie và Session là cơ sở để xây dựng lên các hệ thống như cho phép user đăng nhập vào website, xây dựng ứng dụng giỏ hàng đặt hàng ...

Source code: session_cookie (Git), hoặc tải rphp-sessioncookie

Chủ đề