2013-07-04 76 views
0

我已經搜索了很多通網絡,但沒有解決的解決了我problem..and我仍然得到這個錯誤
警告:在session_start()[function.session啓動]:無法發送會話cookie - 頭已經發出(輸出開始 這裏是我的代碼如何刪除無法發送會話cookie錯誤完全

<?php 
    ob_start(); 
    session_start(); 

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

    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 

    $mypassword = md5($mypassword); 

    $con = mysql_connect("localhost", "root", ""); 
    if(!$con) { 
     die('Error connecting to server :'.mysql_error()); 
    } 
    mysql_select_db("user_login",$con); 

    $result = mysql_query("SELECT username, password FROM user_info WHERE username='$myusername' && password='$mypassword'"); 
    if(!mysql_fetch_array($result, MYSQL_ASSOC)) { 
     //echo "<b><p>Wrong username or password.</p></b>"; 
     //echo "<br /><a href='http://localhost/simic/option.php?page=login'> 
     Go back to login page </a>"; 
     header('Location: option.php?page=attempt_to_login'); 
    } else { 
     $_SESSION['access'] = 1; 
     $_SESSION['user'] = $_POST[username]; 
     header('Location: option.php?page=online'); 
    } 
    mysql_close($con); 

    ob_flush(); 
?> 

那麼,如何解決這個問題,請???任何幫助

+0

你在文件前有一些文字[空白] – DevZer0

+0

'session_start();'應該是第一個啓動腳本,將它移動到01行 – jycr753

+0

@ jycr753 session_start()無關緊要,它可以在第2行 –

回答

1

一些服務器在默認情況下添加的內容?生成的HTML,請確保這不是ca (在瀏覽器中檢查生成的源文件,看看是否有什麼你不會期望的)。

也嘗試在PHP文件中刪除BOM標頭(如果它是UTF-8編碼的話)。這不應該是一個問題,但它總是值得一試。

刪除BOM標頭對於每個編輯器都不相同。對於Notepad ++,請轉到編碼菜單,並確保選中「不使用BOM的UTF-8編碼」。如果您使用Sublime Text 2,請單擊文件>使用編碼保存> UTF-8(不包含帶BOM的UTF-8)。

+0

thenx,但其中我是否刪除它? – KIUTA

+0

我用一些說明更新了我的答案。 –

0

你應該檢查你的文件是否有正確的編碼。它應該是沒有BOM的UTF-8。

0

你的問題是你有東西輸出文本到瀏覽器「太早」。從任何源發送的文本的第一個字節將所有HTTP頭信息刷新到瀏覽器,並阻止任何更多的「頭部」類型操作(例如發送會話cookie)。有很多事情可以提前意外地向瀏覽器發送文本:<?php之前的空白,屏幕上的錯誤消息,文件中的UTF-8字節順序標記,或僅僅是程序輸出或HTML錯誤(以前出現Cookie代碼)。查看瀏覽器中的HTML頁面源代碼(查看>頁面源代碼或類似內容),您可能會看到該文本。如果您的頁面爲UTF-8,請將瀏覽器切換爲某種單字節編碼,例如Latin-1,以便將隱藏的字節順序標記刷新。一旦你確定了這篇文章,重要的工作就是追蹤它的來源並修復它。