Это происходит потому, что вы запускаете сценарий автономно с ajax, а структура папок относительно test.php.
я проблема с разделом php include. Чтобы полностью объяснить проблему, я создал для вас тестовую страницу.
Сначала я хочу показать вам схему файлов. Также вы можете скачать тестовые файлы с этогоССЫЛКА и вы можете проверить это онлайнТЕСТ ЛИНК
Как видите, в папке есть подпапкаhtdocs
(корневой) файл и все файлы php там. Теперь я покажу вам код php в файле, соответственно.
имя_приложения / index.php
<?php include_once 'includes/config.php';?>
<div class="callPage">Click Here</div>
<div id="testBox"></div>
<script type="text/javascript">
$(document).ready(function(){
var siteurl = '<?php echo $url;?>';
$("body").on("click",".callPage", function(){
$.ajax({
url: siteurl+'content/test',
beforeSend: function() {
//Do something
},
complete:function(){
//Do something
},
success:function(response){
$("#testBox").html(response);
}
});
});
function LoadPage(){
$.get(siteurl+'content/test', function(data) {
$('#testBox').html(data);
});
}
LoadPage();
});
</script>
имя_приложения / содержание / test.php
<?php
include_once 'includes/config.php';
echo $text.'</br>';
echo $worked.'</br>';
?>
имя_приложения / включает / config.php
<?php
$url = 'http://localhost:8888/';
$text = 'Well Come! How are you today ?';
$worked = 'It is working :)';
?>
Когда вы открываетеТЕСТ ЛИНК, LoadPage();
функция JavaScript будет вызыватьtest.php
в файле содержимого и отобразить его в#testBox
, Сначала вы ничего не увидите в#testBox
изindex.php
, Потому чтоconfig.php
не может быть включен изtest.php
.
Я знаю, если я изменю эту строкуinclude_once 'includes/config.php';
изtest.php
нравитсяinclude_once '/appname/includes/config.php';
тогда проблема будет решена.
Но если страницы размножаются, и я хочу использовать файлы в корневой папке (htdocs или www), мне нужно удалить имя приложения (имя подпапки) =>include_once 'appname/includes/config.php';
из всех файлов. Это будет большой проблемой, когда эти файлы размножатся.
На самом деле вопрос точно:
Как мы можем включить файлы php без указания полного пути к включению, когда путь приложения относительноDOCUMENT_ROOT
является переменной или неизвестной иinclude_path
не может быть надежно изменен всеми пользователями приложения?