我正在使用cakePHP 1.26。
在控制器,我得到了它包含以下幾行代碼的函數:
是否可以使用Javascript讀取PHP會話?
$this->Session->write('testing', $user);
$this->Session->read('testing');
現在系統寫了一會話,並存儲在服務器上。 是否可以使用Javascript或Jquery來讀取名爲'testing'的會話?
我正在使用cakePHP 1.26。
在控制器,我得到了它包含以下幾行代碼的函數:
是否可以使用Javascript讀取PHP會話?
$this->Session->write('testing', $user);
$this->Session->read('testing');
現在系統寫了一會話,並存儲在服務器上。 是否可以使用Javascript或Jquery來讀取名爲'testing'的會話?
PHP會話存儲在web服務器的內存中,而JavaScript運行在webclient(webbrowser)中。那些在現實世界中是兩個物理上分離和獨立的機器。他們通常只能通過使用HTTP協議的網絡進行通信。
你有2種選擇:
讓PHP打印會話數據,就好像它是一個JS變量:
<script>var data = '<?= $_SESSION['data'] ?>';</script>
讓JS請求它使用Ajax服務器端。下面是一個基於jQuery例如:
<script>$.get('script.php', function(data) { /* .. */ });</script>
與基本上這script.php
:
<?php echo $_SESSION['data']; ?>
不用說,選項1是最容易和簡單。
不,通常情況下,您可以將testing
的值寫入發送給客戶端的文檔中(可能是?head
中的一個小javascript),然後它可用於客戶端。
不可以。您可以使用JavaScript向PHP頁面發出AJAX get請求,該頁面將讀取會話數據並返回到JavaScript。
正如其他人已經說過的,在客戶端獲得會話需要一些預先考慮(在頁面上脫口而出)或另一個請求。
另一種解決方案是不使用會話,而是使用cookie代替或作爲恭維。只是不相信cookie。用戶可以編輯它們,以便它們只能用於顯示內容。
是否可以使用Javascript或Jquery來讀取名爲'testing'的會話?
沒有,但你可以用PHP把值轉換爲JavaScript:
<?php
print "<script type=\"text/javascript\">\n";
print " var testing=\"" . $_SESSION['testing']/"\";\n";
print "</script>\n";
?>
(或進入HTML和讀回從那裏使用Javascript)
您可以輕鬆地通過會話變量從PHP服務器使用jQuery AJAX到JavaScript。您可以將它作爲Json對象傳遞,然後將其分配給JavaScript變量。