Intereting Posts
Предупреждение: PDOStatement :: execute (): SQLSTATE : Недопустимый номер параметра: количество связанных переменных не совпадает с числом токенов в Масштабировать HTML пропорционально точно для формата PDF A4 Сброс пароля в codeigniter утечка памяти php / symfony / doctrine? php session не работает для всплывающего входа Поиск многомерного массива в PHP и возвращаемые ключи Интенсивный скрипт PHP с ошибкой w / «Истекло время ожидания» error / ap_content_length_filter Yii2: has_many gridview и detailview oAuth с PHP (для google api) PHP.ini вызывает Предупреждение: mysqli_error () ожидает, что параметр 1 будет mysqli, null указан в / sys / index.php в строке 19 PHP Installer Script Как вставлять твиттер-твиты .. Как поймать изображения с URL-адресов твитов и отображать фактические изображения? Ошибка MYSQL: предупреждение: mysqli_fetch_assoc () ожидает, что параметр 1 будет mysqli_result, boolean given Laravel: Как взять последние строки n (любое число) после упорядоченного в порядке возрастания? В новой вкладке открывается гиперссылка Yii CGridView

Чтение значения сеанса с помощью 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');