2013-05-10 47 views
0

我在PHP上有一個變量:$_SESSION["logCode"](值設置和會話啓動),但我不能在jQuery中使用jquery.session.js插件和以下方法訪問它:$.session.get('logCode')(它給我不確定)。誰能告訴我有什麼問題,我該如何修復它

PS:我可以用PHP的價值,但我需要它在JS(jQuery的)

謝謝

回答

3

這個插件無法訪問PHP的會話變量(無插件可以這將是一個嚴重的安全缺陷)。您必須將它們從PHP傳遞給JavaScript。

var myVar = '<?php echo $_SESSION["foobar"]; ?>'; 
+0

哦!我看到你在那裏做了什麼!大聲笑你給了我一個想法,甚至知道這將是一個令人頭疼的執行,因爲我有在單獨的.js文件中使用session.get的代碼!但是,非常感謝:) – 2013-05-10 20:38:46

+1

您還可以將它存儲在相關的元素中:'

">
' – 2013-05-10 20:41:26

+0

不,我已經設法將它放在我的導航欄php文件中,我包含了每個成員都可以訪問的位置,所以我應該感謝上帝我有這個文件:)但任何方式,請留下評論我可能需要那種方法有一天..誰知道? – 2013-05-10 20:48:29

1

當您設置會話變量用PHP那麼該變量存儲在服務器上,它只能通過PHP訪問不jQuery的。 JQuery變量存儲在客戶端計算機中,只能由jQuery訪問。

您可以通過jQuery使用AJAX從客戶端計算機訪問會話變量。

2

js將無法訪問php會​​話存儲。你可以在此獲得的唯一方法是通過注入你的頁面上的JS用PHP暴露它在頁面上...所以在PHP這將是

echo "<script type='text/javascript'>"; 
echo " var logCode = '".addslashes($_SESSION["logCode"])."';"; 
echo "</script>"; 

,或者如果你想獲得批發一切從你可以這樣做:

echo "<script type='text/javascript'>"; 
echo " var sessionData = ".json_encode($_SESSION).";"; 
echo "</script>"; 

但很可能第二種方法可能會發布更多的信息,然後你真的想要。