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