2011-11-15 18 views
4

JavaScriptから作成したセッション変数にアクセスすることはできますか?このPHPコードをJavaScriptでどのように複製できますか?JavaScriptからセッション変数にアクセスする

if(empty($_SESSION['name'] { 
    echo 'foo'; 
} 
+0

セッション変数を使用してのポイントは、彼らがクライアント側に表示されていないということです... – Esailija

+0

そのようのビットハメ、それらにアクセスすることに何か不利な点はありますか? –

+0

"foo"の代わりに実際に隠されているデータがあれば、ブラウザからセッション変数を任意にチェックすることができます。 – Esailija

答えて

4

あなたは変数の値を返すことになるAjaxを介して、ページにアクセスできますjQueryのを使用して

$.get('myVariable.php', function (data) { 
    alert(data) 
}); 

そしてPHPページ(myVariable.php):よく

<?php echo $_SESSION['user_id']; ?> 
0

javascriptの

からそれらがあなたのWebサーバのメモリに常駐

番号をPHPで作られたセッション変数にアクセスすることが可能であり、幸いにも、Javascriptをアクセスできません。

0

セッション変数はサーバーに格納されます。 javascript(クライアント側)を使ってそれらにアクセスする唯一の方法は、AJAXを使用してバックエンドにPHPページへのリクエストを行い、値を返すことです。

0

いいえ、できません。セッション変数は、クライアントではなくサーバーに格納されます。あなたができる最も近いことは、PHPスクリプトでセッション変数を確認し、ajaxで呼び出すことです。

1

を... ajaxは素晴らしく、すべてですが、本当に欲しいのであれば、頭の中のタグの変数としてそれらを印刷して、jsの方法でアクセスしてください。私は、セッション変数とすることをやったことがないが、私はそのようにすべての時間

+0

私は安全な/私的なデータのあらゆる種類のためにこれを使用しません。クライアントはセッション変数に直接アクセスすることはできませんが、javascriptにそれらを送信し、そこに論理を使用して、たとえば、人を認証すれば、問題にぶつかることがあります。 javascript変数を "偽造"するのは非常に簡単なので、100%正確であるとは信じられません – Landon

3

申し訳ありませんが、PHP(MySQLの)からの値をプリントアウトができますが、少し背景をまず

:(ことはできません。

PHPで

セッションのサポートは、複数回のアクセスを通じて特定のデータを保持するための方法で構成されています。これは、あなたがより多くのカスタマイズされたアプリケーションを構築し、あなたのウェブサイトの魅力を高めることができます。

Webサイトの訪問者が割り当てられています一意のID、いわゆるセッションID。これは、ユーザー側のCookieに格納されているか、URLに伝播されています。

セッションサポートでは、任意の数の変数を登録して、複数の要求にまたがって保存することができます。訪問者があなたのサイトにアクセスすると、PHPは自動的に(session.auto_startが1に設定されている場合)、要求に応じて(明示的にsession_start()または暗黙的にsession_register()によって)特定のセッションIDが要求とともに送信されたかどうかをチェックします。この場合、以前保存された環境が再作成されます。 http://www.php.net/manual/en/intro.session.php

から は基本的にセッションは、データ・サーバー側を格納し、クッキー、クライアント側のIDを格納伴います。 JSが理論的にはクッキーにアクセスできることを意味しますが、それではPHPSESSID変数(セッションID)にアクセスすることができます。

あなたがしようとしていることを達成するには、ajaxを使用できます。 (よくある誤解とは対照的に)ajaxリクエストは、クッキーとセッションにアクセスするために必要なすべての情報をサーバーに提供します。

だから、単純に含まれているgetName.phpのようにサーバー側のスクリプトを作る:

if(!empty($_SESSION['name'])) { 
    echo $_SESSION['name']; 
} 

と使用AJAXを応答を取得するために:)

+0

または、Digital Precisionが言ったことを実行して、AJAXをスキップします。 –

3

あなたの設定あなたのJavascriptをPHPで解析する場合は、あなたがアクセスすることができますちょうどあなたがPHPでできるようなセッションVARS:

// Test.php 
<?php session_start(); ?> 

<?php $_SESSION['foo'] = 'bar' ?> 

<script type="text/javascript"> 
    alert('<?php echo $_SESSION['foo'] ?>'); 
</scrip> 

<?php var_dump($_SESSION['foo']) ?> 
関連する問題