使用Javascript讀取會話值有可能嗎?使用Javascript讀取會話值
例如,如果我分配一個值到PHP中的會話:
$_SESSION['msg'] = "ABC Message";
是否可以讀取$_SESSION['msg']
使用Javascript?
使用Javascript讀取會話值有可能嗎?使用Javascript讀取會話值
例如,如果我分配一個值到PHP中的會話:
$_SESSION['msg'] = "ABC Message";
是否可以讀取$_SESSION['msg']
使用Javascript?
$ _SESSION是一個服務器端構造。您需要將該變量存儲在$ _COOKIE中以便能夠訪問它在客戶端。
..或者你可以使用AJAX到你的服務器端的會話值retrive到您的客戶端javascript.` (快速,骯髒的和未經考驗的例子,使用jQuery)
JavaScript端:
$.ajax({
url: "test.php",
cache: false,
success: function(html){
eval(html); /// UGLY NASTY YOU MUST VALIDATE YOUR INPUTS... JUST AN EXAMPLE
}
});
PHP側的test.php:
echo 'var myData = "'. $_SESSION['msg'].'"';
一個非常簡單的方法是用一些PHP代碼來生成JavaScript:
<script type="text/javascript">
<?php echo 'var msg = "'.json_encode($_SESSION['msg']).'";';
</script>
<script type="text/javascript">
var foo="<?php echo $_SESSION['user_id']; ?>";
alert(foo);
</script>
爲了讓路易斯Melgratti's的一種更簡單的例子回答你可以從PHP和使用返回JSON編碼值jQuery來分析它,就像這樣:
的Javascript:
$("#some_button")
.click(function()
{
$.ajax(
{
url: "get_session.php",
cache: false
})
.done(function(result)
{
var session_credentials = $.parseJSON(result);
console.log(session_credentials);
});
});
PHP:
//get_session.php
<?php
session_start();
echo json_encode($_SESSION);
?>
我相信有一個相似的,所以線程這裏更答案:how-to-access-php-session-variables-from-jquery-function-in-a-js-file
如果這可以幫助任何人,那些例子返回null
,所以我只是用:
<?php session_start();
$msg = $_SESSION['msg'];
?>
<script>
<?php echo "var msg = '" .$msg . "'"; ?>
</script>
它可能工作:
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
getCookie('PHPSESSID');
爲什麼這被投票了?哈託的解決方案證明它是不真實的。 – da5id 2009-04-16 22:46:34
因爲答案的第一部分非常正確。 – Kalium 2009-04-16 22:47:44
是同意的,但它沒有回答這個問題,而且實際上提供了誤導性的信息。 – da5id 2009-04-16 23:28:12