2011-01-25 8 views
0

私は自分のコードでSESSIONを処理し、セッションデータをDBに格納するクラスを持っています。私はクエリを作成し、DBからデータを読み込んで値を返しますが、$ _SESSIONをダンプすると、これは空です。PHPセッション処理(読み込み関数)問題

私はコードをトレースし、私のクエリはcorrentであり、データはロードされますがセッションの値は設定されません。この問題はサブドメインでは発生しますが、session_idとCOOKIEは正しいです。

私の読み取り機能コード:

function read($session_id) 
{    
    $result = @mysql_query(" 
     SELECT 
      session_data 
     FROM 
      session_table 
     WHERE 
      session_id = '".$session_id."' AND 
      session_expire > '".time()."' 
    "); 

    if (is_resource($result) && @mysql_num_rows($result) > 0) { 
     $fields = @mysql_fetch_assoc($result); 
     return $fields["session_data"]; 
    } 


     return ""; 

    } 

マイログイン:

read function log: 
      SELECT 
       session_data 
      FROM 
       sessions_table 
      WHERE 
       session_id = '389dd7fc7bc19ffead7274c0ad860896' AND 
       session_expire > '1295954400' 
read function result log: 
Array 
(
    [session_data] => corret serialized data 
) 

write function log: 
       UPDATE 
        sessions_table 
       SET 
        session_data = '', 
        session_expire = '1295955840' 
       WHERE 
        session_id = '389dd7fc7bc19ffead7274c0ad860896' 
+0

ガベージコレクション機能はどうですか? – RobertPitt

答えて

0

はエラー抑圧演算子(@)を使用しないでください。これが、あなたがあなたのコードで行ったエラーを見るのを妨げる原因で​​す。そのため、コード内のどこにエラーがあるのか​​わからないのです。そのため、あなたのコードにどこにエラーがあるのか​​を尋ねなければなりません。

実際には、コードにエラーはありません。データベースが正しく設定されていないか、SQL構文にエラーがあった場合、mysql_queryはそのことを通知します。

+0

親愛なるOswald:このコードは正しいですし、私のログにはこのクエリに結果がありエラーはありませんが、戻り値の後にこのセッションは空です。 – Akbar

+0

@Akbar:セッションにオブジェクトを保存しますか?予防措置を講ずる必要はありません。 – Oswald

関連する問題