什么可以破坏$\u会话变量php?
我正在用php开发一个webapp,我的会话只在应用程序的某些视图上被破坏,我似乎不知道为什么。我不能在这里上传所有代码,因为代码太多了,所以我想知道什么会破坏会话,我会查找问题。什么可以破坏$\u会话变量php?,php,session,model-view-controller,Php,Session,Model View Controller,我正在用php开发一个webapp,我的会话只在应用程序的某些视图上被破坏,我似乎不知道为什么。我不能在这里上传所有代码,因为代码太多了,所以我想知道什么会破坏会话,我会查找问题。 奇怪的是,它发生在两个视图之间,例如,它完全加载第一个视图,没有问题(我在该视图末尾使用echo语句检查,以确保它仍然处于活动状态),当我单击链接时,会话变量在加载下一个视图之前被销毁 您可以使用会话_destroy()-函数销毁整个会话(以及所有的$\u会话-值),或者您可以使用unset-函数按键销毁值,就像$\
奇怪的是,它发生在两个视图之间,例如,它完全加载第一个视图,没有问题(我在该视图末尾使用echo语句检查,以确保它仍然处于活动状态),当我单击链接时,会话变量在加载下一个视图之前被销毁 您可以使用
会话_destroy()
-函数销毁整个会话(以及所有的$\u会话
-值),或者您可以使用unset
-函数按键销毁值,就像$\u会话
是一个数组一样。始终确保正确使用会话
启动()。在您使用会话的每个页面的顶部。会话一直在销毁,因为从未进行过会话。要使其正常工作,请确保已按以下示例设置会话启动:
<?php
session_start(); // Be on top
?>
<!DOCTYPE html>
<!-- The rest of your page
如果它只发生在特定视图上,是否有任何会话未设置或会话破坏?也许您需要在具有这些视图(链接)的控制器上添加会话_start()。(另请阅读关于会话\u开始部分)您可以销毁所有会话阵列:
session_destroy()代码>
或仅取消设置某些部分:
unset($_SESSION('your_thing']);
另一种方法是将数组的某些部分清空:
$_SESSION['your_thing'] ='';
所有操作都是正确的,但如果您销毁了所有会话,则必须在下一页设置会话_start();如果您想使用会话,但会丢失所有信息
最好的方法是使用unset或清空数组…您是否使用session_start()在每个页面上启动了会话代码>?是,如果要加载页面,则必须调用控制器的构造函数