How to fix “Headers already sent” error in PHP


Warning: count(): Parameter must be an array or an object that implements Countable in /home/styllloz/public_html/qa-theme/donut-theme/qa-donut-layer.php on line 274
0 like 0 dislike
36 views

When running my script, I am getting several errors like this:

Warning: Cannot modify header information - headers already sent by (output started at /some/file.php:12) in /some/file.php on line 23

The lines mentioned in the error messages contain header() and setcookie() calls.

What could be the reason for this? And how to fix it?

by (550 points) | 36 views

1 Answer

0 like 0 dislike
The page/output always follows the headers. PHP has to pass the headers to the webserver first. It can only do that once. After the double linebreak it can nevermore amend them.

When PHP receives the first output (print, echo, <html>) it will flush all collected headers. Afterwards it can send all the output it wants. But sending further HTTP headers is impossible then.
by (1.2k points)

Related questions

0 like 0 dislike
1 answer
asked Apr 9, 2019 by danilochagov
0 like 0 dislike
1 answer
0 like 0 dislike
2 answers
asked Apr 13, 2019 by webJunior
110,608 questions
257,186 answers
0 comments
28,105 users