Javascript ile oturum değeri okuyun

5 Cevap php

Bu JavaScript ile bir oturum değerini okumak mümkün mü?

Örneğin, ben PHP bir oturumda bir değer atanmış ise:

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

Bu JavaScript ile $_SESSION['msg'] okumak mümkün mü?

5 Cevap

$ _SESSION Bir sunucu tarafı yapıdır. Bunu istemci tarafında erişmek mümkün $ _COOKIE bu değişken saklamak gerekir.

Çok basit bir şekilde bazı PHP kodu ile JavaScript oluşturmak için:

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

.. Or you can use ajax to retrive your server side session value into you client-side javascript.` (quick, dirty and untested example, using jQuery)

Javascript Side:

$.ajax({
      url: "test.php",
      cache: false,
      success: function(html){
        eval( html ); /// UGLY NASTY YOU MUST VALIDATE YOUR INPUTS... JUST AN EXAMPLE
      }
    });

PHP side test.php:

echo 'var myData = "'. $_SESSION['msg'].'"';

Luis Melgratti cevabı bir daha kolay örnek yapmak için sadece PHP bir json kodlanmış değer döndürür ve bu gibi, bunu ayrıştırmak için jQuery kullanabilirsiniz:

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);
?>

Ben benzer bir SO-iplik üzerinde daha fazla cevaplar burada olduğuna inanıyorum: how-to-access-php-session-variables-from-jquery-function-in-a-js-file

Bu herkes yardımcı olursa, bu örnekler "boş" döndü, bu yüzden sadece

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

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