3

我想限制每个会话的视频和照片显示。例如,访问者观看了 3 个视频,当他尝试观看第四个视频时,他被重定向到订阅页面。我将使用 JWPlayer 或原生 HTML5,没关系,这将在 WP 中工作,但希望通过任何方式使用 PHP 来做到这一点(无论如何我都不是专家)。

因此,理想情况下,这将是工作流程:1) 访客观看视频 1 --> 可选消息 --> 您还有 2 个视频 2) 访客观看视频 2 --> 可选消息 --> 您还有 1 个视频 3) 访客观看video3 --> 可选消息 --> 您还有 0 个视频 4) 访客尝试观看 video4 --> 重定向

到目前为止,我找到了限制每个带宽或每个时间的方法(只有 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>
4

1 回答 1

4

在会话中存储一个计数(理想情况下是一个视频 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']);

?>
于 2012-05-08T21:43:06.170 回答