Los archivos php incluidos no funcionarán después de la subcarpeta de archivos movidos
Tengo un problema con php include section. Para explicar completamente el problema, creé una página de prueba para usted.
Primero quiero mostrarte el esquema de los archivos. También puede descargar los archivos de prueba de esteENLAZAR y puedes probarlo en líneaENLACE DE PRUEBA
Como puede ver, hay una subcarpeta en elhtdocs
(raíz) y todos los archivos php allí. Ahora te mostraré el código php dentro del archivo, respectivamente.
appname / 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>
appname / content / test.php
<?php
include_once 'includes/config.php';
echo $text.'</br>';
echo $worked.'</br>';
?>
nombre de aplicación / incluye / config.php
<?php
$url = 'http://localhost:8888/';
$text = 'Well Come! How are you today ?';
$worked = 'It is working :)';
?>
Cuando abres elENLACE DE PRUEBA, LoadPage();
la función de JavaScript llamarátest.php
en el archivo de contenido y mostrarlo en#testBox
. Primero no verás nada en#testBox
deindex.php
. Porqueconfig.php
no se puede incluir desdetest.php
.
Sé que si cambio esta líneainclude_once 'includes/config.php';
detest.php
Me gusta estoinclude_once '/appname/includes/config.php';
entonces el problema se solucionará.
Pero si las páginas se multiplican y, quiero usar los archivos en la carpeta raíz (htdocs o www), necesito eliminar appname (nombre de subcarpeta) =>include_once 'appname/includes/config.php';
de todos los archivos Será un gran problema cuando estos archivos se multipliquen.
En realidad la pregunta es exactamente:
¿Cómo podemos incluir archivos php sin especificar la ruta completa a la inclusión, cuando la ruta de la aplicación relativa a laDOCUMENT_ROOT
es variable o desconocido yinclude_path
no puede ser modificado de manera confiable por todos los usuarios de la aplicación?