Библиотека OpenId (включаемые файлы не найдены скриптом) - PullRequest
1 голос
/ 06 октября 2009

Я пытался внедрить функцию openid на мой сайт. Я скачал библиотеку JanRain.

Я извлек папку «Auth» в своем каталоге классов и, следуя примеру в папке «example», создал файл try_auth.php, finish_auth.php, common.php в каталоге include.

Теперь, когда я нажимаю на ссылку селектора openid, появляется сообщение об ошибке, в котором говорится, что файл openid.php не найден.

Этот файл присутствует в каталоге Auth.

Я исправил это, и затем мне предлагают другую ошибку, которая говорит, что 'Auth / Yadis / HTTPFetcher.php' не найден.

Если я сижу и изменяю требуемый путь индивидуально в каждом файле в папке auth, тогда это займет много времени.

Структура каталогов моих приложений выглядит следующим образом
приложение
занятия
Auth (библиотека openid)
конфигурации
элементы
включает в себя
просмотры
Webroot
index.php

Пожалуйста, помогите мне, что я делаю не так. Как настроить includepath, чтобы все файлы автоматически указывали соответствующие пути.

Спасибо

Ответы [ 4 ]

2 голосов
/ 06 октября 2009

как указано в документации (вы не упоминаете версию, поэтому я предполагаю, что вы используете 2.xx), каталог Auth/ в этом пакете должен быть в вашем PHP включить путь . Есть различных способов сделать это: php.ini, httpd.conf / .htaccess, ini_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"
1 голос
/ 06 октября 2009

Файлы там, вы просто не правильно указали путь.

Вы сказали, что это путь, по которому он ищет '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

EDIT:

Вам просто нужно добавить это в файл, который вы пытаетесь включить в ваш скрипт.

Пример:

ваш файл находится здесь: /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 голосов
/ 06 октября 2009

Сделайте getcwd , чтобы найти каталог, в котором вы находитесь, и сделайте соответствующий chdir ( s ) для решения вашей проблемы. Это грязное решение, но оно должно работать с минимальными усилиями.

0 голосов
/ 06 октября 2009

Вы можете установить путь включения с помощью вызова функции set_include_path (http://php.net/set_include_path), если это то, что вы спрашиваете ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...