Session php là gì

Một cách khác để làm dữ liệu có thể truy cập trên các trang khác nhau của toàn bộ một Website là sử dụng một PHP Session.

Một session tạo ra một file trong một thư mục tạm thời trên Server, nơi đã đăng kí các biến session và các giá trị của chúng được lưu trữ. Dữ liệu này sẽ có sẵn cho tất cả các trang trên site trong suốt quá trình truy cập trang đó.

Vị trí của file tạm thời được xác định bởi một cài đặt trong php.ini file được gọi là session.save_path. Trước khi sử dụng bất kì biến session nào, bạn phải chắc chắn rằng đã cài đặt đường dẫn này.

Khi một session bắt đầu, những điều sau sẽ xảy ra:

  • Đầu tiên, PHP tạo một định danh duy nhất cho session cụ thể đó, định danh này là chuỗi kí tự ngẫu nhiên của 32 số hexa, như 3c7foj34c3jj973hjkop2fc937e3443.
  • 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_. Ví dụ như: sess_3c7foj34c3jj973hjkop2fc937e3443.

Khi PHP script muốn lấy giá trị từ một biến session, PHP 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, Server sẽ chấm dứt session sau một thời gian đã định trước, thường là 30 phút.

Bắt đầu một PHP Session

PHP session rất đơn giản để bắt đầu bằng cách tạo một lời gọi đến hàm session_start(). Đầu tiên hàm này kiểm tra một session đã được bắt đầu hay chưa, nếu chưa thì nó sẽ bắt đầu một session. Lời gọi hàm session_start() này được đề nghị đặt ở đầu của trang.

Các biến session được lưu trữ trong mảng liên hợp là $_SESSION[]. Các biến này có thể được truy cập trong suốt vòng đời một session.

Ví dụ sau bắt đầu một session, sau đó đăng ký một biến có tên counter, được lượng gia mỗi khi trang được truy cập trong suốt vòng đời của nó.

Sử dụng isset() để kiểm tra biến session được thiết lập hay chưa.

Đặt đoạn code này vào test.php file và tải file này nhiều lần để xem kết quả:





   
      Thiết lập session trong PHP
   

   
      
   


Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả: (mình tải 5 lần và kết quả thu được là 5 lần)

Sessionphp là một công cụ rất mạnh mẽ giúp kết nối các phiên làm việc của người dùng phục vụ cho chức năng đăng nhập hệ thống, giỏ hàng…

Video hướng dẫn Session Php trong 40 phút miễn phí

Phiên làm việc là gì?

Phiên là một chu trình người dùng gửi yêu cầu lên server và được server hồi đáp. Sau khi server hồi đáp trả lại trang nó sẽ đóng kết nối. Vậy nên những phiên làm việc sau đó web server không thể kết nối các phiên làm việc với nhau để phục vụ công việc nào đó.

Ví dụ bên dưới chúng ta tiến hành kiểm tra $a,

  • Nếu $id chưa tồn tại sẽ gán giá trị cho nó là 1 và in nó lên màn hình.
  • Ngược lại, sẽ xuất lên màn hình
    0 (tăng giá trị của $a lên 1 đơn vị và xuất lên màn hình).

Sau khi chạy đoạn code trên nhiều lần thì kết quả vẫn chỉ xuất lên màn hình giá trị

2.

Điều này minh chứng một điều rằng theo mặc định thông thường các dữ liệu trên các phiên làm việc không kết nối với nhau.

Session là gì?

  • Session dùng theo dõi và kết nối giữa các phiên làm việc của người dùng
  • Thông tin của session được lưu trữ trong mảng hệ thống
    3
  • Session dùng để tạo các ứng dụng giỏ hàng, đăng nhập

Cách sử dụng Session

#1. Chuẩn bị

Để sử dụng session bạn cần thêm những hàm bên dưới giúp session khởi động để bắt đầu sử dụng.

#2. Lưu thông tin vào session

3 nó là một mảng toàn cục nên việc lưu thông tin thao tác như mảng thông thường.

$_SESSION[name] = value;

Ví dụ: Lưu id người dùng đã login vào session

Khi người dùng login vào hệ thống chúng ta muốn lưu lại id để phục vụ cho quá trình xử lý chương trình trong phiên làm việc của user bất kỳ. Để làm điều này bạn có thể lưu trữ đơn giản như bên dưới với giá trị

5

$_SESSION['id_login'] = 10;

#3. Cách lấy giá trị đã lưu trong Session

Sau khi lưu dữ liệu vào session tất nhiên chúng ta cần sử dụng nó phục vụ cho một công việc nào đó trong chương trình. Ví dụ như hiển thị tên người dùng đã đăng nhập, hiển thị danh sách sản phẩm đã mua trong giỏ hàng…

3 bản chất nó là mảng nên cách truy suất lấy thông tin bạn thực hiện theo cách thông thường.

Kết quả

10

#4. Cách hủy Session

Để hủy Session chúng ta có thể dùng một trong 2 hàm sau

  • 7: Hủy một phần của Session
  • 8: Hủy toàn bộ sesion trong hệ thống

Ví dụ: Hủy sesion của id login

unset($_SESSION['id_login']);

Tổng kết

Qua bài này bạn cần nhớ Session dùng để lưu dữ liệu trên nhiều phiên làm việc lại với nhau. Dữ liệu được lưu trữ trong biến toàn cục $_SESSION nó cũng là kiểu dữ liệu mảng nên cách thao tác như mảng thông thường.

Đây là một nội dung rất quan trọng trong quá trình xây dựng website có chức năng đăng nhập thành viên hoặc hệ thống web có giỏ hàng, giúp khách hàng có thể đặt hàng trực tiếp trên hệ thống.

Việc của bạn ngay bây giờ cần ghi chép lại những nội dung quan trọng và thực hành lại từng bước những thao tác trên Session để đảm bảo nắm chắc bài học.

Một session phiến trong PHP là gì?

Session (phiên) là một cách để lưu trữ thông tin (trong các biến) sẽ được sử dụng trên nhiều trang. Không giống như cookie, session không được lưu trữ trên máy tính của người dùng.

Session Destroy là gì?

- Hàm session_destroy(): Sẽ phá hủy tất cả dữ liệu được liên kết với phiên hiện tại. Nó không unset bất kỳ biến toàn cục nào được liên kết với phiên hoặc unset session cookie. - Hàm session_unset(): Nó chỉ xóa các biến từ sessionsession vẫn còn tồn tại.
Cookie chỉ thể lưu trữ kiểu dữ liệu string. Session được lưu trữ ở phía server. Cookie được lưu trữ ở phía client. Session được bảo mật vì nó được lưu trữ dạng nhị phân/dạng mã hóa được giải mã tại server.

Session_start () để làm gì?

Trong PHP, chúng ta sử dụng hàm session_start() để bắt đầu một session. Tất cả những dữ liệu trong session được lưu trữ bởi biến mảng $_SESSION . Trong ví dụ trên, chúng ta gọi hàm session_start() để bắt đầu một session. Sau đó, một số giá trị được lưu trong session bằng biến mảng $_SESSION.