объект (jw player) исчезнет, ​​если я сохраню его в $ _SESSION - PullRequest
0 голосов
/ 30 июня 2011

Мне нужен доступ к моему объекту JW Player на разных страницах веб-сайта для загрузки списков воспроизведения.

Итак, я добавил одну строку кода, и плеер исчезает!

<?php $_SESSION['theJwPlayer'] = jwplayer; ?>

Iиспользуйте следующее в верхней части любой страницы, где бы мне ни понадобился доступ к $ _SESSION:

session_start();

Вот создание плеера, оно работает отлично, более недели, кроме последней строки кода:

<script type="text/javascript">

 jwplayer('mediaplayer').setup({
       'flashplayer': 'http://localhost/theWebsite/jwplayer/player.swf',
       'id': 'playerID',
       'width': '480',
       'height': '270',
       'file':  'http://localhost/theWebsite/videos/moto_sounds.flv',
       'image':   'http://localhost/theWebsite/images/banner2.jpg'
   });


 // now save the player in a session variable
 <?php $_SESSION['theJwPlayer'] = jwplayer; ?>

</script>

Если я просто удаляю одну строку php-кода, которая хранит проигрыватель в массиве _SESSION, веб-страница с проигрывателем возвращается к нормальной работе, как это было в течение недели, стабильный , JW-плеер обнаруживается, нет проблем.Но добавьте эту строку и игрок исчезнет:

Я думал, что сеансы автоматически сериализуют объекты?Почему эта строка кода «исчезает» из моего объекта jwplayer?
Я попытался добавить $ before jwplayer, как в

<?php $_SESSION['theJwPlayer'] = $jwplayer; ?>

Без изменений, проигрыватель исчезает.Что здесь происходит?

1 Ответ

8 голосов
/ 30 июня 2011

Вы пытаетесь сохранить экземпляр объекта JavaScript в переменной PHP. Это невозможно. Лучшее, что вы могли бы сделать, если бы у вас был объект, было бы хранить весь бит Javascript, включая теги <script>, правильно экранировать и выводить его. Но вы должны просто включить его как другой файл, если вы используете много мест, а не хранить его в памяти PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...