每个会话限制html5视频显示?

时间:2012-05-08 21:40:04

标签: php wordpress video html5-video jwplayer

我想限制每个会话的视频和照片显示。例如,访客观看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" width="640" height="360" onclick="vidplay()">
    <source src="video/video.mp4" type="video/mp4" />
</video>

1 个答案:

答案 0 :(得分:3)

在会话中存储一个计数(理想情况下是一个视频ID列表,以便他们可以在一个会话中多次观看同一个视频),这可能会被用户清除cookie无效。否则,如果您的用户拥有他们必须登录的帐户,请存储他们在数据库表中观看的内容的历史记录。

编辑:现在我注意到你在这里使用wordpress,所以我不能&#39;帮助将其添加到其中,但这是基于会话的批准的示例

<?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']);

?>