OpenId库(脚本找不到包含文件)

时间:2009-10-06 12:04:00

标签: php openid

我一直在尝试在我的网站中实现openid功能。我下载了JanRain的图书馆。

我解析了classes目录中的'Auth'文件夹,并按照'example'文件夹中的示例创建了include目录中的try_auth.php,finish_auth.php,common.php文件。

现在,当我点击openid选择器链接时,系统会显示一条错误消息,指出未找到“openid.php”文件。

此文件存在于Auth目录中。

我纠正了它,然后我遇到了一个不同的错误,上面写着'Auth / Yadis / HTTPFetcher.php'。

如果我坐在auth文件夹中的每个文件中单独更改require路径,则需要很长时间。

我的apps目录结构就像这样 app
班级 Auth(openid库)
配置
元素
包括
意见
Webroot公司
的index.php

请帮助我,我做错了什么。如何设置包含路径,以便所有文件自动采用各自的路径。

由于

4 个答案:

答案 0 :(得分:2)

as the documentation states(你没有提到版本,所以我假设你使用的是2.xx),这个包中的Auth/目录必须在你的PHP include path中。 php.inihttpd.conf / .htaccessini_set(),... {{}} {}}您的应用目录为php.ini,它看起来像是:

/path/to/your/app

答案 1 :(得分:1)

文件在那里你只是没有正确设置路径。

你说这是它正在寻找'Auth / Yadis / HTTPFetcher.php'的路径 您可能需要添加完整路径,如下所示:

/var/www/html/whaterver/Auth/Yadis/HTTPFetcher.php

/this/is/where/you/put/the/path/to/the/file/Auth/Yadis/HTTPFetcher.php

只需执行此命令即可找到基本路径并将其附加到文件路径

echo `pwd`;

注意:这些是反引号而不是pwd命令的单引号

编辑:

您只需将此添加到您尝试包含在脚本中的文件中。

实施例

您的文件位于:/var/www/html/index.php

你需要在这里包含这个文件:/classes/package/files.php

此文件:/classes/package/files.php知道包中的所有其他文件的位置,因此无需编辑其中任何文件。

但你需要编辑/var/www/html/index.php文件并添加一些内容:

include('/var/www/html/classes/packages/files.php');

一旦你的脚本中有这个,它应该知道其他所有的东西。

或者@ax已经声明这看起来像是一个php.ini配置

希望这有帮助

答案 2 :(得分:0)

您可以使用set_include_path函数调用(http://php.net/set_include_path)设置包含路径,如果这就是您所要求的...

答案 3 :(得分:0)

执行 getcwd 以查找您所在的目录并进行适当的 chdir s )以解决您的问题。这是一个肮脏的解决方案,但它应该以最小的努力工作。