Thêm giá trị vào phiên PHP

Để lưu trữ thông tin có thể truy cập trên các trang web, chúng tôi sử dụng phiên. Phiên không được lưu trữ trên trình duyệt người dùng như Cookies, do đó, đây là tùy chọn an toàn hơn

Như chúng ta biết HTTP là một giao thức phi trạng thái, nếu người dùng truy cập một trang web và thực hiện một số hành động, không có cách nào để nhớ những gì anh ta đã làm khi người dùng điều hướng đến trang web tiếp theo

Hãy lấy một ví dụ thực tế, khi bạn đăng nhập vào tài khoản facebook của mình, bằng cách cung cấp địa chỉ email và mật khẩu của bạn, cho đến khi và trừ khi bạn đăng xuất, ứng dụng web sẽ nhớ bạn là ai và hiển thị những gì bạn bè của bạn đăng và thích trên News Feed của bạn, bạn

Khi người dùng đăng nhập vào tài khoản của họ trên bất kỳ ứng dụng web nào, một phiên sẽ được tạo cho họ và trong phiên đó, tên người dùng hoặc tên người dùng của họ hoặc một số mã định danh duy nhất khác được lưu trữ, sau đó được sử dụng trên các trang web liên tiếp để hiển thị thông tin dành riêng cho người dùng đó. Khi đăng xuất, phiên bị hủy

Phiên không bị giới hạn bởi bất kỳ giới hạn kích thước nào, bạn có thể lưu trữ bất kỳ thông tin nào trong phiên, bất kể kích thước của nó

Trước khi chúng ta chuyển sang cách bắt đầu, cập nhật và kết thúc một phiên trong PHP, hãy tìm hiểu một vài cách sử dụng phiên trong thế giới thực


Sử dụng phiên trong thế giới thực

  1. Các ứng dụng web yêu cầu người dùng đăng nhập, sử dụng phiên để lưu trữ thông tin người dùng, để thông tin liên quan đến mọi trang web có thể được hiển thị cho người dùng
  2. Trong các trang web Thương mại điện tử, giỏ hàng thường được hỏi như một phần của phiên

Tôi hy vọng điều này cung cấp cho bạn ý tưởng về cách bạn có thể sử dụng phiên trong ứng dụng web của mình



Bắt đầu một phiên trong PHP

Trong PHP chúng ta có thể bắt đầu một phiên làm việc bằng cách sử dụng hàm session_start(). Và dữ liệu được lưu trữ trong phiên sử dụng biến phiên, có thể được gán các giá trị khác nhau bằng biến toàn cục $_SESSION

Nói một cách đơn giản hơn, bằng cách sử dụng hàm session_start(), chúng tôi khởi tạo phiên, trong đó chúng tôi có thể lưu trữ thông tin bằng biến phiên $_SESSION

Hãy lấy một ví dụ, bên dưới chúng tôi có một trang web có tệp Php tên là first_page. php




    
    
    
    
    Go to Second Page
    
    

GHI CHÚ. Hàm session_start() phải là câu lệnh đầu tiên của trang, trước bất kỳ thẻ HTML nào


Nhận các giá trị biến phiên PHP

Trong đoạn mã trên, chúng tôi đã bắt đầu một phiên và đặt hai biến phiên. Trang web trên cũng sẽ có liên kết để điều hướng đến Trang thứ hai second_page. php

Dưới đây là mã cho second_page. php, trong đó chúng tôi tìm nạp các giá trị từ biến phiên được đặt trong trang đầu tiên. php




    
    
    ";
    echo "User id is: ".$userid;
    ?>
    
    

Tên người dùng là. iamabhishek Id người dùng là. 1

Chắc hẳn bạn đang nghĩ, tại sao chúng tôi lại sử dụng session_start() ở đây mặc dù chúng tôi không đặt bất kỳ giá trị mới nào trong biến phiên

Hàm session_start() được sử dụng để khởi tạo phiên mới và tìm nạp phiên đang diễn ra (nếu đã bắt đầu), sau đó, sử dụng biến toàn cục $_SESSION, chúng ta có thể đặt giá trị mới vào phiên hoặc lấy giá trị đã lưu

Nếu có quá nhiều giá trị được lưu trữ trong phiên và bạn không biết mình muốn lấy giá trị nào, bạn có thể sử dụng mã bên dưới để in tất cả dữ liệu biến phiên hiện tại




    
    
    
    
    

Mảng ( [tên người dùng] => iamabhishek, [userid] => 1)


Cập nhật biến phiên trong PHP

Để cập nhật bất kỳ giá trị nào được lưu trữ trong biến phiên, hãy bắt đầu phiên bằng cách gọi hàm session_start() và sau đó chỉ cần ghi đè lên vakue để cập nhật biến phiên




    
    
    ";
    echo "User id is: ".$userid;
    ?>
    
    

Tên người dùng là. iamabhishek Id người dùng là. 1111

Chúng tôi vừa cập nhật giá trị của userid trong biến phiên từ 1 đến 1111


Hủy phiên trong PHP

Để làm sạch biến phiên hoặc xóa tất cả các giá trị được lưu trữ khỏi biến phiên, chúng ta có thể sử dụng hàm




    
    
    ";
    echo "User id is: ".$userid;
    ?>
    
    
4 và để hủy phiên, chúng ta sử dụng hàm



    
    
    ";
    echo "User id is: ".$userid;
    ?>
    
    
5




    
    
    
    
    

Chúng tôi sử dụng các chức năng này trên các trang như đăng xuất hoặc thanh toán trong trường hợp trang web Thương mại điện tử để xóa biến phiên khỏi dữ liệu cụ thể của người dùng và cuối cùng là hủy phiên hiện tại

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

Một phiên tạo một tệp trong một thư mục tạm thời trên máy chủ nơi các biến phiên đã đăng ký và 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 trang web trong lần truy cập đó

Vị trí của tệp tạm thời được xác định bởi cài đặt trong tệp php. ini được gọi là phiên. Lưu đường dẫn. Trước khi sử dụng bất kỳ biến phiên nào, hãy đảm bảo rằng bạn đã thiết lập đường dẫn này

Khi một phiên được bắt đầu, những điều sau đây sẽ xảy ra -

  • Trước tiên, PHP tạo một mã định danh duy nhất cho phiên cụ thể đó là một chuỗi ngẫu nhiên gồm 32 số thập lục phân, chẳng hạn như 3c7foj34c3jj973hjkop2fc937e3443

  • Cookie có tên PHPSESSID được tự động gửi đến máy tính của người dùng để lưu trữ chuỗi nhận dạng phiên duy nhất

  • Một tệp được tạo tự động trên máy chủ trong thư mục tạm thời được chỉ định và mang tên của mã định danh duy nhất có tiền tố là sess_ tức là sess_3c7foj34c3jj973hjkop2fc937e3443

Khi một tập lệnh PHP muốn truy xuất giá trị từ một biến phiên, PHP sẽ tự động lấy chuỗi mã định danh phiên duy nhất từ ​​cookie PHPSESSID và sau đó tìm trong thư mục tạm thời của nó để tìm tệp mang tên đó và có thể thực hiện xác thực bằng cách so sánh cả hai giá trị

Một phiên kết thúc khi người dùng mất trình duyệt hoặc sau khi rời khỏi trang web, máy chủ sẽ kết thúc phiên sau một khoảng thời gian định trước, thường là 30 phút

Bắt đầu một phiên PHP

Một phiên PHP có thể dễ dàng bắt đầu bằng cách gọi hàm session_start(). Trước tiên, chức năng này kiểm tra xem một phiên đã bắt đầu chưa và nếu chưa có phiên nào bắt đầu thì nó sẽ bắt đầu một phiên. Bạn nên gọi hàm session_start() ở đầu trang

Các biến phiên được lưu trữ trong mảng kết hợp có tên $_SESSION[]. Các biến này có thể được truy cập trong suốt thời gian tồn tại của phiên

Ví dụ sau bắt đầu một phiên, sau đó đăng ký một biến có tên là bộ đếm được tăng lên mỗi khi trang được truy cập trong phiên

Sử dụng hàm isset() để kiểm tra xem biến phiên đã được đặt hay chưa

Đặt mã này trong một bài kiểm tra. php và tải tệp này nhiều lần để xem kết quả –



   
   
      Setting up a PHP session
   
   
   
      
   
   

Nó sẽ tạo ra kết quả sau -

________số 8_______

Phá hủy phiên PHP

Phiên PHP có thể bị hủy bởi hàm session_destroy(). Hàm này không cần bất kỳ đối số nào và một lệnh gọi có thể hủy tất cả các biến phiên. Nếu bạn muốn hủy một biến phiên thì bạn có thể sử dụng hàm unset() để hủy đặt một biến phiên

Đây là ví dụ để hủy đặt một biến duy nhất -

Đây là cuộc gọi sẽ hủy tất cả các biến phiên -

Bật phiên tự động

Bạn không cần gọi hàm start_session() để bắt đầu phiên khi người dùng truy cập trang web của bạn nếu bạn có thể đặt phiên. biến auto_start thành 1 trong php. tập tin ini

Có thể xảy ra trường hợp người dùng không cho phép lưu trữ cookie trên máy của họ. Vì vậy, có một phương pháp khác để gửi ID phiên tới trình duyệt

Ngoài ra, bạn có thể sử dụng hằng số SID được xác định nếu phiên bắt đầu. Nếu khách hàng không gửi cookie phiên thích hợp, nó sẽ có dạng session_name=session_id. Mặt khác, nó mở rộng thành một chuỗi rỗng. Do đó, bạn có thể nhúng nó vô điều kiện vào các URL

Ví dụ sau minh họa cách đăng ký một biến và cách liên kết chính xác đến một trang khác bằng SID

Làm cách nào để thêm giá trị vào phiên trong PHP?

Để đặt biến phiên, bạn có thể sử dụng biến mảng toàn cục có tên là $_SESSION[] . Sau đó, máy chủ có thể truy cập các biến toàn cầu này cho đến khi kết thúc phiên. Bây giờ bạn đã biết phiên trong PHP là gì và cách bắt đầu một phiên, đã đến lúc xem một ví dụ và xem nó hoạt động như thế nào.

Làm cách nào để thêm giá trị vào mảng phiên trong PHP?

Chúng ta có thể thêm các phần tử vào đó bằng hàm Array_push() . array_push($_SESSION[cart],$prod_id); . $_SESSION[cart]=array_diff($_SESSION[cart],$prod_id);

Làm cách nào để cập nhật giá trị phiên trong PHP?

Cập nhật biến phiên trong PHP . start the session by calling session_start() function and then simply overwrite the vakue to update session variable.

Làm cách nào để lưu trữ biến trong phiên trong PHP?

Các biến phiên được lưu trữ trong mảng kết hợp có tên là $_SESSION[] . Các biến này có thể được truy cập trong suốt thời gian tồn tại của phiên. Ví dụ sau bắt đầu một phiên, sau đó đăng ký một biến có tên là bộ đếm được tăng lên mỗi khi trang được truy cập trong phiên.