Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP Enhancing a Simple PHP Application Cleaning URLs with Subfolders Server Paths and Constants

Can't get a correct Relative Server Path in Enhancing a simple PHP application

What Am I doing wrong here? I've tried both include() and require_once() functions <?php include($_SERVER["DOCUMENT_ROOT"] . "/config/company.php");?>

about/leadership/index.php
<?php include($_SERVER["DOCUMENT_ROOT"] . "/config/company.php");?>
<html>
<head>
     <title>Leadership | Shirts 4 Mike</title>
</head>
<body>

    <h1>Leadership</h1>
    <p><strong>Owner:</strong> ????</p>
    <p><a href="/contact/">Contact</a></p>

</body>
</html>

4 Answers

I see another issue here!

The question says, "use relative server path", but you seems to be using/suggesting the "absolute server path":

<?php
    include($_SERVER["DOCUMENT_ROOT"]."config/company.php");
?>

As per my understanding, the relative server path should be:

<?php
    include("../../config/company.php");
?>

You put a slash before config which isn't required. I 've just tested without that one and that worked.

<?php
include($_SERVER["DOCUMENT_ROOT"]."config/company.php");
;?>
<html>
<head>
     <title>Leadership | Shirts 4 Mike</title>
</head>
<body>

    <h1>Leadership</h1>
    <p><strong>Owner:</strong> ????</p>
    <p><a href="/contact/">Contact</a></p>

</body>
</html>

Doesn't the video specifically say to leave the forward slash on when usin the $_SERVER["DOCUMENT ROOT"] array to get the root host

I don't don't think the video asks to do that. But you don't need to specify the "/", as a test just do this

<?php
   echo $_SERVER["DOCUMENT_ROOT"];
?>

This prints /var/www/ so if ever you add "/" before config, the path won't be good. That will print /var/www*//config/company.php" instead of /var/www/*config/company.php

That's the explanation.