编程语言
首页 > 编程语言> > PHP的-限制每个会话的HTML5视频显示?

PHP的-限制每个会话的HTML5视频显示?

作者:互联网

我想限制每个会话的视频和照片显示.例如,访客观看了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>

解决方法:

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

?>

标签:video,html5-video,jwplayer,wordpress,php
来源: https://codeday.me/bug/20191201/2080187.html