2011-10-20 15 views
0

私は、ユーザーがリンクをクリックして(明るい色から暗い色に)配色を逆転できるようにするブログを用意しています。このリンクは、ブログの各ページで利用できます。

CodeIgniterを使用していない場合は、パラメータ(たとえば "index.php?inverted = true")を使用してリンクを作成し、コントローラで$ _GET ['inverted']が設定されているかどうかを検出し、 $ _SESSION変数。 $ _SESSIONが設定されると、リンクが変更され、追加のCSSファイルが追加されます。リンクの新しいhrefは "index.php?inverted = false"のようなものになり、$ _SESSION変数は設定されません。これはサイト全体で、残りのURIに関係なく動作します。

私はCodeIgniterでuri_segement関数を使用しようとしましたが、これはサイト全体に渡る必要があるため、私のURIが変更されます(時には "index.php/controller/function"、他の時 "index.php/controller/function/para1/para2/para3 ")。したがって、私は単に自分のリンクを作ることはできません:[反転させた]セグメントがどの数字になるのかわからないので、そのURIセグメントが存在するかどうかを検出してください[href = "$ _ SESSION ['REQUEST_URI']。また、ユーザーが同じページにいてリンクを2回クリックすると、URIは何度も何度も "/反転"を続けていきます。

代わりに$ _POST配列を使用できますが、その後、セッション変数を設定し、その後、あなたが説明するように、リンクがPOSTを経由してフォームを送信してください。これは良い方法ではありません

任意の提案ですか?

答えて

0

を知って、参照ページ(HTTP_REFERER)へのリダイレクトを発行このオプションをオフに切り替えるのと同様のことができます。

+0

HTTP_REFERERは、参照元がブラウザから送信され、無効にすることができるため、適切なソリューションではありません。 – Fabian