0

私は Codeigniter を使用しており (これが問題の原因である可能性があります)、いくつかの Cookie とセッション変数によってユーザーを識別しています。ユーザーがサインアップしたいが、Cookie に基づいて既にアカウントを持っているように検出された場合 (たとえば、他の誰かが自分のコンピューターにサインアップした場合)、サインアップ フォームが送信された後、現在コントローラーで次のように処理されます。

  • 検出されたユーザー #4 が既にアカウントを持っているが、まだサインアップしている場合: セッションと Cookie を削除し、新しいユーザー識別セッションと Cookie をユーザー #5 として作成し、DB の処理に進みます。
  • それ以外の場合は、ユーザー #4 として DB を続行します。

問題: セッションおよび/または Cookie の削除は、次のページの読み込み時にのみ発生します。つまり、ユーザー 4 をサインアップ (現在のユーザー 4 を上書き) しますが、次のページが読み込まれるとすぐにユーザー 5 (DB に何もない) になります。ページの読み込み。正しい動作は、削除の瞬間を取得することです。これにより、新しいセッション + Cookie を作成すると、ユーザー #5 のアカウントが正しく作成されます。

次のページの読み込み時ではなく、セッション変数と Cookie を即座に削除するにはどうすればよいですか?

更新: いくつかのテストの後、次のページが読み込まれる前に Cookie が削除されません。セッション変数は即座に削除されますが、次のページが読み込まれるまで設定されません。そのため、2 つの異なる問題を修正して、両方が即座に削除され、再度設定されるようにします。

4

2 に答える 2

0

最後に、スクリプトを変更して、新しいユーザーを直接作成し、ユーザーを識別するために Cookie やセッションに依存しないようにしました。これは、Cookie やセッション変数がいつ削除されるかを心配する必要がないことを意味します。

于 2013-06-04T21:26:57.007 に答える