Page 1 of 1

Problem with SITE_ROOT

Posted: Sat Apr 09, 2016 1:59 am
by munkitkat
I am teaching myself php (working through a textbook) and have hit a couple of problems. I've just spent about 4 hours trying to get the SITE_ROOT configured. I have selected public_html/exercises as the ROOT using

define("SITE_ROOT", "/public_html/exercises/");

Now, I on error I want to redirect to public_html/exercises/scripts/show_error.php. I'm using

function handle_error ($user_error_message, $system_error_message) {
header("Location: " . SITE_ROOT . "scripts/show_error.php?" . "error_message={$user_error_message}&" . "system_error_message={$system_error_message}");
exit();
to do that but each time I get

The requested URL /public_html/exercises/scripts/show_error.php was not found on this server.

What am I doing wrong?

Re: Problem with SITE_ROOT

Posted: Sat Apr 09, 2016 2:35 am
by requinix
How do they define SITE_ROOT? Is it supposed to be a file path on the server or is it supposed to be a URL? Yes, they are two different things - they overlap a lot, but they are not the same.

It looks like you've given it a value for a file path but you're using it like it has a URL. Try changing it to just "/exercises/".

Re: Problem with SITE_ROOT

Posted: Sat Apr 09, 2016 12:51 pm
by Christopher
A quick search suggests that you are using a tutorial for lynda dot com. There are several other tutorials that define SITE_ROOT as absolute path to the public HTML directory -- which makes sense from a name using "root". That tutorial seems to use SITE_ROOT as what in HTML is referred to as <base> or sometimes defined as BASE. So bad naming lynda! Maybe try something "http://mysite.com/exercises/" or "http://localhost/exercises/", or the partial URL requinix suggested.