Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session Joomla-取消设置多个会话变量不起作用_Session_Joomla - Fatal编程技术网

Session Joomla-取消设置多个会话变量不起作用

Session Joomla-取消设置多个会话变量不起作用,session,joomla,Session,Joomla,我以为这会很简单,但我想在某个地方有一个陷阱。。。 我正在为Joomla安装开发一个自定义的代码部分,我需要在执行代码之前取消设置一些会话变量。所以,很自然,我有 $session->clear('var1'); $session->clear('var2'); $session->clear('var3'); $session->clear('var4'); 但是页面完全空白,什么也没发生。有什么建议吗?假设您得到了如下$session变量: $session

我以为这会很简单,但我想在某个地方有一个陷阱。。。 我正在为Joomla安装开发一个自定义的代码部分,我需要在执行代码之前取消设置一些会话变量。所以,很自然,我有

$session->clear('var1'); 
$session->clear('var2'); 
$session->clear('var3'); 
$session->clear('var4'); 

但是页面完全空白,什么也没发生。有什么建议吗?

假设您得到了如下$session变量:

$session = JFactory::getSession();
$session->clear( 'var1', 'another_namespace' );
如果您得到的是一个空白页,那么您的代码中可能存在一些错误。您有权访问某种错误日志吗?如果不是,您可以尝试在不是生产环境的情况下强制显示代码中的错误(尽管这不是最好的方法),或者从joomla管理员处启用调试模式

您还可以尝试在浏览器中运行php文件,如果一切正常并且文件中没有解析错误,您应该会看到类似“受限访问”或类似的消息

此外,如果脚本没有崩溃,您可以检查每个$session->clear('xxx')调用返回的值(它应该返回您刚刚清除的值)

我想到的最后一件事是,您存储在会话中的变量位于不同的“上下文”中。当您向会话获取/设置数据时,您可以将“名称空间”作为附加参数传递,因此这些变量存储在该“名称空间”中(事实上,它存储在会话中的另一个索引中。因此,如果可能,您应该检查这些变量是否使用不同的“命名空间”存储在会话中:

如果是,则应按如下方式清除:

$session = JFactory::getSession();
$session->clear( 'var1', 'another_namespace' );
注意:我之所以说“namespace”,是因为Joomla在这些会话方法中使用了参数名,但不要与PHP名称空间混淆


我希望它能有所帮助!

假设您得到了如下$session变量:

$session = JFactory::getSession();
$session->clear( 'var1', 'another_namespace' );
如果您得到的是空白页,则可能是代码中出现了一些错误。您有权访问某种错误日志吗?如果没有,您可以尝试在不是生产环境的情况下强制显示代码中的错误(尽管这不是最好的方法),或者从joomla管理员处启用调试模式

您还可以尝试在浏览器中运行php文件,如果一切正常并且文件中没有解析错误,您应该会看到类似“受限访问”或类似的消息

此外,如果脚本没有崩溃,您可以检查每个$session->clear('xxx')调用返回的值(它应该返回您刚刚清除的值)

我想到的最后一件事是,您存储在会话中的变量位于不同的“上下文”中。当您向会话获取/设置数据时,您可以将“名称空间”作为附加参数传递,因此这些变量存储在该“名称空间”中(事实上,它存储在会话中的另一个索引中。因此,如果可能,您应该检查这些变量是否使用不同的“命名空间”存储在会话中:

如果是,则应按如下方式清除:

$session = JFactory::getSession();
$session->clear( 'var1', 'another_namespace' );
注意:我之所以说“namespace”,是因为Joomla在这些会话方法中使用了参数名,但不要与PHP名称空间混淆

我希望有帮助