Подтвердить что ты не робот

Чтение значения сеанса с помощью Javascript

Можно ли прочитать значение сеанса с помощью Javascript?

Например, если я назначил значение в сеансе в PHP:

$_SESSION['msg'] = "ABC Message";

Можно ли читать $_SESSION['msg'] с помощью Javascript?

4b9b3361

Ответ 1

$_ SESSION - это серверная конструкция. Вам нужно будет сохранить эту переменную в $_COOKIE, чтобы иметь доступ к ней на стороне клиента.

Ответ 2

Очень простой способ - создать JavaScript с некоторым PHP-кодом:

<script type="text/javascript">
    <?php echo 'var msg = "'.json_encode($_SESSION['msg']).'";';
</script>

Ответ 3

.. Или вы можете использовать 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'].'"';

Ответ 4

Если это кому-то помогает, эти примеры вернули null, поэтому я просто использовал:

<?php session_start();
   $msg = $_SESSION['msg'];
?>

<script>
   <?php echo "var msg = '" .$msg . "'"; ?>
</script>

Ответ 5

Чтобы сделать еще более простой пример ответа Луиса Мелгратти, вы можете просто вернуть 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

Ответ 6

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

Ответ 7

Может ли это работать:

function getCookie(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) return parts.pop().split(";").shift();
}

getCookie('PHPSESSID');