2014-11-01 9 views
0
Быстрое решение (спасибо Tom's Answer, прочитайте его для полного объяснения): создайте новый php-файл в каталоге webroot; скажем, temp.php. Оттуда используйте include или request для вызова файла test.php, который находится за пределами webroot.
index.html -> temp.php -> test.php
- Я использую javascript для перехода к temp.php, но href также можно использовать.
- В temp.php я использовал: include dirname (__ FILE__). '/../test.php';
- И все, у test.php невозможно получить доступ напрямую по URL-адресу. Если вы хотите перейти в файл внутри webroot извне, используйте что-то вроде: header ("location:". Dirname (__ FILE __). '/ ../wwwroot/index.php'); См: http://stackoverflow.com/questions/13550471/php-include-file-in-webroot-from-file-outside-webroot, где я нашел FILE/DIR питания

Оригинал Проблема:
У меня есть веб-сайт, размещенный на Arvixe (Windows Hosting, а не Linux).
В моем доменном каталоге у меня есть файл test.php и папка wwwroot.
Внутри папки wwwroot у меня есть файл index.html.
Вызов файла PHP за пределами папки wwwroot (хост Windows, Arvixe)

Из файла index.html мне просто нужна простая ссылка/кнопка, вызывающая файл test.php. Я не хочу, чтобы у пользователей был прямой доступ к URL-адресу в php-файл (поэтому я помещал его вне корневого каталога), но я хочу, чтобы другие файлы, такие как index.html, обращались к нему. Я пробовал файлы web.config и .user.ini для обеспечения безопасности (которые не работают), но я считаю, что если это работает, тогда безопасность должна быть прекрасной.

  • Я попытался HREF = "../ test.php", и он не работает (404 - файл или каталог не найден)
  • разрешений для test.php такие же, как Wwwroot (через сП портал)
  • Я не хочу, чтобы включить файл PHP, я хочу, чтобы позвонить и запустить его отдельно
  • Я смотрел на все связанные с должностью в StackOverflow в течение двух дней, и ничего, кажется, работа
  • Если вы предлагаете использовать полный путь к файлу или создать виртуальный каталог, пожалуйста, укажите пример. Потому что я пробовал оба без везения
  • Я также прочитал, что вам нужен скрипт php для доступа к php-файлам вне корневого каталога, но не знаю, как вызвать внешний файл. Я пробовал это один раз, но получил исключение 404. Было бы здорово, если бы это сработало

Есть ли у кого-нибудь простой способ сделать это? (Особенно, кто работает с Windows Arvixe хостинга). Я чувствую, что здесь должен быть простой ответ): Спасибо за то, что вы читаете это далеко, и большое спасибо за любые предложения.

ответ

1

Некоторые PHP-скрипты должны быть доступны через Интернет. Если вы не хотите, чтобы ваш основной PHP-скрипт был доступен через Интернет, для вызова основного сценария вам нужен еще один веб-скрипт PHP. Нет никакого способа обойти это, если вы не представите дополнительную технологию, такую ​​как SSI.

Не имеет значения, используете ли вы Windows или нет, что вы просите.

+0

Итак, скажем, я добавляю php-скрипт внутри index.html, чтобы вызвать test.php, который находится за пределами корня. Как мне это сделать? Как выглядел бы этот код? – Llamapuppies

+1

Вы не добавляете PHP-скрипт внутри index.html. Вы создаете новый файл index.php, и это ваш файл по умолчанию. Это приведет к индексу.php-файл, который будет обрабатываться вашим веб-сервером до его отправки. Вы будете использовать либо 'require', либо' include'. Для примера см. Http://www.tutorialspoint.com/php/php_file_inclusion.htm. –

+0

Что делать, если я хочу передать данные (например, данные формы) с помощью POST, а затем обработать их в файле test.php с помощью GET. Будет ли использование require/include в файле index.php возможно? – Llamapuppies