2014-11-22 144 views
0

我尝试登录加载页面,但也有两个误区:无法发送会话cookie - 标题已经发出(当在session_start())

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 

线19 session_start();。我试图删除浏览器中的所有cookie,但没有帮助。有任何想法吗?

<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>'); 
     } 
+0

和空格周围有落后的session_start() – panther 2014-11-22 12:42:11

+0

也许到这里看看:http://stackoverflow.com/q/15367131/ 3933332 – Rizier123 2014-11-22 12:42:20

回答

0

session_start()必须在所有输出之前移动您的PHP代码。

<?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> 
    ... 
+0

没有帮助。错误是一样的 – Andrew 2014-11-22 12:53:13

+0

你有没有第19行?在你的问题代码中,我没有看到COOKIES。 – panther 2014-11-22 12:54:19

+0

session_start();是第19行 – Andrew 2014-11-22 13:07:48

0

我认为的代码将工作

<?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> 
相关问题