I have a navigational bar, an image, and a heading that I'll be including in every page of my website, so I wanted to use php include to refer to this code in several pages. However, I think I may have the syntax wrong or something because it's not rendering anything when I load it. Here are some code snippets:
<!-- sample page --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<?php include ('headings.php'); ?>
</head>
<body>
<?php include ('navbar.php'); ?>
<?php include ('image.php'); ?>
</body>
</html>
navbar.php
<?php
echo '<ul id="nav">
<li>
<a href="Home.html">Home</a>
</li>
<li>
<a>About Me</a>
<ul>
<li>
<a href="Career.html">Career</a>
</li>
<li>
<a href="Coding.html">Coding</a>
</li>
<li>
<a href="Personal.html">Personal</a>
</li>
</ul>
</li>
<li>
<a href="Travels.html">Travel</a>
</li>
<li>
<a href="Contact.html">Contact</a>
</li>
</ul>';
?>
Thanks for helping!
Anything that can go in a standard HTML file can go in a PHP include. Save any page that uses a PHP include as a PHP file with the appropriate extension (e.g., index. php).
As we all know, HTML and PHP are two different languages. Thus you can't link them together directly. So to make a PHP file work in HTML, you have to either change the file extension of HTML and make it PHP, and then with the include() and require() functions, you can make the PHP file work in HTML.
The include (or require ) statement takes all the text/code/markup that exists in the specified file and copies it into the file that uses the include statement. Including files is very useful when you want to include the same PHP, HTML, or text on multiple pages of a website.
When it comes to integrating PHP code with HTML content, you need to enclose the PHP code with the PHP start tag <? php and the PHP end tag ?> . The code wrapped between these two tags is considered to be PHP code, and thus it'll be executed on the server side before the requested file is sent to the client browser.
You can use php
code in files with extension .php
and only there (iff other is not defined in your server settings).
Just rename your file *.html
to *.php
If you want to allow php
code processing in files of different format, you have two options to do that:
1) Modifying httpd.conf
to allow this for all projects on your server, by adding:
AddHandler application/x-httpd-php .htm .html
2) Creating .htaccess
file in your separate project top directory with:
<Files />
AddType application/x-httpd-php .html
</Files>
For second option you need to allow use of .htaccess
files in your httpd.conf
, by adding the following settings:
AllowOverride All
AccessFileName .htaccess
*that is correct for Apache HTTP Server
You don't need to be echoing the info within the php file. A php include
will automatically include any HTML within that file.
Make sure you're actually using a index file with a .php
extension, .html
won't work with php includes. (Unless you're telling your server to treat .html files otherwise)
Make sure your paths are correctly set up. From your description, the way you've set it up your header.php/navbar.php/image.php files should be in your root directory. So your root directory should look like this:
index.php
navbar.php
image.php
header.php
Otherwise if those PHP files are in a folder called /includes/
, it should look like so:
<?php include ('includes/headings.php'); ?>
Try to get some debugging information, could be that the file path is wrong, for example.
Try these two things:- Add this line to the top of your sample page:
<?php error_reporting(E_ALL);?>
This will print all errors/warnings/notices in the page so if there is any problem you get a text message describing it instead of a blank page
Additionally you can change include() to require()
<?php require ('headings.php'); ?>
<?php require ('navbar.php'); ?>
<?php require ('image.php'); ?>
This will throw a FATAL error PHP is unable to load required pages, and should help you in getting better tracing what is going wrong..
You can post the error descriptions here, if you get any, and you are unable to figure out what it means..
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With