2013-11-24 41 views
2

我已经媒体网站一旦成员登录查看两页成功它创建会话如何防止在同一时间

$_SESSION['login_id'] = $username; 

不知如何防止成员观看同一时间两个通道。

我的意思是,例如,如果会员正在查看页面video.php?id=4并在新标签页video.php?id=5中打开,则表明他错误必须在查看新页面之前关闭video.php?id=4的页面。

进入我脑海的第一件事是随机token key清除页面退出,但我不知道它是否好主意或没有人知道如何做或有更好的主意! 〜感谢

+0

你如何为你的视频提供服务?直接流媒体还是你用PHP控制流? –

回答

2

起初以为

你可以使用请求到PHP脚本,告诉你,如果用户仍然打开一个网页。

对于您可以使用超时Ajax请求(使用jQuery例如)

提示的循环:

而是提出请求你可以尝试加载微小图像(1px的H/W)和当然加载这个图像使用PHP脚本(你可以欺骗网址使用htaccess), 因此,当图像被请求,你的PHP脚本将做的伎俩(设置当前观看的视频),然后服务图像(不要忘记设置适当的内容类型)

并继续加载图像在一定的inter VAL(你需要生成URL标记来避免缓存;))


第二种解决方案是

使用PHP脚本作为代理,这样就可以知道服务您的视频时,视频已如果用户请求第二个视频,知道他仍然在流式播放前一个视频,您拒绝他的请求,向他展示适当的消息或做你喜欢的:)

我想,使用2nd解决方案对你和访问者来说会更好,因为他可以开始缓存2n d视频一旦一日一已经完全缓存

1解决方案将使用许多的要求,可以淹没网络或两个客户端和服务器端


这两种解决方案不会跟踪用户是使用多个浏览器,这意味着他将有多个会话,除非用户注册并登录

1
if ($_SESSION['login_id'] = $username && COUNT($_GET['id'])>1) 

现在你检查此条件后,我不知道你能做到防止打开2个标签用户..

1

只是我的想法

由于video has to stream, it pings the serversession可以分配给它,点击最后一个视频。那么一旦新的视频被点击,the session on the server will use the new video id一旦第一视频坪服务器,并找出会议指出,在不同的页面,那么视频可以返回一个错误消息

或者,你可以指定一个IDforma hidden field with an ID的每个instance,然后使用AJAX来使用该ID来ping服务器。如果用户在存在活动ID时尝试请求相同的表单,则应显示错误消息。