PHP取消设置会话变量

新手上路,请多包涵

我是一个菜鸟程序员,所以我提前为任何明显的错误道歉。在过去的一周里,我一直在创建一个产品数据库。我也可以使用表单添加产品,查看添加的所有产品等。我正在使用通过表单输入数据创建的会话。我正在努力使删除产品页面正常工作,我尝试使用 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.

任何正确方向的点都将不胜感激!

原文由 bbowesbo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 479
2 个回答

您可以使用以下方法取消设置会话变量:

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

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

原文由 Thamilhan 发布,翻译遵循 CC BY-SA 4.0 许可协议

关于 unset 的所有答案都是正确的,但需要纠正一件事。如果您不使用 session_start() unset() 将永远无法工作。我建议这样做

session_start();
unset($_SESSION['productID']);

原文由 Unyime 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题