0

I try to load page with login, but there are two errors:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\lab4\www\login.php:18) in Z:\home\lab4\www\login.php on line 19

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\lab4\www\login.php:18) in Z:\home\lab4\www\login.php on line 19

line 19 is session_start();. I tried to delete all my cookies in browser, but it didn't help. Any ideas?

<body>
    <?php
        session_start();
        if(isset($_POST["enter"]))
        {                
            $login = $_POST["login"];
            $password = $_POST["password"];
            $query = mysql_query("SELECT * FROM users WHERE password = '$password' AND login = '$login'") or die(mysql_error());
            $user_data = mysql_fetch_array($query);
            if($user_data)
            {                                                       
                $_SESSION["login"] = $user_data["login"];
                $_SESSION["loggedin"] = true;
            }
            else print('<script>alert("Incorrect login or password!")</script>');
        }
Rizier123
  • 58,877
  • 16
  • 101
  • 156
Andrew
  • 391
  • 2
  • 4
  • 12

2 Answers2

0

session_start() has to be before all output, move your PHP code before that.

<?php

session_start();

if (isset($_POST["enter"])) {                
    $login = $_POST["login"];
    $password = $_POST["password"];
    $query = mysql_query("SELECT * FROM users WHERE password = '$password' AND login = '$login'") or die(mysql_error());
    $user_data = mysql_fetch_array($query);

    if ($user_data) {
        $_SESSION["login"] = $user_data["login"];
        $_SESSION["loggedin"] = true;
    }
    else print('<script>alert("Incorrect login or password!")</script>');
}

// another PHP code

?>

<body>
    ...
pavel
  • 26,538
  • 10
  • 45
  • 61
0

I think that code will be work

<?php

session_start();

if (isset($_POST["enter"])) {                
    $login = $_POST["login"];
    $password = $_POST["password"];
    $query = mysql_query("SELECT * FROM users WHERE password = '$password' AND login = '$login'") or die(mysql_error());
    $user_data = mysql_fetch_array($query);

    if ($user_data) {
        $_SESSION["login"] = $user_data["login"];
        $_SESSION["loggedin"] = true;
        $tpl_body='You are in';


    }
    else $tpl_body='<script>alert("Incorrect login or password!")</script>';
}

// another PHP code

?>

<body>


<?php

echo $tpl_body;

?>

</body>