session_start() not working and giving warning although it's on the top of the page <p>This code was working properly in Xampp but it's not working after I uploaded it on the server</p> <pre><code>&lt;?php ob_start(); session_start(); if(session_status()!=PHP_SESSION_ACTIVE) { session_start();} if(!isset($_SESSION['username']) || !isset($_SESSION['password'])) { header('location:login.php'); } $connection=mysqli_query('localhost','username','password','dbname') ?&gt; &lt;!DOCTYPE html&gt; &lt;html lang="en" xmlns="http://www.w3.org/1999/html"&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; </code></pre> <p>The page has loaded fine but it's giving error on top of the page and because it's an admin page it must not open unless the session is set. this is the warning that I am getting right now.</p> <pre><code>Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home3/index.php:1) in /home3/index.php on line 3 Warning: Cannot modify header information - headers already sent by (output started at /home3/index.php:1) in /home3/index.php on line 7 </code></pre>