0

サイトにユーザー ログイン システムがあり、混乱しています。現在、ユーザー ログイン システムに [Remember Me] チェックボックスがありません。現在、私はこのようなものを使用してユーザーをログインさせています。

$_SESSION['user_id'] = $_POST['user_id'];
$_SESSION['user_name'] =$_POST['user_name'];

しかし、今、「Remember Me」チェックボックスを入れたいので、そのために COOKIE を使用する必要があります。手続きはどうしたらいいのか知りたい

If user checks the 'Remember Me' Checkbox I need to use COOKIE. 
But If user does not check the 'Remember Me' Checkbox should I use SESSION? or COOKIE?
4

5 に答える 5

0

SESSION ID をどこかに保存する必要があります。これは、すべてのリクエストに接着されたCookie またはGETパラメーターのいずれかです。GET通常、 を呼び出すと自動的に Cookie が使用されますsession_start()

于 2013-05-09T11:04:11.193 に答える
0

Cookie を使用すると両方を行うことができますが、データはクライアント側に保持されるため、データを暗号化する必要があります。

セッションでは、ユーザーがログインしている間のみデータを保持できます。

答えはクッキーです

于 2013-05-09T11:02:57.410 に答える
0

セッションIDはCookieに保存されるため、セッションの場合はとにかくCookieが必要です。

「remember me」機能では、セッション cookie の有効期間を延長できます (デフォルト 0 - ブラウザ セッションの終了時に有効期限が切れます)。そのため、ユーザーのログイン時に、「remember me」がチェックされている場合、セッション Cookie の有効期限が長い時間 (たとえば、1 週間) に設定され、「remember me」がチェックされていない場合、セッション Cookie の有効期限が 0 に設定されます (ブラウザーの終了時)。セッション)。

于 2013-05-09T11:03:17.050 に答える
0

$_SESSION を使用

セッションは、ユーザー名やパスワードなどのデータをサーバーに保持し、セッション ID を含む Cookie をユーザーに提供します。これにより、どのデータ セットがどのブラウザーに属しているかがサーバーに通知されます。セッション ID を保存する方法がありますが、それは範囲外です)。セッション Cookie がブラウザのキャッシュに残っていて、有効な (期限切れにならない) 限り、ログインしたままになります。

「ログイン状態を維持する」機能は、セッション Cookie の有効期限を延長することで実装できます。これはおそらく最も安全なオプションです。ただし、それを掘り下げたい場合は、セッションハイジャックについて読んでください。

こちらをご覧ください: http://php.net/manual/en/function.session-set-cookie-params.php

特に:

session.cookie_lifetime

言及されているように、値のデフォルトは0で、ブラウザが閉じられるまでです。妥当な秒数、1 日で 86400 にします (数学に疲れていない限り)。ブラウザのキャッシュがクリアされない限り、1 日ログインしたままにします (ブラウザの終了時は一般的ですが、それについては何もできません)。上向きの上限は符号付き整数の最大値だと思うので、2,147,483,647 / 86,400 = 24,855(ish)日です。必要に応じてたくさん。

于 2013-05-09T11:24:50.123 に答える