0

iPhoneアプリからログインするときに、ユーザーIDのセッションを保存するphpスクリプトログイン関数を呼び出します。このIDはサーバーまたはiPhoneに保存されますか?

  $_SESSION['IdUser'] = $result['result'][0]['IdUser'];

私が尋ねている理由は、シミュレータを終了してバックアップを開始したときにセッションが保存されていないようであるため、サーバーに保存されていると思います。複数のユーザーが同時にアプリを使用することを期待している場合、セッションをサーバーに保存する必要がありますか、それともクライアントでより適切ですか?サーバーはどのようにしてクライアントからセッションIDを認識/取得しますか?ありがとう。

また、ユーザーにログインしたままにしてもらいたいのです。もちろんです。

4

4 に答える 4

2

セッションに関するPHPのドキュメントはこれについてかなり明確ですが、要約します。

  1. $_SESSIONサーバーに保存されます。実際には、セッション名(通常)を持つ一時ファイルにあります。
  2. サーバーはCookieを介してユーザーのセッションを識別します

デバイスに対応するセッションCookieをリクエストごとに送信させるのが簡単な場合(Webサイトの場合のように)、サーバーストレージで問題ありません。それ以外の場合は、ローカルストレージを使用することをお勧めします。複数のユーザーのセッションが相互にオーバーライドする心配はありません。

于 2013-01-17T03:40:19.710 に答える
2

デフォルトでは、セッションデータはサーバーに保存されます。Linuxでは、通常は/ var / lib / php /ディレクトリ内のファイルにありますが、dbまたはメモリに保存することもできます。

Cookieは、サーバー側のデータを識別するためのトークンとして機能するセッションIDでクライアントに保存されます。/ var / lib / php /のセッションデータの例では、クライアントCookieに保存されているセッションIDは、そのディレクトリのファイル名にマップされます。

于 2013-01-17T03:40:26.233 に答える
1

PHPのデフォルト構成では、セッションデータはサーバーに保存され、識別子はクライアントにCookieとして保存されます。

このCookieがアプリのセッション内で存続するかどうかは、スクリプトを呼び出すコードによって異なります。同じスクリプトを数回呼び出すことでこれを簡単にテストし、セッションが「アクティブ」のままであるかどうかを確認できます。アプリを終了すると、使用したCookieが破棄される場合と破棄されない場合がありますが、これがまさにセッションです。つまり、永続的なものではありません。

ログインの永続性が必要な場合は、電話自体にログイン資格情報を保存して(キーチェーンを使用していることを確認してください)、サーバーが中断された場合にサーバーとのセッションを再確立できます。

于 2013-01-17T03:45:06.980 に答える
0

セッション、または$_SESSION[]変数はサーバーに保存されます。サーバーに保存されることを除けば、Cookieと非常によく似ています。

要約すると、

$ _SESSION [] =(サーバーサイド)

$ _COOKIE [] =(クライアントサイド)

于 2013-01-17T04:22:16.333 に答える