我正在使用php中的webapp,并且我的会话仅在我的应用程序的某些视图中被销毁,我似乎无法找到原因。我无法在这里上传所有代码,因为有太多,所以我想知道什么可以破坏会话,我会寻找问题。 奇怪的是它发生在两个视图之间,例如它完全加载第一个视图没有问题(我在该视图的末尾检查了echo语句以确保它仍处于活动状态)当我点击链接时会话变量在加载下一个视图之前被销毁。
答案 0 :(得分:0)
您可以使用var notFoundInEvents = obCollection.Where(x => !(events.Any(o => o.Home == x.Home))).ToList();
foreach (var toBeRemoved in notFoundInEvents)
{
obCollection.Remove(toBeRemoved);
}
- 函数来销毁整个会话(以及所有session_destroy();
- 值)或者$_SESSION
- 函数可以按键销毁值如果unset
是一个数组。
答案 1 :(得分:0)
始终确保您以正确的方式使用session_start()
。在您使用会话的每个页面的顶部。会话一直在破坏,因为会话从未进行过。为了使其工作,请确保您已设置会话开始,如下例所示:
<?php
session_start(); // Be on top
?>
<!DOCTYPE html>
<!-- The rest of your page
我希望这会对你有所帮助
答案 2 :(得分:0)
如果仅在某个视图上发生,是否有任何会话未设置或会话销毁?也许你需要在具有那些视图(链接)的控制器上添加session_start()。 (另请阅读https://www.sitepoint.com/php-sessions/关于session_start部分)
答案 3 :(得分:0)
您可以销毁所有会话数组:
session_destroy();
或者只取消部分内容:
unset($_SESSION('your_thing']);
另一种方法是将数组的某些部分放空:
$_SESSION['your_thing'] ='';
一切都是正确的,但是如果你销毁了所有的会话,你必须在下一页设置session_start();如果你想使用会话,但你将丢失所有信息。
最好的方法是使用unset或清空数组......