На данный момент у меня есть эта структура папок
-Member
-Templates
and other folders
когда я использую в Member / index.php ничего не появляется на странице.
include("templates/header.php"); ?>
когда я пробую другие сокращения, такие как
<?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/templates/header.php";include_once($path);?>
или же
include 'templates/header.php';
Ничего не происходит, а.
Как вы используете php включить в этой ситуации?
Как и в вашем коде, вы имеете в виду файл, который не существует.
-Member
-Templates
and other folders
в Member / index.php, когда вы включаете такой файл;
include("templates/header.php");
Вы на самом деле ссылаетесь на файл внутри Member
папка. Вместо этого вы должны использовать переменную $ _SERVER, или вы должны обратиться к include("/Templates/header.php");
Но лучше всего использовать переменную $ _SERVER;
Вы указали имя каталога в простом регистре в своем операторе включения. Также, как примечание, не добавляйте путь к каталогу напрямую $path = $_SERVER['DOCUMENT_ROOT'];
переменная. Вместо этого введите путь в вашем операторе включения.
Подобно :
$root = $_SERVER['DOCUMENT_ROOT'];
include $root.'/Templates/header.php';
Таким образом, вам не нужно переопределять глобальную переменную $ _SERVER везде.
Также попрактикуйтесь в отладке! Просто не бегите к SO за все, если вы действительно хотите учиться. Узнайте, почему «ничего не загружается».
Напечатайте $ path и посмотрите, является ли путь правильным. и проверьте журналы ошибок, что они говорят. Если бы вы сделали это, вы наверняка исправили бы это сами!
Надеюсь, что это имеет смысл 🙂
Если имя вашей папки с большой буквы, попробуйте это:
include_once $_SERVER['DOCUMENT_ROOT'].'/Templates/header.php';
Вы также можете попробовать это без /
:
include_once $_SERVER['DOCUMENT_ROOT'].'Templates/header.php';
Если ваши папки без прописных букв, оставьте это так: templates
Конечно, вы можете сделать $_SERVER['DOCUMENT_ROOT']
переменная, поэтому вам не нужно повторно объявлять ее все время
Замечания: Это то, что говорит @Mahan