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

Я использую cakePHP 1.26.
В контроллере у меня есть функция, которая содержит эти строки кода:

$this->Session->write('testing', $user); $this->Session->read('testing'); 

Теперь система написала сеанс и хранится на сервере. Можно ли использовать Javascript или JQuery для чтения сеанса с именем «тестирование»?

Сессия PHP хранится в памяти веб-сервера, а JavaScript работает в веб-клиенте (webbrowser). Это в реальном мире две физически отдельные и независимые машины. Обычно они могут общаться только друг с другом по сети с использованием протокола HTTP.

У вас есть 2 варианта:

  1. Пусть PHP напечатает данные сеанса, как если бы это переменная JS:

     <script>var data = '<?= $_SESSION['data'] ?>';</script> 
  2. Пусть JS запросит его с сервера с помощью Ajax . Вот пример на основе jQuery :

     <script>$.get('script.php', function(data) { /* .. */ });</script> 

    в основном это в script.php :

     <?php echo $_SESSION['data']; ?> 

Излишне говорить, что вариант 1 является самым простым и понятным.

Нет. Как правило, вы можете записать значение testing в документ, доставленный клиенту (возможно, небольшой javascript в head ?), А затем он будет доступен для клиента.

Как уже говорили другие люди, получение сеанса на стороне клиента требует некоторой предусмотрительности (размывание на странице) или другого запроса.

Другое решение – не использовать сеанс, а вместо этого использовать файлы cookie или как комплимент. Просто не доверяйте куки. Пользователи могут редактировать их, поэтому их следует использовать только для отображения.

Можно ли использовать Javascript или JQuery для чтения сеанса с именем «тестирование»?

Нет, но вы можете использовать PHP, чтобы поместить значение в javascript:

 <?php print "<script type=\"text/javascript\">\n"; print " var testing=\"" . $_SESSION['testing'] / "\";\n"; print "</script>\n"; ?> 

(или в HTML и прочитайте его там, используя Javascript)

Нет. Вы можете использовать JavaScript, чтобы сделать запрос AJAX на страницу PHP, которая будет считывать данные сеанса и возвращаться к JavaScript.

Вы можете легко передать переменную сеанса с сервера PHP с помощью jQuery AJAX на JavaScript. Вы можете передать его как объект Json, а затем назначить его переменной JavaScript.