2010-11-20 13 views
0

私のCakePHPアプリケーションで、私は ".js"ファイルにアクセスする必要があるいくつかのコントローラにセッション変数を作成しています。これを行う方法はありますか?CakePHPの.jsファイルでセッション変数にアクセスする方法

+1

なぜ、正確には?セッション変数はサーバ側のみになるように設計されています。 – strager

+0

同意、セッション変数、または任意のサーバー側変数は、クライアント側コードで直接処理/アクセスされるべきではありません。 –

+0

strager、sandeepan:セッションにユーザー名を保存すると、そのデータクライアント側へのアクセスが許可されていないと言っていますか? – dogmatic69

答えて

2

私はこのようなパラメータとして渡すことをお勧め:あなたはPHPを通じて.jsファイルを解析するようにサーバーを設定することができ、またはあなただけのJSファイル.phpに名前を付けることができますjavascript関数some_function()をインラインではなく処理します。この方法で、JavaScriptコードをサーバー側のコードから解放することができます。これは最もクリーンな方法です。

セッション変数がサーバー側であるため、クライアント側の言語でインラインコードで直接処理しないでください。

+0

1

JSファイルを動的に生成して、必要な値が含まれるようにする必要があります。

<a onclick="some_function('<?php echo $_SESSION['var'] ?>')">Click</a> 

と持っている -

var myVar = '<?php echo addslashes($_SESSION['myVar']); ?>'; 
+0

は、jsのコーディング標準点とPHPコードの混合です。これを行う代わりに、サーバー側の値が必要な場合は、jsファイルを別々にしてjs関数にパラメータを渡す方が良いのですか? –

+0

@sandeepan:もちろん、私は最初にインラインスクリプトを提案するつもりだったが、OPが.jsファイルに言及したので、私の答えを編集した。 – casablanca

+1

セッションヘルパーを持っているときに$ _SESSIONを直接使用するのはベストプラクティスではありません。 PHPを使用して資産をプッシュすると悪化します。何百万回も遅くなり、ブラウザがキャッシュするときに何が起こるのでしょうか、それを無効にします。 – dogmatic69

関連する問題