Session Joomla定制模块oop php isn';行不通

Session Joomla定制模块oop php isn';行不通,session,joomla,joomla2.5,Session,Joomla,Joomla2.5,我试图让会话变量使用它们的会话代码与Joomla一起工作,因为php的会话不起作用。但是,我在试图访问joomla自定义代码模块编辑器中的会话变量时遇到了一个问题。当我尝试使用以下代码访问会话变量时: define( '_JEXEC', 1 ); define('JPATH_BASE', "../"); define( 'DS', DIRECTORY_SEPARATOR ); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );

我试图让会话变量使用它们的会话代码与Joomla一起工作,因为php的会话不起作用。但是,我在试图访问joomla自定义代码模块编辑器中的会话变量时遇到了一个问题。当我尝试使用以下代码访问会话变量时:

define( '_JEXEC', 1 );
define('JPATH_BASE', "../");
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
$session = JFactory::getSession();
$print $session->get('status');
我什么也得不到。如果我把同样的代码粘贴到它自己的php文件中,我就可以很好地得到状态变量。当我查看Joomla preview的纯文本版本时,我看到:

get('status'); ?>
做一些测试,我认为它与'->'操作数有关。以前有没有人遇到过这种情况,并且知道如何修复它?我正在运行DirectPHP,可以打印出模块fwiw中的字符串和其他变量

  • 如果不安装支持PHP(或Javascript!)的插件,就无法在Joomla文章中运行PHP(或Javascript!)。我建议使用:
  • $print
    更改为
    print
  • 尝试注释掉前面的所有行,看看是否有一个“包含”将页面弄乱了:

    /*define( '_JEXEC', 1 );
    define('JPATH_BASE', "../");
    define( 'DS', DIRECTORY_SEPARATOR );
    require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
    require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
    require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
    */
    $session = JFactory::getSession();
    print $session->get('status');
    

    是的,我有它的插件。javascript和php运行良好,没有上述问题。$print是一个疏忽,经过修复后仍然不起作用。谢谢。@AustinMunro它也可以是包含的文件之一。请参阅我答案中的更新。它不是任何包含或定义。这些是joomla会话工作所必需的,我在服务器上有一个单独的php文件(不是定制的joomla模块),它可以毫无问题地利用这些文件。如果您在屏幕上看到的只是
    get('status');?>
    表示
    print$session->get('status')的解释不正确。我将尝试像我的示例中那样标记代码,并在
    getSession()
    之前和之后添加
    echo
    ,以查看失败的来源。如果在初始化“$session=JFactory::getSession();”之前进行echo它打破了这一页。如果我在它之后回显,仍然显示“get('status');?>”在所见即所得编辑器的非源代码视图中。值得注意的是,如果我将会话设置在页面本身中,然后对其进行回显,则打印效果良好。如果我删除设置,它仍然会回显,因此它肯定存储了会话变量。问题是,我需要从一个用于ajax调用的php文件中设置会话变量,设置后,echo不会回显该会话变量。