Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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

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
Php jimport不在Joomla 1.5工作_Php_Joomla_Joomla1.5 - Fatal编程技术网

Php jimport不在Joomla 1.5工作

Php jimport不在Joomla 1.5工作,php,joomla,joomla1.5,Php,Joomla,Joomla1.5,我已经在Joomla 1.5中下载了一些openId的示例代码。我正在学习Joomla的东西,并重新学习一些PHP的东西。所以我对整个内容管理器的世界基本上是非常陌生的。我正在尝试使用openid制作一个用于身份验证的小插件,但它似乎是错的 我已经在eclipse中成功调试了该项目,并发现错误来自我的jimport class plgAuthenticationOpenId extends JPlugin{ /** * OpenId Atributes. */

我已经在Joomla 1.5中下载了一些openId的示例代码。我正在学习Joomla的东西,并重新学习一些PHP的东西。所以我对整个内容管理器的世界基本上是非常陌生的。我正在尝试使用openid制作一个用于身份验证的小插件,但它似乎是错的

我已经在eclipse中成功调试了该项目,并发现错误来自我的jimport

class plgAuthenticationOpenId extends JPlugin{
    /**
     * OpenId Atributes.
     */
    private static $attribute;

    private static $proxyHost;
    private static $proxyPort;
    private static $proxyUser;
    private static $proxyPassword;
    private static $appId;
    private static $appPassword;


function plgAuthenticationOpenId(& $subject, $config){
        parent::__construct($subject, $config);


         plgAuthenticationOpenId::$appId=$this->params->get('userKey', '');
         plgAuthenticationOpenId::$appPassword = $this->params->get('apiKey', '');

        define('Auth_OpenID_RAND_SOURCE', null);

        jimport('openid.consumer'); 
        jimport('openid.Auth.OpenID.AX');

        //Basic Attributes
        plgAuthenticationOpenId::$attribute = array();

        //more code messing with plgAuthenticationOpenId [...]
我试着把库放在php包含路径中,把它放在PEAR路径中,我试过一次所需的_(它在那里而不是在jimport中停止),我试着jimport整个路径,并试着直接使用include。我还定义了目录分隔符和JPATH_基。似乎什么都不管用

我认为这应该有一个非常简单的解决方案,因为我复制/粘贴了代码(不是自己创建的),并且是一个简单的jimport。但不管怎样,我对这件事还是很陌生。所以,请帮帮我


非常感谢。

问题在于
jimport('openid.consumer')已更改
包含路径

这里有一个测试来证明这一点

<?php
// I executed code below in the view to obtain output
var_dump(ini_get('include_path'));
jimport('openid.consumer');
jimport('openid.Auth.OpenID.AX');
var_dump(ini_get('include_path'));

// OUTPUT
string '.:/opt/lampp/lib/php' (length=20)
string '/opt/lampp/htdocs/promark_eblaster/libraries/openid/.:/opt/lampp/lib/php' (length=72)
?>

如您所见,include_路径已更改

您可以尝试以下解决方法

<?php 
// Remember the Original Path
$oldPath = ini_get('include_path');

// Include OpenID Stuff
jimport('openid.consumer');
jimport('openid.Auth.OpenID.AX');

// Set back the include_path so Joomla can import files with old include path
ini_set('include_path', $oldPath);

// Check if Success
JFactory::getApplication()->enqueueMessage("Hellow World");

// The rest of your code...
?>


感谢您的回复。但我看不到如何修改代码使其工作。我已经输出了include_路径(它在我的xampp中的php/PEAR中),我在php.ini中将它更改为项目的Joomla库文件夹。我已将openid文件夹复制/粘贴到PEAR路径,它位于我的Joomla库文件夹中。两者都不起作用。谢谢你的帮助!:)由于
jimport('openid.cunsumer')
第一次更改include路径后,这对Joomla不好。解决方案很简单,在
jimport('openid.consumer')之后
jimport('openid.Auth.openid.AX')将包含路径更改为旧路径。基本上是重复使用我发布的代码。我必须道歉。我没有正确地解释我自己。我的问题是,当它执行指令jimport('openid.consumer')时,代码中断。它并没有改变我的include_路径,因为它只是在那个指令之后没有做任何事情。真的很奇怪。在
jimport('openid.*****')
常规
jimport('joomla.**')
崩溃后,我测试了这段代码,出现了许多无法打开流的错误。包括openid将改变您的路径,请查看
库/openid/consumer.php
。试着用我在变通方法中建议的方式包装
jimport('openid.**')
它对我很有用。。。如果出于某种原因,它不起作用,请尝试将
jimport
移动到类之外(有和没有include\u路径变通方法),因此我已经调试了更多,我的错,应该先这样做,并找到一条很长的路。首先,我查找consuer.php,它将我引导到Consumer.php(在一个必需的_once指令中),然后我通过OpenId、PlainHTTPFetcher、HTTPFetcher,最后是BigMath.php,在这里我有一个小if(@dl($module.“.php_SHLIB_后缀))(第383行)。