-2

i am getting this error when i uploaded my website "Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /storage/ssd3/749/6048749/public_html/index.php:1" it works fine in localhost but not in remote server. this is my code:

<?php
$host="localhost";
        $uname="id6048749_cman";
        $pas="";
        $db_name="id6048749_cman";
        $tbl_name="admin";

        $con = @mysqli_connect("$host","$uname","$pas") or die ("cannot connect");
        mysqli_select_db($con , "$db_name") or die ("cannot select db");
        ?>

    <form id="login_form1" class="form-signin" method="post">
                <h3 class="form-signin-heading">
                    <i class="icon-lock"></i> Administrator Login
                </h3>
                <input type="text"      class="input-block-level"   id="username" name="username" placeholder="Username" required>
                <input type="password"  class="input-block-level"   id="password" name="password" placeholder="Password" required>

                <button data-placement="right" title="Click Here to Sign In" id="signin" name="login" class="btn btn-info" type="submit"><i class="icon-signin icon-large"></i> Sign in</button>
                <script type="text/javascript">
                $(document).ready(function(){
                $('#signin').tooltip('show');
                $('#signin').tooltip('hide');
                });
                </script>       
            </form>
    </br>
    <div class="error">
    <?php

if (isset($_POST['login'])){

$username=$_POST['username'];
$password=$_POST['password'];

$login_query=mysqli_query($con , "select * from admin where username='$username' and password='$password'");
$count=mysqli_num_rows($login_query);
$row=mysqli_fetch_array($login_query);


if ($count > 0){
session_start();
$_SESSION['id']=$row['admin_id'];
header('location:dashboard.php');
}else{
    header('location:index.php');
}
}
?>



</div>

this is the index.php

<?php include('header.php'); ?>
<body class="body"  id="login">
    <div class="container">
        <div class="row-fluid">
            <div class="span6"><div class="title_index"><?php include('title_index.php'); ?></div></div>
            <div class="span6"><div class="pull-right"><?php include('login_admin.php'); ?></div></div>
        </div>
    <!--    <div class="row-fluid">
           <div class="offset2">        
               <div class="span11"><div class="index-footer"><?php include('link.php'); ?></div></div>      
           </div>
        </div> -->
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>    
            <?php include('footer.php'); ?>
    </div>
<?php include('script.php'); ?>
</body>

</html>

this is the header.php

<!DOCTYPE html>
<html class="no-js">
    <head>

            <title>Church manager</title>
        <meta name="description" content="Church manager">
        <meta name="keywords" content="">
        <meta charset="UTF-8">      
        <!-- Bootstrap -->
            <!-- <link href="images/logo.png" rel="icon" type="image"> -->
            <link href="images/JIL.jpg" rel="icon" type="image">
            <link href="bootstrap/css/indexbg.css" rel="stylesheet" media="screen"/>
            <link href="bootstrap/css/background.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/font-awesome.css" rel="stylesheet" media="screen">
            <link href="bootstrap/font-awesome-4.1.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
            <link href="bootstrap/css/my_style.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/print.css" rel="stylesheet" media="print">            
            <link href="vendors/easypiechart/jquery.easy-pie-chart.css" rel="stylesheet" media="screen">
            <link href="assets/styles.css" rel="stylesheet" media="screen">             
            <link href="bootstrap/css/bootstrap.min1.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/sb_admin.css" rel="stylesheet" media="screen">
        <!-- HTmL5 shim, for IE6-8 support of HTmL5 elements -->
        <!--[if lt IE 9]>

        <![endif]-->
        <!-- calendar css -->
        <script src="bootstrap/js/html5.js"></script>
        <link href="vendors/fullcalendar/fullcalendar.css" rel="stylesheet" media="screen">
        <script src="vendors/jquery-1.9.1.min.js"></script>
        <script src="vendors/modernizr-2.6.2-respond-1.1.0.min.js"></script>
        <!-- data table -->
        <link href="assets/DT_bootstrap.css" rel="stylesheet" media="screen">
        <!-- notification  -->
        <link href="vendors/jGrowl/jquery.jgrowl.css" rel="stylesheet" media="screen">
        <!-- wysiwug  -->
        <link rel="stylesheet" type="text/css" href="vendors/bootstrap-wysihtml5/src/bootstrap-wysihtml5.css"></link>

        <script src="vendors/jGrowl/jquery.jgrowl.js"></script>
    </head>
<?php include('lib/bcon.php'); 
dbcon(); 
?>

EDIT: New version of header.php:

<?php session_start();?>
<html class="no-js">
    <head>

            <title>Church manager</title>
        <meta name="description" content="Church manager">
        <meta name="keywords" content="">
        <!-- Bootstrap -->
            <!-- <link href="images/logo.png" rel="icon" type="image"> -->
            <link href="images/JIL.jpg" rel="icon" type="image">
            <link href="bootstrap/css/indexbg.css" rel="stylesheet" media="screen"/>
            <link href="bootstrap/css/background.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/font-awesome.css" rel="stylesheet" media="screen">
            <link href="bootstrap/font-awesome-4.1.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
            <link href="bootstrap/css/my_style.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/print.css" rel="stylesheet" media="print">            
            <link href="vendors/easypiechart/jquery.easy-pie-chart.css" rel="stylesheet" media="screen">
            <link href="assets/styles.css" rel="stylesheet" media="screen">             
            <link href="bootstrap/css/bootstrap.min1.css" rel="stylesheet" media="screen">
            <link href="bootstrap/css/sb_admin.css" rel="stylesheet" media="screen">
        <!-- HTmL5 shim, for IE6-8 support of HTmL5 elements -->
        <!--[if lt IE 9]>

        <![endif]-->
        <!-- calendar css -->
        <script src="bootstrap/js/html5.js"></script>
        <link href="vendors/fullcalendar/fullcalendar.css" rel="stylesheet" media="screen">
        <script src="vendors/jquery-1.9.1.min.js"></script>
        <script src="vendors/modernizr-2.6.2-respond-1.1.0.min.js"></script>
        <!-- data table -->
        <link href="assets/DT_bootstrap.css" rel="stylesheet" media="screen">
        <!-- notification  -->
        <link href="vendors/jGrowl/jquery.jgrowl.css" rel="stylesheet" media="screen">
        <!-- wysiwug  -->
        <link rel="stylesheet" type="text/css" href="vendors/bootstrap-wysihtml5/src/bootstrap-wysihtml5.css"></link>

        <script src="vendors/jGrowl/jquery.jgrowl.js"></script>
    </head>
<?php
include('lib/bcon.php'); 
dbcon(); 
?>
ZD0128
  • 1
  • 4
  • 3
    session start needs to be before any output. your output in this case is the html. simply move `session_start()` in to the first php block and the error will go away –  Jun 03 '18 at 03:20
  • 1
    Possible duplicate of [How to fix "Headers already sent" error in PHP](https://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php) –  Jun 03 '18 at 03:20
  • I moved it to the first php block but the error just went up. – ZD0128 Jun 03 '18 at 03:42
  • looks like it should be in the top of header then –  Jun 03 '18 at 04:02
  • i added the session_start() in the top of the header.php and removed the session_start() that causes the error but new error comes up, Warning: Cannot modify header information - headers already sent by (output started at /storage/ssd3/749/6048749/public_html/header.php:2) – ZD0128 Jun 03 '18 at 04:58
  • post the new version of header.php –  Jun 03 '18 at 05:46

1 Answers1

-1

remove this line from

if ($count > 0)
{
    session_start(); // remove session here
    $_SESSION['id']=$row['admin_id'];
    header('location:dashboard.php');
}

In your header.php add session start line

<?php session_start();?>

This must be very first line before start of html

  • iI did it but new error comes up, it says, Warning: Cannot modify header information - headers already sent by (output started at /storage/ssd3/749/6048749/public_html/header.php:2) anyway, thankyou for helping me. This is my first time uploading a website. – ZD0128 Jun 03 '18 at 04:55
  • make sure there is no other session_start in the page you are getting that error. – prasanna puttaswamy Jun 03 '18 at 14:28