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

Chris Grazioli
Chris Grazioli
31,225 Points

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");
?>
geoffrey
geoffrey
28,736 Points

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>
Chris Grazioli
Chris Grazioli
31,225 Points

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

geoffrey
geoffrey
28,736 Points

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.