header.php

For uniformity, each page of the project needs to have access to the same set of features. Therefore, I placed these things in header.php (Example 21-2). This is the file that is actually included by the other files, and it, in turn, includes functions.php. This means that only a single include is required in each file.

header.php starts by calling the function session_start. As you’ll recall from Chapter 12, this sets up a session that will remember certain values we want stored across different PHP files. Then the document type is set and the JavaScript O, S, and C functions from Chapter 20 are pulled in from the file osc.js.

With the session started, the program then checks whether the session variable 'user' is currently assigned a value. If so, a user has logged in and the variable $loggedin is set to TRUE.

Based on the value of $loggedin, an if block displays one of two sets of menus. The nonlogged-in set simply offers options of Home, Sign up, and Log in, whereas the logged-in version offers full access to the project’s features. Additionally, if a user is logged in, her username is appended in brackets to the page title and placed after the main heading. We can freely refer to $user wherever we want to put in the name, because if the user is not logged in, that variable is empty and will have no effect on the output.

The styling applied to this file is in the file styles.css (detailed at the end of this chapter); among other things, it creates a wide heading ...

Get Learning PHP, MySQL, JavaScript, and CSS, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.