Session_start () doesn't work and gives a warning even though it's at the top of the page
This code worked correctly in Xampp, but it didn't work after I uploaded it to the server
<?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')
?>
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
The page loaded fine, but it gives an error on top of the page and because it won't open if no session is established. this is the warning i am getting right now.
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
+3
source to share
3 answers
First, there should be no space before <?php
and after the tag ?>
.
Second, make sure you are not submitting ANY content before calling session_start. Better yet, just make session_start the first thing you do in your PHP file (so put it at the absolute start, before all HTML, etc.).
<?php
session_start();
ob_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')
?>
+1
source to share