Join over 55,891 Subscribers Today! FREE UPDATES!
Get The Only Freelancer crash course you will ever need to read!
This is a tutorial on creating a PHP website template starting with HTML and CSS. We will start with the basics and you can also download the final product. Please remember that I am using very basic CSS styling in this example just for you to get the idea, and not so much to make it look pretty. The download will contain both the styled example as well as a complete blank template that you can use for your own starting point for any project personal or commercial. The demo files are released under GPL V2.
This tutorial assumes you have basic understanding of html and css. At the end of this tutorial you should have a basic understanding of using php and converting an html site to php.You can also download the demo files here.
The actual template will be created in 10 easy steps. I will then take it a step further to show you how to add variables to your template.
Let’s start by creating a new folder. I have named this folder php_site
Inside of this folder we are now going to create two new files. One is index.html and the other file is going to be named style.css
Now we are going to create two more folders inside of our main folder. The first folder is going to be named includes, and the second folder will be named variables.
We should now have a setup that looks like the following:
Now, using your favorite html editor open the index.html file. We are going to to create a basic html website document. This is the code I am using:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <meta name="author" content="" /> <link rel="stylesheet" type="text/css" href="style.css" media="screen" /> <title>1stWebDesigner PHP Template</title> </head> <body> <div id="wrapper"> <div id="header"> </div> <!-- end #header --> <div id="nav"> </div> <!-- end #nav --> <div id="content"> </div> <!-- end #content --> <div id="sidebar"> </div> <!-- end #sidebar --> <div id="footer"> </div> <!-- end #footer --> </div> <!-- End #wrapper --> </body> </html>
Now I am going to open up the style.css file and add the divs we will be using. I have added very basic styling so you can see the site and get the idea of what we are doing. Remember that you can use your own styling when creating your website to suit your needs.
This is the CSS I am adding to the stylesheet:
body {
background-color:#f1f1f1;
font-family: georgia,sans-serif;
color:#333;
margin:0;
padding:0;
}
#wrapper {
width:960px;
background-color:#f8f8f8;
margin:0 auto;
border-left:1px solid #ccc;
border-right:1px solid #ccc;
}
#header {
width:960px;
height:135px;
margin:0 auto;
margin-bottom:25px;
border-bottom:1px solid #ccc;
border-top:1px solid #ccc;
}
#header h2 {
padding:10px;
}
#nav {
width:960px;
height:40px;
border-bottom:1px solid #ccc;
}
#nav a {
display:inline;
padding:10px;
text-decoration:none;
background-color:#f1f1f1;
}
#nav a:hover {
background-color:#bababa;
height:80px;
}
#content {
width:675px;
float:left;
padding:10px;
}
#sidebar {
width:200px;
float:right;
margin-bottom:25px;
}
#sidebar a {
text-decoration:none;
}
#sidebar li {
list-style:none;
}
#footer {
clear:both;
width:960px;
height:135px;
border-top:1px solid #ccc;
}
#footer p {
padding:10px;
}
Next we will create some more files that we will be using when we start converting our template to php.
Open up the folder we created inside of our main folder called variables. Next, create a blank file called variables.php
Then go into the other folder we created called includes and create the following files:
header.php
nav.php
sidebar.php
footer.php
Now we will need to add some content to our index.html file. I have filled in the header area with an H2 tag for the website header title. I will also be adding the links in the nav area, as well as some text in the content area, sidebar, and footer. The final index.html file now looks like this:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <meta name="author" content="" /> <link rel="stylesheet" type="text/css" href="style.css" media="screen" /> <title>1stWebDesigner PHP Template</title> </head> <body> <div id="wrapper"> <div id="header"> <h2>1stWebDesigner PHP Template</h2> </div> <!-- end #header --> <div id="nav"> <a href="#">Home</a> <a href="#">About</a> <a href="#">Portfolio</a> <a href="#">Contact</a> </div> <!-- end #nav --> <div id="content"> <h1>Heading1</h1> <h2>Heading2</h2> <h3>Heading3</h3> <h4>Heading4</h4> <h5>Heading5</h5> <h3>Paragraph Element</h3> <p> Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit. </p> <p> Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit. </p> <h3>Another Heading Starting Point</h3> <p> Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit. </p> <p> Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit. </p> </div> <!-- end #content --> <div id="sidebar"> <h3>Navigation</h3> <li><a href="#">Home</a></li> <li><a href="#">About Us</a></li> <li><a href="#">Links</a></li> <li><a href="#">Portfolio</a></li> <li><a href="#">Contact</a></li> <h3>Box Two</h3> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <h3>Box Three</h3> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> </div> <!-- end #sidebar --> <div id="footer"> <p>Copyright © 2010 <a href="http://www.1stwebdesigner.com">1stWebDesigner.com PHP Template</a></p> </div> <!-- end #footer --> </div> <!-- End #wrapper --> </body> </html>
Now we will start converting our template to PHP. We will need to take a brief look at the html code we have and decide which areas will be sliced. We will be removing specific areas from the index.html file and placing them into the php files we have created inside the includes folder.
Let’s start with the top of the html document on the header. Copy the header div and cut it from the document. Then open your includes folder, and the header.php file we created and add the code to the header.php
<div id="header"> <h2>1stWebDesigner PHP Template</h2> </div> <!-- end #header -->
Make sure this area has now been removed completely from the index.html file and placed into the header.php file. In place of this code, we will now add the following to the index.html file.
<?php include('includes/header.php'); ?>
Now our index.html should look like this: (Make a note that the header area has now been replaced with our php include function that is calling our external header.php file)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="author" content="" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<title>1stWebDesigner PHP Template</title>
</head>
<body>
<div id="wrapper">
<?php include('includes/header.php'); ?>
<div id="nav">
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Portfolio</a>
<a href="#">Contact</a>
</div> <!-- end #nav -->
<div id="content">
<h1>Heading1</h1>
<h2>Heading2</h2>
<h3>Heading3</h3>
<h4>Heading4</h4>
<h5>Heading5</h5>
<h3>Paragraph Element</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<h3>Another Heading Starting Point</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
</div> <!-- end #content -->
<div id="sidebar">
<h3>Navigation</h3>
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Links</a></li>
<li><a href="#">Portfolio</a></li>
<li><a href="#">Contact</a></li>
<h3>Box Two</h3>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<h3>Box Three</h3>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
</div> <!-- end #sidebar -->
<div id="footer">
<p>Copyright © 2010 <a href="#">Website Name</a></p>
</div> <!-- end #footer -->
</div> <!-- End #wrapper -->
</body>
</html>
Now we will continue to slice the html document and place the code in the proper php files we made.
Next let’s move to the nav div. The same as above, we are going to copy and cut that piece of code and place it into our nav.php file that is located inside of the includes folder.
This is what we are adding to the nav.php file:
<div id="nav"> <a href="#">Home</a> <a href="#">About</a> <a href="#">Portfolio</a> <a href="#">Contact</a> </div> <!-- end #nav -->
Again we will replace the code removed from the html document with the following:
<?php include(includes/nav.php); ?>
Now our index.html document will look like this: (Again note that both the header, and the nav area are now replaced with php includes)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="author" content="" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<title>1stWebDesigner PHP Template</title>
</head>
<body>
<div id="wrapper">
<?php include('includes/header.php'); ?>
<?php include('includes/nav.php'); ?>
<div id="content">
<h1>Heading1</h1>
<h2>Heading2</h2>
<h3>Heading3</h3>
<h4>Heading4</h4>
<h5>Heading5</h5>
<h3>Paragraph Element</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<h3>Another Heading Starting Point</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
</div> <!-- end #content -->
<div id="sidebar">
<h3>Navigation</h3>
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Links</a></li>
<li><a href="#">Portfolio</a></li>
<li><a href="#">Contact</a></li>
<h3>Box Two</h3>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<h3>Box Three</h3>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
<li><a href="#">Link Here</a></li>
</div> <!-- end #sidebar -->
<div id="footer">
<p>Copyright © 2010 <a href="#">Website Name</a></p>
</div> <!-- end #footer -->
</div> <!-- End #wrapper -->
</body>
</html>
Now it is time to do the sidebar. Copy and cut the sidebar div and place it into the sidebar.php file we created that is located inside the includes folder.
This is the code we are adding:
<div id="sidebar"> <h3>Navigation</h3> <li><a href="#">Home</a></li> <li><a href="#">About Us</a></li> <li><a href="#">Links</a></li> <li><a href="#">Portfolio</a></li> <li><a href="#">Contact</a></li> <h3>Box Two</h3> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <h3>Box Three</h3> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> </div> <!-- end #sidebar -->
We will again do the same thing for the footer area. Copy and cut the footer div and place it into the footer.php file we created in the same includes folder.
Here is the footer.php code:
<div id="footer"> <p>Copyright © 2010 <a href="#">Website Name</a></p> </div> <!-- end #footer -->
Now with all of our elements taken from the index.html file and added to the different php files, the final index.html should look like this:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="author" content="" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<title>1stWebDesigner PHP Template</title>
</head>
<body>
<div id="wrapper">
<?php include('includes/header.php'); ?>
<?php include('includes/nav.php'); ?>
<div id="content">
<h1>Heading1</h1>
<h2>Heading2</h2>
<h3>Heading3</h3>
<h4>Heading4</h4>
<h5>Heading5</h5>
<h3>Paragraph Element</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<h3>Another Heading Starting Point</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
</div> <!-- end #content -->
<?php include('includes/sidebar.php'); ?>
<?php include('includes/footer.php'); ?>
</div> <!-- End #wrapper -->
</body>
</html>
Now that our index.html is properly sliced, we can rename the index.html file to index.php
Now that we have created this template, as long as the php includes are on any page we only have to modify the one single file to make it visible accross your entire website. This again is good for anyone with a lot of content and pages. Instead of having to edit the sidebar on every page of your site you can now just edit the sidebar.php file and it will reflect on all of your pages. This makes it a lot easier to keep up with large portions of website material.
Our folder should now look like this:
Now we will make it a little more dynamic and even easier to be able to modify when needed. Lets take a look at the header.php file inside the includes folder.
<div id="header"> <h2>1stWebDesigner PHP Template</h2> </div> <!-- end #header -->
We are going to modify this a little bit to change the H2 heading from a different file using a variable. Creating a variable is good for areas on your website that may change more than others. It may also be a good way to allow clients to edit a single file to change certain items on their website.
Now let’s replace the text within the H2 heading to this:
<h2><?php echo $heading ?></h2>
Now our header.php file will look like this: Notice we placed the echo php command within the H2 brackets. This will give our variable output the H2 heading we want.
<div id="header"> <h2><?php echo $heading ?></h2> </div> <!-- end #header -->
Next we are going to open up the file inside of the variables folder that we created named variables.php
We will add the variable that we are going to echo on the website heading. I have named this variable heading.
<?php $heading='1stWebDesigner PHP Template'; ?>
Now, at any time we want to change what is titled on the heading of our template, we can simply open our variables.php file and modify what is between the quotes. This will always be the output on our header.php file where we placed the echo command.
Now we will do the same thing to our footer.php file. Open the footer.php that we have in our includes folder and let’s take a look at it:
<div id="footer"> <p>Copyright © 2010 <a href="#">Website Name</a></p> </div> <!-- end #footer -->
Let’s change this like we did the header file, and add a variable to use.
We will place our echo command within the paragraph brackets. You should now have the following in your footer.php:
<div id="footer"> <p><?php echo $footer ?></p> </div> <!-- end #footer -->
And again we will visit our variables.php file located in the variables folder we made and we will now update it with our new variable. The final should now look like this:
<?php $heading='1stWebDesigner PHP Template'; $footer='Copyright © 2010 1stWebDesigner PHP Template'; ?>
Make note of the above. When using PHP variables we cannot use a regular quote. They should be replaced as you see above directly after the a href=
This is to ensure the code is read properly by browsers. If you use a regular quote it will not work.
The last thing we need to do in order to make our variables work is to do one last php include within our template to call the variables file.
Let’s open up our header.php file and add the following:
<?php include('variables/variables.php'); ?>
This will tell our template to use the variables file we have created.
The header.php file should now look like this:
<?php include('variables/variables.php'); ?>
<div id="header">
<h2><?php echo $heading ?></h2>
</div> <!-- end #header -->
Next we will need to do the same to our footer.php file. Add the same include at the top. The footer.php should now look like this:
<?php include('variables/variables.php'); ?>
<div id="footer">
<p><?php echo $footer ?></p>
</div> <!-- end #footer -->
Now that these two files are calling the variables, you will see the reflected results in the final template. You can always create new variables, and create any type of php files you want. You can even change the folder directory in any way you wish as long as your php include function displays the correct path to the files.
To test it a bit further let’s duplicate the index.html file and make a second page that will also call the external php files. This way we will be able to see more exactly how this works.
Make a copy of your index.php file and rename the new file to about.php
Inside of this file you can change anything you want within the #content div inside of the website #wrapper
I have created the following for testing purposes:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="author" content="" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<title>1stWebDesigner PHP Template About Page</title>
</head>
<body>
<div id="wrapper">
<?php include('includes/header.php'); ?>
<?php include('includes/nav.php'); ?>
<div id="content">
<h3>About Me Page</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<h3>Another Heading Starting Point</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<h3>Notice The Include Files</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<h3>Another Heading Starting Point</h3>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
<p>
Quisque pellentesque sodales aliquam. Morbi mollis neque eget arcu egestas non ultrices neque volutpat. Nam at nunc lectus, id vulputate purus. In et turpis ac mauris viverra iaculis. Cras sed elit a purus ultrices iaculis eget sit amet dolor. Praesent ac libero dolor, id viverra libero. Mauris aliquam nibh vitae eros sodales fermentum. Fusce cursus est varius ante vehicula eget ultrices felis eleifend. Nunc pharetra rutrum nibh et lobortis. Morbi vitae venenatis velit.
</p>
</div> <!-- end #content -->
<?php include('includes/sidebar.php'); ?>
<?php include('includes/footer.php'); ?>
</div> <!-- End #wrapper -->
</body>
</html>
Now make sure that we go inside of our nav.php file as well as the sidebar.php file and link the new page we have just created. Again using your html editor of choice, first open up your nav.php file.
Updating the links should make your file now look like this example below:
<div id="nav"> <a href="index.php">Home</a> <a href="about.php">About</a> <a href="#">Portfolio</a> <a href="#">Contact</a> </div> <!-- end #nav -->
Next we will need to do the same thing to our sidebar.php file to make sure the links now work.
<div id="sidebar"> <h3>Navigation</h3> <li><a href="index.php">Home</a></li> <li><a href="about.php">About Us</a></li> <li><a href="#">Links</a></li> <li><a href="#">Portfolio</a></li> <li><a href="#">Contact</a></li> <h3>Box Two</h3> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <h3>Box Three</h3> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> <li><a href="#">Link Here</a></li> </div> <!-- end #sidebar -->
Now we are complete. We have created a two page PHP website template that we can expand on more to make a completed project. We have learned how to use basic php includes and variables to be able to edit content accross many different pages at one time. I really hope you have enjoyed this post and learned something from it as well.
Just to take a final look at the new file structure with the added page you can view the image below for reference:
This tutorial was created to give you some basic knowledge on php and creating a php website template.
If you have any questions I will do my best to answer them in the comments below.
Get The Only Freelancer crash course you will ever need to read!
My name is Kevin. I am a 30 year old freelance web designer. I have been working with HTML, CSS, and PHP for 6+ years - And creating websites using Wordpress for 3 years. I enjoy creating websites and also doing some graphic design using Photoshop and Illustrator. I hope everyone enjoys reading my articles and I look forward to your questions, comments, and feedback.
Saturday, August 27th, 2011 15:05
I have not interest in making website but after this tutorial it created interest in me to develop a website.
Saturday, August 27th, 2011 14:28
Thanks for the breakdown. It really helped me to better wrap my brain around it.
Saturday, August 27th, 2011 11:59
Hi good tutorials i have found,
it helped me a lot, to get an idea of creating website using php…This is my first attempt to do it so…
thanks, keep it up…
Friday, August 26th, 2011 08:39
thanks for such a great tutorial…
Monday, August 22nd, 2011 18:16
thank u …. i am fresher in design, your site help me lot to design web site…..
Monday, August 22nd, 2011 18:22
my husband also a good web designer he also works in one of Government IT company in India He also refers yours site.Thank u for solving ours problems and supporting and help…
Sunday, August 21st, 2011 12:38
First things first, great tutorial since i’m very new to php. i just have a few blank spots i hope you can help out with.
i’m just curious about the placement of the sidebar and other objects, i can’t seem to find any values that indicate the placement of the side bar, for example if i want to move it to the left side how is this done. Thanks in advance
Thursday, August 25th, 2011 20:20
The placement of the different sections is taken care of in style.css. If you look at #sidebar in style.css, you’ll notice a line: float: right;
For items on the left, float: left;
My first source for learning css styling was:
http://www.w3schools.com/css/default.asp
Saturday, August 20th, 2011 20:28
I am looking to have my site converted to php with cms so i can edit it easily by myself. I think your tutorial was great but I don`t have the expertise time to build the whole site. email me if you can help
Tuesday, August 16th, 2011 06:39
This was helped me to develop my site..
Thanks,
Ganesan K
Friday, August 19th, 2011 01:06
It helped me a lot in completing my assignment …thanks !!
Sunday, August 14th, 2011 10:41
Any place I could download the source code? All the numbers come across when I copy and paste.
Wednesday, August 10th, 2011 18:49
Hello good Sir,
I was wondering if I could use CMSs like Joomla or WordPress to create a recruitment website with.. say something like this site “SoccerAgent.net”. Also would it be better to just create one from scratch..I’m quite new to php (only know HTML and CSS) and I am trying to make one for a project in one of my subject. This guide of yours is very very helpful for me to start with and it was explained in the way I can easily follow and understand.
One other thing, which php framework and IDE out there you recommend for starters like myself?
Wednesday, August 10th, 2011 10:31
hello sir,
i have interest in php web designing, i have no idea about php installation, so please guide me how to install php or other supporting softwares for run the php files
Wednesday, August 10th, 2011 10:22
Thanks for this Tutorial…
it is very very imprtant for biginers……
Wednesday, August 10th, 2011 08:47
Wow…that was a wonderful explanation.
Could you make a tutorial for visit counter and database driven sites?
I have a page where i have put 5 files for downloading. I want to know what file has been viewed/downloaded
how many times? How is it possible?
Thanks in advance.
Tuesday, August 9th, 2011 19:43
Dear Sir,
This is sarita from India, ur article is really helpful for me as its the same article for which i was looking for. I knw nw how PHP website works . bt now I want to knw that How can i apply any css templet in php website as I’m working on a project on “free classified ads” and I’m going to use a free css template downloaded from the internet. I’m a student and learning PHP from last 3 months and I have project on creating website so I really need help or guidance to how i can work on my project. ur article is working bt further I need more help . kindly post an article abt how to apply templets and how to configure in website different tools like SMS tool, Blog, Forum and different Social networking plugins in my website. post any code from which i can get. Hoping for positive reply. Take care.
Saturday, August 6th, 2011 15:37
thanks a lot..:):)
Wednesday, August 3rd, 2011 19:54
Thank you for such a clear-cut explanation. It is very helpful for a fresher to learn how PHP actually works.
Wednesday, August 3rd, 2011 20:07
Thanx for this tutorial. This is very good for beginner.
Sunday, July 31st, 2011 13:42
This was very, VERY helpful. Dead simple, but I’ve always wondered how it worked together. Thanks for your detailed information.
Friday, July 29th, 2011 19:16
very good training . thanks a lot. so kind of you , if you post an article on “div” tag.
Tuesday, July 26th, 2011 10:54
I really love this tutorial. i never see such a tutorial thank u thank u thank u thanks a lot………………..
Sunday, July 24th, 2011 06:34
Thank you for this very informative tutorial.
Wednesday, July 20th, 2011 14:19
tnx for this site…but theres a problem when i copying the code…the numbers in the side will copy to………its a more process work..
Monday, July 18th, 2011 01:11
and sir one more question is ” can I include a php file to a index.html file” please reply sir….
Sunday, July 17th, 2011 14:46
Thanx for these basic php template. This is what i was searching for.
Sunday, July 17th, 2011 11:46
Dear Sir,
I have Uploaded this example template to my homepage and its working, when i upload it to another folder …/M/About_Us/ then its not opening included files only text of index.php is showing and error is:
Warning: include(/includes/header.php) [function.include]: failed to open stream: No such file or directory in /home/mysitecom/public_html/M/About_Us/index.php on line 25
Warning: include() [function.include]: Failed opening ‘/includes/header.php’ for inclusion (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/mysitecom/public_html/M/About_Us/index.php on line 25
plz help me sir
If not, then it's time to learn how to:
You can trust 1stWebDesigner to help you become a better web designer!
- Jacob Cass | Just Creative
Just enter your name and email below and click Get Updates!
Wayne
Friday, February 10th, 2012 20:59
Nice tutorial on creating a first php template
Jay
Saturday, February 11th, 2012 07:35
Great tutorial. Very easy to understand.
habib
Wednesday, February 15th, 2012 22:46
Thanks a bunch, this was very helpful and easy to understand. Very good work, thanks .
Vin
Saturday, February 18th, 2012 13:30
Thanks a lot.. very much appreciated… but can i ask?? what if i want to have a database? can i add in that site a database??
Munish
Saturday, March 10th, 2012 08:17
when i am download the demo zip file its ask username and password ?
so plz tell me what is it.????
Mukesh
Sunday, March 11th, 2012 14:12
I am getting lots of error….. Can you plz help me. I am using Wamp. I have copied these files in www folder of wamp. I index.php on localhst. Getting error with include functin.
Ian
Tuesday, March 6th, 2012 18:26
That are great .!! all be cool topic and , you are great..!!
Thank you.
mahesh
Tuesday, March 6th, 2012 06:14
great tutorial….!!!
But, can you explain how to use wordpress with this php web site and also how to add plugins and themes to the website…
Thanks in advance..
Rohit
Wednesday, February 29th, 2012 14:13
thanks for above imformation it is help ful to me please also tell me how to work with data base…..
i waiting for you reply…………
annu
Saturday, March 3rd, 2012 08:10
Really great tutorial for all PHP beginners.
I like your way of explanation. its simple to understand for all beginners who don’t know a lot in php.
keep it up.
best of luck
Andrew
Monday, March 5th, 2012 16:47
hi there followed the steps and works nice in dreamweaver however how to i make it working on my website??
guess i have to put the website name somewhere but no idea where. please help
Esteban Gambino
Wednesday, February 8th, 2012 06:44
Greetings Kevin – thanks for sharing your knowledge with others who are just beginning to delve into creating their first php powered site. This is the most straight forward tutorial that I have viewed as of late. Whenever you have the time, would you mind adding the technique for displaying graphics in the header and footer files. I use Slackware if that makes a difference (the paths would be the only difference) in my humble opinion! Thanks again.
shawn
Wednesday, February 8th, 2012 09:25
Thanks a bunch, this was very helpful and easy to understand. Very good work, thanks a lot!
Sabrina
Wednesday, January 18th, 2012 14:59
How do i test it to see if it works?
dev
Saturday, January 21st, 2012 00:38
Very nice
Rizwan
Wednesday, January 18th, 2012 12:09
Great piece of Work !!!
Bravo…. This tutorial is very comprehensive though very simple to understand.
Great !!!!!…..
I don’t have any words to express my emotions for this nice piece of tutorial
SULTAN
Tuesday, January 17th, 2012 13:00
thanks!
this is amazing
please tell me sir that how i can add search bar to my website.
i try it but it don’t working.
Tina Brooks
Friday, January 13th, 2012 21:46
Until now, I’ve found the whole concept quite daunting. Running our website had been a source of great consternment until I started trying to figure out how to put the pages together. You managed in a few short lessons to concretize what I didn’t understand about the file hierarchies and how they go together.
Now maybe I can actually create my own site without having to pay someone else to do the design work.
Thanks!
cristina
Sunday, January 15th, 2012 22:01
a very good tutorial for beginners like me.i love the way you created all codes in index.html then making each part a php file and calling it. you saved my time .great tutorial.will recommend this to my friends.Godbless!
cristina
Sunday, January 15th, 2012 22:06
just a recommendation,please add a button for navigation to php files,so that user can know the flow of the code..thanks
DM
Sunday, January 22nd, 2012 17:35
Excellent!! I have only used php includes in the past. Never used a variable before to alter some changes. Thanks heaps.
CHEERS :)
Richmond
Monday, January 23rd, 2012 21:03
Thanks for great work. For a people like me who are beginners in programming, you have set our feet on solid ground.
This is a very great tutorial.
Ben
Thursday, February 2nd, 2012 01:09
Sidebar did not show up. Anybody else have this problem? Tried 2 browsers.
vinil
Sunday, February 5th, 2012 12:16
indeed good post i tried the same you posted and got the result my web page is in front of me thanks a lot .I am waiting for another good post for advance development in same sequence
Susan
Wednesday, January 25th, 2012 17:19
I’m just learning about templates & php, so this article came at an advantageous time for me. thank you!
One question, when entering the info for the footer into the variable.php document, would you type instead:
$footer=’Copyright © 2010 Website Name’;
Many thanks!
Susan
Wednesday, January 25th, 2012 17:23
What I wanted to say, and the post wouldn’t allow it, was:
$footer=’Copyright © 2010 Website Name’;
Let’s see if it’ll work this time!
Susan
Wednesday, January 25th, 2012 17:25
Well, that didn’t work either!
Never mind, then! I’ll just test it out with XAMPP.