2010-09-19 2 views
0

Моим PHP не может найти mail.phpPEAR для отправки электронной почты из PHP скрипта с помощью удаленного сервера с аутентификацией SMTP

Я установил пакет PEAR в директории с именем pear_admin Я обеспеченным все в этой директории с .htaccess и .htpasswd Когда я перехожу на mysite.com/pear_admin/index.php, он запрашивает мое имя пользователя и пароль. Это работает, и я могу видеть и использовать управление пакетами PEAR Я установил пакет Mail. Я создал файл php5.ini и поместил его в свою корневую папку. Когда я нажимаю кнопку «Отправить» на моей странице контакта, файл PHP находит php5.ini Но тогда все идет не так.

Не удается найти mail.php Это во вновь созданной директории. Это отличается от того, где находится страница моего контакта. php5.ini должен решить эту проблему. Путь в php5.ini является include_path =.:/USR/местные/php5/Библиотека/PHP:/Главная/Содержание/91/5799191/html/МойВебСайт/pear_admin/PEAR

Я попытался котировки, а также include_path = ".:/usr/local/php5/lib/php:/home/content/91/5799191/html/mywebsite/pear_admin/PEAR"

Я не уверен, есть ли какие-либо другие решения I надо попробовать. Не думаю, что я сделал что-то неправильно, когда установил пакет Mail. Это всего лишь одним нажатием кнопки.

Возможно, это PHP Я пробовал оба require_once «Mail.php»; и включают («Mail.php»);

Возможно, это потому, что я закрепил его .htpasswd Это то, что я не понимаю. Как он может получить доступ к этому файлу, когда я не даю ему имя пользователя и пароль на моем PHP? Разве я не должен этого делать? Если да, то как?

спасибо.

ответ

0

Вы сбиваете с толку, как работает защита .htpasswd. PHP уже выполняет на сервере, и НЕ проходит через веб-сервер, чтобы включить внешние файлы. Он может просто получить к ним доступ напрямую - в конце концов, они находятся на одной машине.

Конечно, если вы используете что-то, что делает HTTP-запрос (CURL, file_get_contents с абсолютным URL-адресом и т. Д.), Тогда эти пользователи будут проходить через веб-сервер и будут защищены защитой паролем.

Вы сказали, что делаете include('Mail.php'), но скажите, что вы установили mail.php. Помните, что на серверах на основе Unix есть файловые системы, чувствительные к регистру, и Mail.php - это совершенно другой файл, кроме mail.php. То же самое касается вашего пути включения. Если вы установите что-то в /tmp/FOO, но попытайтесь получить к нему доступ через /tmp/foo, это не сработает.

+0

Я использую относительный URL-адрес, но он находится в другом каталоге. Не подкаталог. Если я это правильно понимаю, это не должно меняться, это правильно? – Kris

+0

Вы правы в том, что эти 2 файла отличаются друг от друга. Виноват. Я установил пакет Mail, и мне нужен Mail.php. Там также файл mail.php, но это не тот, который мне нужен. Он все еще не работает. Может быть, я не должен использовать php5.ini Возможно, мне стоит попробовать установить PEAR в том же каталоге, что и моя страница контактов. – Kris

+0

Ошибка, которую я получаю, - include_path =.:/Usr/local/php5/lib/php:/home/content/95/5788391/html/mywebsite/pear_admin/PEAR/Mail/ Предупреждение: include (Mail.php) [функция.include]: не удалось открыть поток: нет такого файла или каталога в /home/content/95/5788391/html/mywebsite/form.php в строке 64 – Kris

Смежные вопросы