如果我将它存储在$ _SESSION中,对象(jw player)就会消失

时间:2011-06-29 21:45:58

标签: php session

我需要在网站的不同页面上访问我的JW Player对象才能加载播放列表。

所以我添加了一行代码,播放器就消失了!

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

我在任何需要访问$ _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>

如果我只删除那个将播放器存储在_SESSION数组中的一行php代码,那么播放器的网页会恢复正常,它们会持续一周以上,稳定 ,JW播放器出现,没问题。但是添加这一行并且玩家消失了:

我认为会话会自动序列化对象?为什么这一行代码“消失”了我的jwplayer对象?
我尝试在jwplayer之前添加$,如

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

没有变化,玩家消失了。这里发生了什么?

1 个答案:

答案 0 :(得分:8)

您正在尝试将JavaScript对象实例存储到PHP变量中。那是不可能的。如果您必须拥有该对象,那么您可以做的最好的事情就是存储整个Javascript,包括<script>标记,正确转义并回显它。但是如果你使用了很多地方,你应该把它作为另一个文件包含在内,而不是把它保存在PHP的内存中。