Session là một phiên làm việc, session được tạo ra trong PHP được dùng để lưu trữ thông tin của người dùng hoặc là lưu trữ tùy chọn cấu hình hệ thống cho người dùng.
Mỗi người dùng sẽ có một ID session khác nhau để làm căn cứ phân biệt giữa người dùng này với người dùng khác. Vì vậy việc thông tin Session ở người dùng A bị ảnh hưởng đến người dùng B là điều không thể.
Thông thường chúng ta sử dụng Session để lưu thông tin đăng nhập, giỏ hàng hoặc những dữ liệu mang tính chất tạm thời và mỗi người dùng sẽ có dư liệu khác nhau.
Một Session sẽ bắt đầu khi phía người dùng yêu cầu phiên làm việc. Khi ấy một cookie được gọi là PHPSESSID sẽ được gửi tự động đến máy tính người dùng để lưu trữ chuỗi định danh session duy nhất ở trên.
Một file được tạo tự động trên Server trong thư mục tạm thời đã được chỉ định và nó mang tên của định danh duy nhất và được bắt đầu bằng sess_.
Khi server muốn lấy giá trị từ một biến session, server tự động lấy chuỗi định danh session duy nhất này từ PHPSESSID cookie, sau đó tìm file mang tên đó trong thư mục tạm thời của nó, một xác thực có thể được hoàn thành bằng việc so sánh các giá trị đó.
Một session kết thúc khi người dùng tắt trình duyệt hoặc sau khi rời khỏi site này hay Server sẽ chấm dứt session sau một thời gian đã định trước nếu xét thấy người dùng không dùng nữa.
Cú pháp:
<?php session_start(); ?>
Ý nghĩa:
Ví dụ:
<?php session_start(); ?> <html> <head> <title> </title > </head> <body> <div>Thầy Trần Vĩnh Xuyên xin chào!</div> </body> </html >
Sao khi chúng ta đã khởi động session, chúng ta có thể tiến hành đăng ký một biến session để lưu trữ dữ liệu.
Cú pháp:
<?php $_SESSION[“tên_biến”]= giá_trị; ?>
Ví dụ:
<?php session_start(); ?> <html> <head> <title>Bài học session</title > </head> <body> <?php $_SESSION["username"] = "tranvinhxuyen"; $_SESSION[“password"] = "123"; ?> </body> </html >
Để sử dụng biến session mà chúng ta đã lưu trữ trước đó trong php, chúng ta hoàn toàn có thể gọi giá trị mà các biến session đã lưu.
Cú pháp:
<?php $tenbien = $_SESSION['tên_biến']; ?>
Chú ý:
Ví dụ:
<?php session_start(); if(isset($_POST['username'])){ $_SESSION['name'] = $_POST['username']; } ?> <html> <head> <title>Bài học session</title > </head> <body> <?php if(isset($_SESSION['name'])){ echo 'Bạn đã đăng nhập với tên: ' . $_SESSION['name']; } ?> <form method="POST" action=""> <input type="text" name="username" value=""/> <input type="submit" name="save-session" value="Lưu Session"/> </form > </body> </html >
Sau khi đã sử dụng xong biến session, chúng ta không còn cần sử dụng biến session này nữa, chúng ta có thể hủy biến session này, để giải phóng một biến ra khỏi bộ nhớ.
Cú pháp:
<?php unset($_SESSION['tên_session']); ?>
Trong đó:
Ví dụ:
<?php session_start(); if(isset($_SESSION['name'])){ unset($_SESSION['name']); } ?>
Chúng ta có thể xóa bỏ toàn bộ session hiện đang tồn tại trên hệ thống, để giải phóng bộ nhớ.
Cú pháp:
<?php session_destroy(); ?>
Ví dụ:
<?php session_start(); session_destroy(); ?>
Trích dẫn: (http://khonggiankythuat.com)