2016-06-02 19 views
15

Tôi là một lập trình viên noob vì vậy tôi xin lỗi trước vì bất kỳ sai lầm rõ ràng nào. Tôi đã dành cả tuần qua để tạo ra một điều cơ sở dữ liệu sản phẩm. Tôi đã có quá điểm mà tôi có thể thêm sản phẩm bằng cách sử dụng một hình thức, xem tất cả các sản phẩm được thêm vào vv Tôi đã sử dụng phiên được tạo ra thông qua các dữ liệu đầu vào hình thức. Tôi đang đấu tranh để bao gồm có được một trang sản phẩm xóa làm việc, tôi đã cố gắng bằng cách sử dụng unset để xóa biến nhưng không thể làm cho nó quá làm việc.PHP Unset Session Variable

Thanh Trang sản phẩm mà đặt biến session:

$_SESSION['Products'][] = $_POST; //is how i set the session on the add products page. 

unset $_SESSION['Products'][]; //is how i have tried to clear the session although it does not work. 

Bất kỳ thời điểm nào trong đúng hướng sẽ được đánh giá cao!

+3

'unset ($ _ SESSION [ 'Sản phẩm']); 'là đủ – Thamilan

+1

và để xóa session_unset sử dụng của session(); –

+0

Cho nó một chút suy nghĩ tôi nghĩ rằng tôi sẽ cần phải làm nhiều hơn là bỏ đặt biến phiên. Tôi sẽ cần xóa toàn bộ mảng cho sản phẩm đó khỏi trang danh sách sản phẩm của mình. My xấu – boothprod

Trả lời

25

Bạn có thể biến phiên unset sử dụng:

  1. session_unset - giải phóng tất cả các biến phiên (Đó là bằng cách sử dụng: $_SESSION = array();)
  2. unset($_SESSION['Products']); - index chỉ Sản phẩm Bỏ đặt trong biến session. (Ghi: Bạn phải sử dụng như một chức năng, không phải là bạn sử dụng)
  3. session_destroy - Phá hủy tất cả dữ liệu đăng ký một phiên

Để biết sự khác biệt giữa việc sử dụng session_unsetsession_destroy, đọc SO answer này. Những sự giúp đỡ đó.

2

Nếu bạn hoàn toàn muốn xóa phiên bạn có thể sử dụng này:

session_unset(); 
session_destroy(); 

Trên thực tế cả hai đều không cần thiết nhưng nó không bị tổn thương.

Nếu bạn chỉ muốn xóa một phần cụ thể tôi nghĩ rằng bạn cần này:

unset($_SESSION['Products']); 
//or 
$_SESSION['Products'] = ""; 

tùy thuộc vào những gì bạn cần.

1

unset là một hàm, không phải là toán tử. Sử dụng nó như unset($_SESSION['key']); để bỏ đặt khóa phiên đó. Tuy nhiên, bạn cũng có thể sử dụng session_destroy();. (Đảm bảo bắt đầu phiên với session_start();)

+0

'unset' là * không * một hàm, nhưng một ngôn ngữ xây dựng – PeeHaa

4

Unset là một hàm. Do đó bạn phải gửi biến nào đã bị hủy.

unset($var); 

Trong trường hợp của bạn

unset ($_SESSION["products"]); 

Nếu bạn cần phải thiết lập lại biến toàn phiên chỉ cần gọi

session_destroy(); 
+0

Nitpicking ở đây:' unset' là một cấu trúc ngôn ngữ và * not * a function. – PeeHaa

+0

Có. Nó là một cấu trúc ngôn ngữ. Nhưng bản thân hướng dẫn sử dụng php cũng không phân loại như một hàm xử lý biến. www.php.net/manual/en/ref.var.php. Bất kỳ cách nào tôi chỉ cần làm nổi bật thực tế là tên biến phải được chuyển cho nó. –

+0

Có nhưng sự khác biệt là có. Nó không phải là một chức năng. – PeeHaa

Các vấn đề liên quan