2011-09-15 13 views
4

私は自分のホストサーバーをWindowsからLinuxシステムに変更しました。 、PHPセッションの開始「セッションのCookieとキャッシュリミッタを送信できません」

<?php 

session_start(); 

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

if ($username && $password) 
{ 

$connect = mysql_connect(***,***,***); 
mysql_select_db("phploginregister") or die("Couldn't find db"); 

$query = mysql_query("SELECT * FROM users WHERE username='$username'"); 

$numrows = mysql_num_rows($query); 

if ($numrows != 0) 
{ 

    while ($row = mysql_fetch_assoc($query)) 
    { 
    $dbusername = $row['username']; 
    $dbpassword = $row['password']; 
    } 

    //check to see if they match! 
    if ($username == $dbusername && md5($password) == $dbpassword) 
    { 
    echo "You're in! <a href='member.php'>Click</a> here to enter the member page."; 
    $_SESSION['username'] = $dbusername;  
    } 

    else 
     echo "Incorrect password"; 
} 
else 
    die("That user doens't exist!"); 

} 
else 
    die("Please enter an username and password"); 



?> 

コードで何が問題になっています:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/p/y/c/francis/html/login/login.php:2) in /home/content/p/y/c/francis/html/login/login.php on line 4 

​​

これは私のプログラムのコードです:私は私のPHPプログラムを実行するときしかし、私はこのエラーを取得しますそれはWindowsホスト上で正常に動作するためです...

+1

このファイルはどこに置いていますか? 'session_start'の前に出力がないことを確認する必要があります。 Windowsサーバーに出力バッファリングが設定されている可能性があります。そのため、エラーは発生しませんでした。 –

+3

おそらくBOMを扱っているでしょう:http://stackoverflow.com/questions/2558172/utf-8-bom-signature-in-php-files – Quasdunk

+1

SOLVED!問題は、スクリプトの前に空白/改行がありました。 – francisMi

答えて

2

あなたは一流BOM、開口部<?phpタグの前に新しい行または他の空白文字を持っています。

エラーを約line 2line 4話が、session_start()上記の実際のコードにline 3に呼ばれています。したがって、先頭の空白が問題です。

-1

私はあなたが追加する必要がありますと思います

あなたのコード

最初

ob_start();

であるため

セッションの

ob_get_contents(); ob_end_flush();

を追加するには、また、サーバにヘッダーを送信エコーを追加しました。ヘッダで)

サーバが今では仕事にob_start();ob_end_flush();を使用するヘッダに持って:)

+0

ob_end_flush()で十分です。obコンテンツを返すob_get_contents()を呼び出す必要はありません。 –

+0

あなたのメモに感謝します:) – SamarLover

4

session_start()を開始する前に出力があるため、エラーが発生します。これは、ファイルの先頭にBOM文字を含むエディタが原因で発生する可能性があります。メモ帳でコードを開いて、session_start()、(スペース)などの前に行があるかどうかを確認して削除してください。

ファイルにbomが追加された場合にエディタを修正するには、設定に移動してオフにする必要があります。

関連する問題