我的网站有一些设计问题。下面是介绍:
我有一个简单的动态页面,其中包含一个视频播放器,旁边还有一堆要播放的视频。在视频播放器下有一个由jquery 表单插件驱动的评论部分,因为如果有人在观看时输入评论,我自然不希望页面刷新和重置视频。
因此,页面通过 $_GET 变量获取要播放的视频 ID,然后根据来自 MySQL 数据库的 ID 获取另外 10 个左右的视频链接,并播放第一个并将其余的链接列为播放器旁边的链接。
评论系统很简单。它从 MySQL 表中获取与播放的视频具有相同 ID 的所有评论,并通过前面提到的 jquery 表单插件列出它们。输入新评论后,它会通过定位相同的 ID 再次将评论添加到表中。
由于 ajax 表单插件从包含注释显示/添加代码的外部 PHP 文件中获取注释 - 我必须使用 $_SESSION 变量将信息从主页传递到这些文件。
这就是问题所在:
当客户正常浏览页面时,一切都按我的预期工作。但是当他决定将另一个视频打开到新标签时 - 评论系统崩溃了。
因此,我将视频 ID 从主页的 $_GET 变量传递给 $_SESSION 变量,并使用它让外部 show/add-comments-PHP-files 知道要显示哪些评论。当客户只使用一个选项卡但当他在新选项卡中打开另一个视频时,这工作正常,$_SESSION 变量当然会更新以匹配新选项卡当前正在播放的视频的评论,并且因为这个变量在两个选项卡中都是相同的 - 原始选项卡现在错误地指向新标签的评论。
所以..希望澄清一下:
浏览器标签1:
$_SESSION['now_playing'] = 视频 1
[..client 在第二个选项卡中打开另一个视频]
浏览器标签 2:
$_SESSION['now_playing'] = 视频 2
..从这一点开始,选项卡 1 的评论当然与选项卡 2 相同。
在创建新选项卡或类似的东西时是否有任何技巧来启动新会话?我对这一切都很陌生,所以可能显然很愚蠢。任何如何解决这个问题的指针都将不胜感激 - 即使这是实现评论的更好方法 - 必须在不刷新页面的情况下添加评论.
问候,kitsu