3

セッションごとにビデオと写真の表示を制限したい。たとえば、訪問者が 3 つのビデオを視聴し、4 つ目のビデオを視聴しようとすると、サブスクリプション ページにリダイレクトされます。私はJWPlayerまたはネイティブHTML5を使用しますが、これはWPで機能しますが、PHPでそれを行う方法を探しています(私は決して専門家ではありません)。

したがって、理想的には、次のようなワークフローになります: 1) 訪問者が動画 1 を視聴 --> オプションのメッセージ --> 動画が 2 つ残っている 2) 訪問者が動画 2 を視聴 --> オプションのメッセージ --> 動画が 1 つ残っている 3) 訪問者が動画を視聴video3 --> オプションのメッセージ --> 残っている動画は 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>
4

1 に答える 1

4

セッションにカウントを保存します (理想的には、1 つのセッションで同じビデオを複数回視聴できるようにするビデオ ID のリスト)。これは、ユーザーが Cookie をクリアすることによって無効になる場合があります。それ以外の場合、ユーザーがログインする必要があるアカウントを持っている場合は、データベース テーブルに対して監視したものの履歴を保存します。

編集:ここでワードプレスを使用していることに気付いたので、それに追加することはできませんが、セッションベースのアプローチの例を次に示します

<?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 に答える