2012-02-13 3 views
0

Я новичок в php и пытаюсь сделать контактную форму.Php include issue

В моем файле contact.php я включаю Mail.php из почтового почтового пакета (я скопировал Mail.php и его папку Mail в свой корень, потому что у меня нет доступа ssh, чтобы установить это напрямую).

Теперь в моем PHP я ставлю это:

<?php 
if([email protected]_exists('./Mail.php')) { 
    echo 'can not include'; 
} else { 
    include('./Mail.php'); 
} 
//rest of the code 
?> 

По неизвестной причине, я получаю это:

The website encountered an error while retrieving http://example.com/contact.php. It may be down for maintenance or configured incorrectly. 
Here are some suggestions: 
Reload this webpage later. 
HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request. 
  • example.com заменен, чтобы скрыть мой хозяин

Если я прокомментирую заявление, то ошибка больше не возникает ... Я не понимаю ЧТО Я делаю wr ong ... Я уверен, что Mail.php находится в одном корневом каталоге с моим файлом contact.php.

+1

Проверьте журнал ошибок сервера. Скорее всего, будет более подробно о сообщении об ошибке 500. Материал, который вы видите в браузере, преднамеренно неопределен, поскольку 500 ошибок могут выявить критические внутренние данные, которые должны оставаться закрытыми. –

+0

Возможно, попробуйте использовать require_once вместо include и посмотреть, что произойдет? – Giannis

ответ

2

Попытайтесь посетить Mail.php directl, у вас могут быть включены некоторые выпуски Apache, что покажет проблему.

Другие проблемы могут быть из-за разрешения/собственность и т.д.

информации

Некоторых отладок на это поможет.

0

Похоже, вы не включая файл правильно:

<?php 
if([email protected]_exists('./Mail.php')) { 
    echo 'can not include'; 
} else { 
    include('./Mail.php'); 
} 
//rest of the code 
?> 

Использование ../ смотреть рекурсивно, т.е. в папке на один уровень вверх для mail.php.

код следует читать:

include('../Mail.php') 
1

С включают, он пытается импортировать требуемый файл. Если это не удается, оно продолжается, только генерируя предупреждение. Поскольку вы получаете фатальную ошибку с линией включения, которая уходит, когда вы закомментируете включение, это должно означать, что Mail.php включен в комплект, но в нем есть ошибка. Я бы посоветовал вам проверить ваш журнал ошибок, чтобы узнать, что не так с Mail.php. @Mikhail может быть на что-то, вы можете узнать, что ваша ошибка, посетив Mail.php.

Кроме того, если я правильно понимаю, что Mail.php находится в же папке с файлом PHP вы показали выше, то вам не нужно использовать include('./Mail.php'). include('Mail.php') должен работать так же хорошо.