ログインを試みる前に表示していたページにユーザーをリダイレクトしようとしています。たとえば、baseurl/people/abraham_lincoln を見てログインしようとすると、ログイン後に baseurl/people/abraham_lincoln にリダイレクトされます。奇妙なことは、一部の URL では機能し、他の URL では機能しないことです。一部の URL では、以前の URL ではなく、URL として「javascript/jsFunctions.js」が追加されています。
すべてのコントローラーの上部で、リダイレクトを行うためのセッション変数を設定します。
$this->session->set_userdata('Redirect', current_url());
テスト目的で、このセッション変数をコントローラーの上部とログインビューの上部に出力しています。ログインに行ったときに受け取ったいくつかの結果を次に示します。
機能している URL の例:
ログインしようとしている URL:
baseURL/people
Redirect セッション変数としてコントローラーの上部に出力されるもの:
baseURL/people
ログイン ビューの上部に Redirect セッション変数として出力されるもの:
baseURL/people
機能しない URL の例:
ログインしようとしている URL:
baseURL/people/abraham_lincoln
Redirect セッション変数としてコントローラーの上部に出力されるもの:
baseURL/people/abraham_lincoln
ログイン ビューの上部に Redirect セッション変数として出力されるもの:
baseURL/people/javascript/jsFunctions.js
問題があるかどうかはわかりませんが、routes.php ファイルからこれらの URL のいくつかをルーティングしています。
$route['people/(:any)'] = "people/index/$1";
$route['people/(:any)/(:num)'] = "people/index/$1/$2";
次のようなさまざまな方法でセッション変数を作成しようとしました。
current_url()
base_url().uri_string()
base_url().$this->uri->segment(1)....
base_url().$this->uri->rsegment(1)....
探している URL ではなく、これらの JavaScript 変数を取得している理由を誰かが考えられる場合は、入力していただければ幸いです。
ありがとう!
PS、たとえば abraham_lincoln ページなど、機能していないページを更新してからログインすると、正しい Redirect セッション変数が表示されることを忘れていました。最初は正しく設定されていないようですが、ビューが読み込まれる直前と一番上でセッション変数を設定しようとしたため、これを解決する方法がわかりません。