Куда должны помещаться PHP-файлы для includes и PHP-файлы для вызовов AJAX на сервере?

#php #ajax #server-side-includes

#php #ajax #серверная часть-включает

Вопрос:

У меня есть сайт, который использует ряд includes (для нижнего колонтитула, обработки электронной почты и т.д.). Я также использую AJAX, который вызывает определенный URL для загрузки данных. Я немного запутался относительно того, где эти файлы должны быть расположены на сервере. Я предполагаю, что по соображениям безопасности не рекомендуется делать файлы или пути общедоступными. Однако, когда я размещаю файлы за пределами моей папки public_html, простое использование «./filename» не работает.

ОБНОВЛЕНИЕ: Если я не укажу полный путь, включение не будет работать. Я получаю сообщение об ошибке при использовании следующего пути include:

 <?php include('../includes/footer.php');?>
  

Файл нижнего колонтитула расположен по следующему пути: home/user/php/includes/footer.php .

Мой сайт расположен по адресу: home/user /public_html/site.com/files

ОБНОВЛЕНИЕ 2: Я добавил новый include_path: «/home /user /php». Я изменил include на «includes/footer.php «. Теперь он работает должным образом.

Однако, если у кого-нибудь еще есть какие-либо мысли по моему первоначальному вопросу, я был бы признателен.

Ответ №1:

Похоже, у вас это может быть вне корня вашего документа.

Если ваш веб-сайт должен находиться в /home/ user / public_html (или аналогичном), попробуйте поместить папку includes в /home/user / public_html /includes и просто обратитесь к / includes

Да, есть аргумент в пользу отсутствия файлов в общедоступных областях, но если вы хорошо закодировали свои PHP-файлы, это не должно быть проблемой.

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

Ответ №2:

Если ваш сайт находится по адресу something / public_html, вы могли бы использовать папку something/include/footer.php

 include '../include/footer.php'
  

что касается includes, что касается того, куда вы помещаете свои ajax-файлы, я не думаю, что это так уж важно, люди могут просмотреть javascript, чтобы найти адрес в любом случае

Комментарии:

1. Спасибо, но я, должно быть, делаю что-то не так. Когда я использую весь путь, включение работает нормально. Но когда я использую предложенный вами метод, я получаю сообщение об ошибке. Файл находится по адресу user/includes/footer.php

2. @Ken для вашего примера используйте «include’ ../ ../php/includes/footer.php ‘; » поскольку вам нужно вернуться к двум папкам, чтобы связаться с пользователем, а затем ввести php / includes/

Ответ №3:

PHP-файлы, если они запрошены, сначала будут обработаны PHP. Таким образом, пользователь никогда не сможет получить фактический php-файл. Просто это вывод.