0

サーバー側で CodeIgniter フレームワークを使用して、ネイティブ モバイル アプリにバックエンドを提供しています。サーバー側では、カートを使用する必要があります。CodeIgniter のセッションに db を使用しています。セッションを使用すると、ブラウザの Cookie の session_id によってセッションが機能します。モバイル アプリは、ログイン リクエストが成功した後、サーバーの応答からセッション ID を取得します。この session_id は、以降のリクエストでモバイル アプリからサーバーに送信できます。

CI で sessionid に基づいてセッションのデータを取得する方法はありますか? モバイル アプリが session_id 'xyz' を送信した場合のように、session_id が 'xyz' であるセッションのデータを取得するにはどうすればよいですか? また、セッションでカートを使用しているときにセッションを操作する方がよいでしょうか?

以下は私のログインコードです。セッションはci_sessiondb のテーブルに保存されています。

function login($username,$password){
    $query = $this->db->select("id,username")->get_where(self::$table, array('username' => $username,'Password'=>$password));
    $arr=$query->row_array();
    if($arr){
        $this->session->set_userdata(array('id'=>$arr['id'],'username'=>$arr['username']));
        // $this->db->insert('ci_sessions',array('user_id'=>$arr['id'],'username'=>$arr['username']));
        return $this->session->userdata('session_id');
    }
    return 0;                    
}

では、どうすれば session_id でセッションを取得でき、カートはどのように動作するのでしょうか? このドキュメントのように考えているため: http://codeigniter.com/user_guide/libraries/cart.htmlカートは、ロードされたセッションに対してコンテンツを自動的に保存します。したがって、CI のカート ライブラリを正しく使用できるように、session_id に従ってセッションをロードする必要があります。

session_id に基づいてセッションをロードするにはどうすればよいですか? または、やり方が悪いかどうか教えてください。

4

1 に答える 1

2

まず第一に、質問の形式が非常に悪く、書き留められているため、あまり理解できません...

私がそれを正しく理解していれば、ここにあなたが得るものがあります:

  1. モバイル ネイティブ アプリのユーザー ログイン - CI ベースのサーバーへのリクエスト
  2. CIサーバーはユーザーをログインさせ、データをセッションに保存し、セッションIDでモバイルアプリに応答しながらセッションをDBに保存します
  3. モバイルアプリは、リクエストがサーバーに送信されるたびにセッション ID を送信します (カートを使用する場合など)。

今-セッションがデータベーステーブルに保存されている場合ci_session、提供されたセッションIDに基づいてDBテーブルに保存されたセッションの内容を要求するだけでよいので、ログインスクリプトの例を使用して同様のことを行います:

function loadSessionBySessionId($sessionId){
    $query = $this->db->select("*")->get_where('ci_session', array('session_id' => $sessionId));
    return $query->row_array();              
}

コーディング規約とサーバー側アプリケーションに合わせてコードを拡張します。モバイルアプリからのリクエストを処理するサーバー側アプリケーションの他の場所で、セッションが返されたかどうかを確認し (いいえの場合は FALSE が返されます)、さらにアクションを実行します...

あなたのカートがどのように機能しているかわかりません - この部分はあなた次第です (あなたがあなたのカートで私たちに何を手伝ってほしいかをあなたが私たちに明らかにしない限り)。

于 2012-05-16T13:55:02.693 に答える