【问题标题】:Joomla session variable not found in a php在 php 中找不到 Joomla 会话变量
【发布时间】:2016-02-01 19:01:28
【问题描述】:

我正在文章中设置会话变量:

 $session->set('test' , 'testing' ); 

只要我停留在其他 Joomla 模块和文章中,我就可以毫无问题地阅读它。

$db = $session->get('test' , '' );

但是当我执行一个由 Javascript 中的 XMLHttpRequest 调用的 php(所有内容都在同一个文件夹中)时,它找不到会话变量并返回默认值。

我错过了什么?

【问题讨论】:

  • 如果你做 var_dump($_SESSION); 你会得到什么在你的 php 脚本中?只是想知道 joomla 是否正在调用其他变量(例如 jsession[test] ......)

标签: php session joomla


【解决方案1】:

如果您想将这些会话值声明为可以从 Joomla 中的任何位置读取的变量,您应该使用 setUserState 和 getUserState 方法。

例如,如果你想设置一个名为 test 的会话变量,你可以这样做:

$app = JFactory::getApplication();
$app->setUserState('test','my test value');

然后,如果您想在 Joomla 的其他任何地方调用它,只需使用 getUserState 将其设置为变量,如下所示:

$app = JFactory::getApplication();
$mySessionVariable = $app->getUserState('test');
echo $mySessionVariable;

这里是 Joomla 会话状态变量文档的链接: Joomla User State Variables

【讨论】:

  • 不起作用。看起来会话变量在我的 php.ini 中不可用。只要我严格在 Joomla 中(文章和模块中的所有 php)就可以了。但是当我从 Javascript 中调用 php 时,它们并不存在
  • 你能发布一些你想要调用它的javascript吗?
  • var sel = "/joomla/viewyourtariffs.php?ac=tarifffilter"; xmlhttp = 新的 XMLHttpRequest(); xmlhttp.open("GET", sel, false); xmlhttp.send(); respglob = xmlhttp.responseText;警报(respglob);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 2017-09-22
  • 2018-06-27
  • 2013-03-03
  • 1970-01-01
相关资源
最近更新 更多