2009-10-06 32 views
1

我一直在尝试在我的网站中实现openid功能。我下载了JanRain的图书馆。OpenId库(包含文件未找到脚本)

我在我的classes目录下抽取了'Auth'文件夹,并在'example'文件夹下面的示例中创建了包含目录中的try_auth.php,finish_auth.php,common.php文件。

现在,当我点击openid选择器链接时,出现一个错误消息,显示'openid.php'文件未找到。

该文件存在于Auth目录中。

我纠正了它,然后出现一个不同的错误,提示'Auth/Yadis/HTTPFetcher.php'找不到。

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

我的应用程序的目录结构是这样的
应用
   类
         验证(OpenID库)
   配置
   元件
   包括
   意见
   根目录
   的index.php

请帮我我在做什么错。如何设置includepath以便所有文件自动采用各自的路径。

感谢

回答

2

as the documentation states(你不提一个版本,所以我假设你正在使用2.xx的),此包中的Auth/目录必须位于您的PHP include path中。有various ways做到这一点:php.inihttpd.conf/.htaccessini_set(),...如果你在php.ini做到这一点,你的应用程序目录是/path/to/your/app,它看起来就像是:

; UNIX: "/path1:/path2" 
include_path = ".:/php/includes:/path/to/your/app/classes" 
; 
; Windows: "\path1;\path2" or "c:/path1;c:/path2" 
;include_path = ".;c:/php/includes;c:/path/to/your/app/classes" 
+0

:-) 谢谢斧先生 我认为你的解决方案似乎是一个有效的,将尽快尝试。 感谢您的帮助。我很感激。 – 2009-10-07 06:04:49

0

做一个GETCWD找到你在目录并使适当的chdirs)来解决您的问题。这是一个肮脏的解决方案,但它应该以最小的努力工作。

+0

我会那样做已经能够解决我的问题了。 :-) – 2009-10-06 12:13:08

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配置

希望这有助于

+0

感谢您的回答。 :-D 亲爱的, 'Auth'文件夹中有大约40个文件。你仍然希望我为每个文件都做这件事。? 如果我这样做,那将需要很长时间。我敢打赌,这是一个更好的解决方案。不是吗?? – 2009-10-06 12:25:42

+0

对于每个文件,除了包含脚本文件的文件外,不需要其他文件。 – 2009-10-06 12:47:22