2016-02-06 78 views
1

我正试图解决这个php会话相关的错误。请帮助我。谢谢!php session无法发送会话cookie

警告:在session_start():不能发送会话cookie - 通过发送已经头 (输出开始在C:\ XAMPP \ htdocs中\ MyFolder文件\的login.php:117)在 C:\ XAMPP \ htdocs中\在线MyFolder文件\ login.php中155

警告:在session_start():不能发送会话缓存限制器 - 头 已经发出(输出开始 C:\ XAMPP \ htdocs中\ MyFolder文件\的login.php:117)在 C:\ xampp \ htdocs \ myfolder \ Login.php on line 155

这里是PHP代码:

$adm_user=$_POST['username']; 
$adm_pass=$_POST['password']; 
if($adm_user=="" || $adm_pass=="") 
{ 
    echo'Fields Cannot Be Empty'; 
} 
else 
{ 
    $adm_login_sql="SELECT admin_login.username, admin_login.password 
        FROM admin_login 
        WHERE username='$adm_user' AND password='$adm_pass'"; 

    $adm_login_query=mysql_query($adm_login_sql); 

    if (!$adm_login_query) 
     { 
     echo "Error: No records found" . mysql_error(); 
     } 
    else 
     { 
      echo "query successful<br>"; 

      $adm_login_row=mysql_fetch_array($adm_login_query); 

      $check_uname=$adm_login_row[0]; 
      $check_pass=$adm_login_row[1]; 


       if($check_uname==$adm_user && $check_pass==$adm_pass) 
       { 
        session_start(); 
        $_SESSION['name']=$adm_user; 

        header('location:admin.php'); 
       } 
       else 
       { 
        echo 'Password Missmatch!!!'; 
       } 

     } 
} 
+1

把'session_start();'放在每个页面的顶部,刚开始'<?php'标记后问题就解决了。 –

+0

您是否尝试过我的建议?如果是的问题解决或没有?如果是,那么做标记,如果没有让我们知道 –

+0

Arun请标记并向上投票答案。它会帮助别人。谢谢 –

回答

1

添加@ob_start();在第一行代码,并更改
session_start();@session_start();

+0

为什么要这样做?跳过错误是一个不好的选择。尝试解决错误,不要跳过。 –

1

"Headers already sent"意味着你PHP脚本already sent the HTTP headers,因此它不能进行修改,他们现在。

检查您是否在致电session_start()之前不发送任何内容。更好的做法是,是你在PHP文件中做的第一件事情(所以在绝对的开始,所有的HTML等)。

相关问题