PHP 未设置会话变量

2022-08-30 09:28:35

我是一个新手程序员,所以我提前为任何明显的错误道歉。在过去的一周里,我花了一些时间创建一个产品数据库。我也有一点,我可以使用表单添加产品,查看所有添加的产品等。我一直在使用通过表单输入数据创建的会话。我正在努力包括让删除产品页面正常工作,我尝试使用unset来清除变量,但不能让它太工作。

设置会话变量的“添加产品”页面:

$_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.

任何朝着正确方向前进的点都将不胜感激!


答案 1

您可以使用以下命令取消设置会话变量:

  1. session_unset - 释放所有会话变量(对于较旧的已弃用代码,等于使用:)$_SESSION = array();
  2. unset($_SESSION['Products']);- 在会话变量中仅取消设置产品索引。(请记住:您必须像函数一样使用,而不是像以前那样使用)
  3. session_destroy — 销毁注册到会话的所有数据

要了解使用 和 之间的区别,请阅读此 SO 答案。这很有帮助。session_unsetsession_destroy


答案 2

Unset 是一个函数。因此,您必须提交必须销毁的变量。

unset($var);

在您的情况下

unset ($_SESSION["products"]);

如果您需要重置整个会话变量,只需调用

session_destroy ();

推荐