Можно ли прочитать значение сеанса с помощью Javascript?
Например, если я назначил значение в сеансе в PHP:
$_SESSION['msg'] = "ABC Message";
Можно ли читать $_SESSION['msg']
с помощью Javascript?
Можно ли прочитать значение сеанса с помощью Javascript?
Например, если я назначил значение в сеансе в PHP:
$_SESSION['msg'] = "ABC Message";
Можно ли читать $_SESSION['msg']
с помощью Javascript?
$_ SESSION - это серверная конструкция. Вам нужно будет сохранить эту переменную в $_COOKIE, чтобы иметь доступ к ней на стороне клиента.
Очень простой способ - создать JavaScript с некоторым PHP-кодом:
<script type="text/javascript">
<?php echo 'var msg = "'.json_encode($_SESSION['msg']).'";';
</script>
.. Или вы можете использовать ajax для извлечения значения сеанса на стороне сервера в клиентский 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'].'"';
Если это кому-то помогает, эти примеры вернули null
, поэтому я просто использовал:
<?php session_start();
$msg = $_SESSION['msg'];
?>
<script>
<?php echo "var msg = '" .$msg . "'"; ?>
</script>
Чтобы сделать еще более простой пример ответа Луиса Мелгратти, вы можете просто вернуть json-кодированное значение из PHP и использовать 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);
?>
Я считаю, что есть еще больше ответов на подобную SO-нить здесь: how-to-access-php-session-variables-from-jquery-function-in-a-js-file
<script type="text/javascript">
var foo="<?php echo $_SESSION['user_id']; ?>";
alert(foo);
</script>
Может ли это работать:
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
getCookie('PHPSESSID');