1

私はCodeIgniterを使用しており、ユーザーの記憶機能を実装しています。

基本的に、別のスタックオーバーフローの投稿から、そのユーザーのランダムな文字列を生成し、データベースとCookieに保存する正しい方法でこれを実装しました。サイトの読み込み時に、そのCookieを確認します。そのCookieが見つかった場合は、データベースで確認します。データベースで見つかった場合は、そのユーザーのセッションを再作成します。

私が抱えている問題は、サイトをロードするときです。Cookieの値を取得しており、AJAX呼び出しからも正しい応答を取得しています。ただし、セッションを再作成するには、リンクをクリックする必要があります(ログインしているユーザーのメニューが表示されるなど)。

メインコントローラーのインデックスメソッドが呼び出された後、セッションを再作成していると思います。Code Igniterでこれを回避するにはどうすればよいですか?できればすべてのページで最初に実行されるこのコードをどこに置くことができますか?たとえば、ユーザーがホームページではなくサイトの連絡先ページにアクセスした場合にも、セッションを再作成したいと思います。

よろしくお願いします。

4

1 に答える 1

2

CodeIgniterを使用すると、開発者は、コントローラーメソッドが呼び出される前のさまざまな時点で呼び出されるフックを作成できます。

フックの使用方法の簡単な説明は次のとおりです。

http://codeigniter.com/user_guide/general/hooks.html

セッションにアクセスする場合は、post_controller_constructorフックを使用することをお勧めします。フックは、コントローラーコンストラクターの実行後、アクションメソッドが呼び出される前に呼び出されます。(プリコントローラーcodeigniterフックでCIセッションにアクセスします

于 2012-08-19T21:21:42.023 に答える