Итак, я работаю над стилем веб-сайта электронной коммерции, и у меня есть хост / домен. Насколько я понимаю, я должен размещать свои файлы PHP в другом месте, кроме public_html (в целях безопасности), а расположение index.html находится в / home / user / public_html. Я хочу поместить свои файлы PHP в папку php. Я пробовал использовать:
include("home/user/php/file.php")
или же
include("../php/file.php").
Я включил использование этих команд в файле ini, и я также попытался установить разрешения для папок (чтение / запись / выполнение). Одна вещь, которая работала, - это установить поддомен с его «корневой» папкой в папку php , но я предполагаю, что это противоречит цели размещения файлов где-то еще на сервере, особенно потому, что я использовал объект для размещения моего php следующим образом:
<object class = "php-script" data = "database.php"></object>
и под своими сценариями java я поставил:
<?php
include("/home/user/php/database.php");
?>
Заранее спасибо за помощь.
если я пытаюсь создать сценарий, который отправляет электронное письмо, когда я нажимаю «отправить», он говорит, что не может найти файл (т.е. сценарий, который отправляет электронное письмо).
"Там написано", как у вас появляется сообщение об ошибке? Можете ли вы поделиться точной формулировкой?
когда я нажимаю «отправить», он идет вперед и перенаправляет меня на белую страницу с «URL не найден». Подобно сообщению об ошибке php
Скорее всего, это не имеет ничего общего с включением. Похоже, у вас есть тег <form> с недопустимым значением action.
действительно. Теперь я понял, что это довольно глупо, что я пытаюсь сделать, и на самом деле не поможет. так что теперь мне нужно будет найти способ связать файл php или просто написать большую часть страницы на php и использовать include






Просто попробуйте следующий код. посмотрите, что он выводит. в основном вам нужно использовать: $ _SERVER ['DOCUMENT_ROOT'] для перехода к файлу вместо того, чтобы вводить путь самостоятельно.
//to get site url
echo $site_url = "http://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['PHP_SELF']);
//to the folder
echo $dir = $_SERVER['DOCUMENT_ROOT'].'/user/php/';
if (file_exists($dir) == false) {
echo "Directory $dir not found!";
} else {
echo "directory found and we are ready to proceed.";
}
дайте мне знать ваш ответ, я помогу вам дальше.
Я настоятельно не рекомендую это, потому что использование PHP_SELF является известной проблемой безопасности: во-первых, вы не учитываете тот факт, что сценарии могут быть вне корня документа, что во-вторых, приводит к публикации внутреннего и обычно опускаемого пути к серверу в $site_url.
Пожалуйста, замените "gifogrup" на user. Сначала я не хотел говорить об этом, так как это запутанное название. Вот что я получаю. "gifogrup.ro//home/gifogrup/public_html/gifogrup/php/Director y / home / gifogrup / public_html / gifogrup / php / not found!"
@codekand, хорошо, спасибо, что указали мне на это. Ты узнаешь что-то новое каждый день
Обычно использование относительных путей с include или require означает использование относительных путей, начиная с каталога, в котором находится ваш первый вызываемый скрипт вызова URL.
Пример:
application
src
database.php
somescript.php
public (document root)
index.php
news.php
общедоступный / index.php
<?php
include '../src/database.php'
Это должно быть легко понять.
общедоступный / news.php
<?php
include '../src/somescript.php';
src / somescript.php
<?php
include '../src/database.php';
Так что позаботьтесь о включении в somescript.php. Неважно, что он находится в папке src. Включить, например, include 'database.php', не удастся, потому что значение имеет путь news.php.
Изменить (2018-04-04)
Я забыл упомянуть. Рассмотрите возможность использования require() / require_once() вместо include() / include_once().
В чем разница между require, include, require_once и include_once?
поэтому я должен создать другой файл со всеми моими включениями, и когда я хочу получить доступ к одному из этих файлов, я просто использую "somescript.php" напрямую?
@TakeDown Нет. Я хотел показать вам, что включение файла, который включает файл, не изменяет относительный путь, который вы должны использовать. Вы всегда начинаете «путь» с первого скрипта PHP.
это сработало, большое спасибо за ваш быстрый ответ. просто быстрый вопрос. Чтобы использовать функцию включения в файле новостей, мне нужно, чтобы он был php. Разве это не уязвимость системы безопасности? или это нормально, потому что в нем есть только функция включения и тег объекта (в моем случае)?
@TakeDown Примите во внимание мое последнее изменение ... И ответьте на ваш вопрос в своем последнем комментарии. По крайней мере, у нашего скрипта должно быть расширение, которое должно быть зарегистрировано конфигурацией серверов для выполнения и анализа с помощью PHP. В противном случае ответ на файл будет дан как есть - это может привести к уязвимости системы безопасности, например. грамм. если у вас есть конфиденциальные данные, такие как данные для входа в систему. По умолчанию это зарегистрированные расширения php, phtml, htm и html. Все скрипты, включенные с обязательным / включенным фактически исполняемым PHP скриптом, также анализируются с помощью PHP.
Что происходит, когда вы это делаете? Вы получаете сообщение об ошибке?