限制每个会话的 html5 视频显示?
Posted
技术标签:
【中文标题】限制每个会话的 html5 视频显示?【英文标题】:restrict html5 video display per session? 【发布时间】:2012-05-17 10:16:52 【问题描述】:我想限制每个会话的视频和照片显示。例如,访问者观看了 3 个视频,当他尝试观看第四个视频时,他被重定向到订阅页面。我将使用 JWPlayer 或原生 html5,没关系,这将在 WP 中工作,但正在寻找任何方法来使用 php(无论如何我不是专家)。
因此,理想情况下,这将是工作流程: 1) 访客观看视频 1 --> 可选消息 --> 您还有 2 个视频 2) 访客观看视频2 --> 可选消息 --> 您还剩 1 个视频 3) 访客观看视频3 --> 可选消息 --> 您还剩 0 个视频 4) 访客尝试观看视频4 --> 重定向
到目前为止,我找到了限制每个带宽或每个时间的方法(仅 1 个视频,然后重定向),但我需要提供 3 个视频,无论时间或大小如何,因此这些解决方案不起作用。关于如何实现这一目标的任何想法?
编辑:这里有一些重定向代码,我真的没有添加任何东西,因为我不需要任何东西,但是看看:
<script src="text/javascript">
function vidplay()
var video = document.getElementById('video');
video.play();
video.addEventListener('ended',function()
window.location = 'http://SUBSCRIBE_PAGE';
);
</script>
<video controls id="video" onclick="vidplay()">
<source src="video/video.mp4" type="video/mp4" />
</video>
【问题讨论】:
如果用户清除他们的会话怎么办? 请添加您已经尝试解决问题的任何代码。 是的,这是个问题,最好的方法是限制每个 IP 每 24 小时左右的限制,但在这一点上,我对任何事情都很满意 【参考方案1】:在会话中存储一个计数(最好是视频 ID 列表,以便他们可以在一个会话中多次观看同一视频),这可能会因用户清除 cookie 而无效。否则,如果您的用户有一个他们必须登录的帐户,请在数据库表中存储他们所查看内容的历史记录。
编辑:现在我注意到您在这里使用 wordpress,所以我无法帮助将其添加到其中,但这是基于会话的方法的示例
<?php
// Obviously use your variable here
$ID_OF_VIDEO_HERE = $_REQUEST['video'];
if(isset($_SESSION) === false)
session_start(); // Start PHP session management
if(isset($_SESSION['videos_viewed']) === false)
$_SESSION['videos_viewed'] = array();
if(isset($_SESSION['videos_viewed'][$ID_OF_VIDEO_HERE]) === FALSE AND count($_SESSION['videos_viewed']) >= 3)
// Redirect the User
header('location: http://SUBSCRIBE_PAGE');
exit();
else
// Add current video ID to list
$_SESSION['videos_viewed'][$ID_OF_VIDEO_HERE] = true;
// JUST FOR TESTING
var_dump($_SESSION['videos_viewed']);
?>
【讨论】:
你确实遇到了一些问题,用户 IP 可能是动态的,他们可能在 NAT 之后,清除 cookie,更改用户代理(可能不是这么多)。此外,由于会话可能只持续很短的时间,您还可以生成一个唯一 ID 并将其存储在 cookie 中,作为会话结束后的用户标识形式,并使用它来限制。显然,如果用户足够精明,他们可以清除 cookie,但您可能会阻止大多数人。 好吧,这超出了我有限的技能,会尝试找到有能力的人。如果你认为你可以做到并且有办法雇用你,就 lmk,我不确定这里有偿工作的协议是什么 谢谢你,Scuzzy,我在一个页面中尝试过,效果很好,正在将它添加到 WP,非常感谢!我可以给你投票,但如果可以的话,我会:) 另外,确保重定向只发生在查看视频的代码中,而不是在每个页面上,哦,无论如何,接受的答案更好:)以上是关于限制每个会话的 html5 视频显示?的主要内容,如果未能解决你的问题,请参考以下文章