2015-08-17 2 views
-3

CLARIFICATION: Будучи тем, что я никогда не использовал PHP, было непонятно, как отформатировать файл PHP, чтобы при включении его в индекс заголовок (nav bar) появится. Посты не объяснили, почему мне пришлось изменить index.html на index.php, чтобы он работал. И снова, будучи тем, что я не использовал PHP, у меня создалось впечатление, что изменение расширения означает, что мне придется преобразовать код HTML в команды PHP. Я пытался избежать необходимости менять весь код. Вот где была путаница.PHP Header Include (nav bar) не отображается

Я собирался удалить вопрос, как только выясню. Опять же, я уверен, что я не единственный человек, который может столкнуться с этим, создав свой первый веб-сайт.

РЕШЕНИЕ. Сохраните только навигационный код на языке html с расширением PHP (header.php). Измените индекс/домашний файл с .html на расширение .php (не нужно изменять какой-либо код, но принимает приглашение include). Затем включите header.php в index.php. То же самое касается вашего нижнего колонтитула. Спасибо всем за помощь.

* ORIGINAL POST: через другое сообщение мне сказали, что проще использовать навигатор/нижний колонтитул на нескольких страницах с помощью PHP.

Я создал файл и попытался включить его, и он не отображается. Я не уверен, что я делаю неправильно.

В моей навигационной панели также есть CSS, нужно ли импортировать файл css в файл PHP? или файл index.html автоматически присоединяется к включенному (php) файлу.

PHP код:

<?php 
echo '<nav> 
    <div> 
     <a href="/"> 
      <div id="logo"><img src="/Images/7serviceLOGOblue2.png" alt="Home"/></div> 
      <div id="headtag"><img src="/Images/title.png" alt="Home"/></div> 
      <div id="tagline"><img src="/Images/tag_line.png" alt="Home"/></div> 
     </a> 
    </div> 
    <div> 
     <a href="/" class="here">Home</a> 
     <a href="/about.html" >About</a>  
     <a href="/services.html" >Services</a>   
     <a href="/pricing.html" >Pricing</a>  
     <a href="/contact.html" >Contact Us</a> 
     <input id="srchbar" type="search" placeholder="Search"> 
    </div> 
</nav>'; 
?> 

HTML код (в том числе):

<body> 
<?php include '/header.php';?> 
    ....other code.... 
</body> 

Если есть проблема с файлом PHP, если я что-то не хватает, может кто-то показать объясните пожалуйста?

+1

В 'PHP' вам нужно« отменить »их или использовать только« HTML », удалить тег' '. –

+0

Я удалил теги PHP в header.php и все еще не показывал свою навигационную панель ... – blackRob4953

+0

Что происходит, когда вы меняете его на ' '? Можете ли вы показать свою структуру каталогов? * PS * - ваш индексный файл ** требует ** для '.php', а не' .html' – Darren

ответ

1

нет необходимости добавлять <?php ?> код в файле заголовка просто держать его, как это:

  1. Создать новый файл с именем header.php и добавьте этот код к нему

    <nav> 
    <div> 
        <a href="/"> 
         <div id="logo"><img src="/Images/7serviceLOGOblue2.png" alt="Home"/></div> 
         <div id="headtag"><img src="/Images/title.png" alt="Home"/></div> 
         <div id="tagline"><img src="/Images/tag_line.png" alt="Home"/></div> 
        </a> 
    </div> 
    <div> 
        <a href="/" class="here">Home</a> 
        <a href="/about.html" >About</a>  
        <a href="/services.html" >Services</a>   
        <a href="/pricing.html" >Pricing</a>  
        <a href="/contact.html" >Contact Us</a> 
        <input id="srchbar" type="search" placeholder="Search"> 
    </div> 
    

  2. Включите header.php в любом месте вы хотите

+0

Я удалил теги PHP в header.php и все еще не показывал свою навигационную панель ... – blackRob4953

+0

Вы работаете на локальной машине? и какова материнская страница? например index.php или index.html .. Я предпочитаю, что вы должны изменить его на index.php –

+0

Я работаю на локальной машине, я использую Cloud9 для сборки и тестирования моего сайта. Единственное, что я мог найти, что фактически импортировал мой .css и работал, поэтому я не вижу проблемы php. Моя материнская страница - index.html, я попытался изменить ее на .php, по-прежнему ту же проблему, не отображая header.php – blackRob4953

0

Удалите тег <?php из вашего кода. Как вы сгенерировали вывод html. <?php теги используются для генерации вывода по php.

<nav> 
    <div> 
     <a href="/"> 
      <div id="logo"><img src="/Images/7serviceLOGOblue2.png" alt="Home"/></div> 
      <div id="headtag"><img src="/Images/title.png" alt="Home"/></div> 
      <div id="tagline"><img src="/Images/tag_line.png" alt="Home"/></div> 
     </a> 
    </div> 
    <div> 
     <a href="/" class="here">Home</a> 
     <a href="/about.html" >About</a>  
     <a href="/services.html" >Services</a>   
     <a href="/pricing.html" >Pricing</a>  
     <a href="/contact.html" >Contact Us</a> 
     <input id="srchbar" type="search" placeholder="Search"> 
    </div> 
</nav> 

Если вы хотите использовать PHP теги, чем вы должны написать код таким образом:

<?php 
echo ' 
<nav> 
     <div> 
      <a href="/"> 
       <div id="logo"><img src="/Images/7serviceLOGOblue2.png" alt="Home"/></div> 
       <div id="headtag"><img src="/Images/title.png" alt="Home"/></div> 
       <div id="tagline"><img src="/Images/tag_line.png" alt="Home"/></div> 
      </a> 
     </div> 
     <div> 
      <a href="/" class="here">Home</a> 
      <a href="/about.html" >About</a>  
      <a href="/services.html" >Services</a>   
      <a href="/pricing.html" >Pricing</a>  
      <a href="/contact.html" >Contact Us</a> 
      <input id="srchbar" type="search" placeholder="Search"> 
     </div> 
    </nav> 
'; 
?> 
+0

Вы можете добавить что-то, почему OP нужно удалить тег '

+0

Я удалил теги PHP в header.php и все еще не показывал свою навигационную панель ... – blackRob4953

+0

does 'header.php' представляет в корневой папке? Или какая-то другая папка? @ черныйRob4953 – Chayan

0

Ваша проблема, скорее всего, Pathing из вас включить. Часто вам нужно указать из корневого сервера, а не только /header.php.

Чтобы указать, включая-путь, можно указать корень как этот

include $_SERVER['DOCUMENT_ROOT']."/header.php"; 

Вы также можете установить по умолчанию включить путь в файле php.ini, таким образом делая $_SERVER['DOCUMENT_ROOT'] автоматический процесс, который может быть сделано с запуском этого кода, который изменит ваш файл php.ini.

ini_set('include_path', '/usr/lib/pear'); 

Как уже отмечалось, что вам не нужно содержимое вашего /header.php быть эхом, как это чистый HTML. Все, что включено, будет включено так, как есть, поэтому содержание /header.php как чистый HTML просто улучшает практику, так как его легче читать.

+0

Я заменил свой оператор include, с кодом, который вы мне дали, но пока нет. Если это помогает, я использую Cloud9 для сборки и тестирования моего веб-сайта. Я не уверен, что из-за этого «document_root» должен быть другим. Я просто имею папку своего сайта, со всем остальным в ней. Так что нормально, чтобы добраться до корня, я бы просто использовал косую черту. Кроме того, я не затронул какой-либо файл php.ini, это мой первый веб-сайт, и это первый, который я использовал php, так что это моя проблема. Я полагаю, что – blackRob4953

+0

Использование 'include' будет вызывать предупреждение в вашем файле' error_log', в котором говорится: что он не может включать файл. Если вы зачитали путь, который он указывает там, и что '$ _SERVER ['DOCUMENT_ROOT']' есть (просто повторите его в PHP), вы можете узнать, какой путь вам нужен. Я почти уверен, что ваша проблема - это путь вашего файла. Еще один побочный элемент, если все находится в одной папке, вы можете просто удалить косую черту, так как это будет включать относительный путь. Кроме того, использование 'include" ../ header.php ";' будет включать в родительский каталог, вы также можете попробовать это. – Qirel

+0

Вопрос ниже решает проблему. простое изменение материнского файла на index.php и использование require вместо include – blackRob4953

Смежные вопросы