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 Build a Basic PHP Website (2018) Adding a Basic Form Redirecting After a Form Submission

Zijun Liao
Zijun Liao
13,409 Points

Send string to browser before redirection

In this video, Alena mentioned that we should not send any string to the browser before the redirection, otherwise it causes an error.

I just wondering what does sending a string to browser means, like echo anything? I tried echo "XXX", but it still works as usual.

Cliff Jackson
Cliff Jackson
2,887 Points

I am also on this part at the moment and it's a little confusing as a lot of how she explains things is very vague. One of the questions in the section after had an echo statement before the redirect which the answer was an error would be shown although the echo statement would still show.

1 Answer

Ricardo Vermaat
Ricardo Vermaat
150 Points

When you redirect using a header() function you cannot already have headers sent to the browser prior to this function.

For example:

echo 'Hello World!';
header('Location: teamtreehouse.com');

Will result in a warning:

PHP Warning: Cannot modify header information - headers already sent by (output started at / home/treehouse/workspace/index.php:2) in /home/treehouse/workspace/index.php on line 3

Here you can read more about sending headers

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP.