2012-02-05 18 views
1

WebアプリケーションをWebアプリケーションとして追加するのは簡単です。ここで素敵なarticleを見つけてください。iPad/iPhone:Webアプリケーションでセッションを維持する方法

問題は、セッションを開いたままにしておくことです。別のアプリに切り替えると、セッションは閉じられ、ユーザーは自分の資格情報を再入力する必要があります。

stack-overflowに似たようなエントリがあります。

いくつかのヒント?

答えて

1

$_SESSION変数にログイン情報を格納する代わりに、$_COOKIEに格納します。 Cookieは、期限切れに設定されたときに保存されます。彼らがWebアプリケーションの "内部"にログインするか、通常のWebバージョン(およびCookieが同じである)にログインするたびに、ログインするたびに、またはその間に切り替える必要はありません。

+1

この回答を削除する必要があります! $ _COOKIE変数にログイン資格情報を保存しないでください。これは巨大なセキュリティ上のリスクであり、誰かがこの人のアドバイスを取ることになります! – leewilson86

+1

'$ _COOKIE'が匿名で、実際のログイン認証ではない場合。 – adamdehaven

1

トリックは、これを行うことです。

// Start or resume session 
session_start(); 

// Extend cookie life time by an amount of your liking 
$cookieLifetime = 365 * 24 * 60 * 60; // A year in seconds 
setcookie(session_name(),session_id(),time()+$cookieLifetime); 

私はiOSの4.2.1、5.1.1、6.0および6.1上で動作するように、これをテストしました。デバイスの電源を切って再起動しても、セッションは復元されます。あなたはこの質問の私の答えを見てみることができますこの戦略のより精巧な議論については

Maintain PHP Session in web app on iPhone

+0

これは7.0と7.1でも動作します。これに関連するいくつかのバグがあるようです。セッションが復元されないことがあります。アイコンを削除して履歴/クッキーを消去すると役立つようです。しかし、あなたがWebアプリケーションにサインインしていて、アイコンを閉じ、履歴を消去して、アイコンをもう一度追加すると、私はサインインしているので、クッキーはどこか別の場所に保存されます。 – Niclas

+0

真剣に - 私たちがクッキーを期限切れにする理由は...これは解決策ではありません –

+0

こんにちはTim、あなたはまだ有効期限が切れる、私は問題が表示されません。質問は具体的には*セッションを生きたままにすることを目指しています。私は、セッションの存在全体がそのクッキーの存在に依存するので、セッションクッキーの存続期間を延長する以外に、セッションを生きたままにする他の方法は考えられません。私はあなたがもっと良い解決策であると思うことを聞いて本当に好奇心です。 –

関連する問題