2012-05-08 2 views
3

Я хочу ограничить показы видео и фотографий за сеанс. Например, посетитель просматривает 3 видеоролика, и когда он пытается посмотреть четвертое видео, он перенаправляется на страницу подписки. Я буду использовать JWPlayer или собственный HTML5, не имеет значения, и это будет работать в WP, но, глядя на любой способ сделать это с PHP (я не эксперт каким-либо образом).ограничивает просмотр видео html5 за сеанс?

Таким образом, в идеале, это будет Teh рабочий процесс: 1) посетитель часы video1 -> необязательное сообщение -> у вас есть 2 видео осталось 2) посетитель часы video2 -> необязательное сообщение -> у вас есть 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> 
+0

Что делать, если пользователь удаляет их сеанс? –

+0

Пожалуйста, добавьте код, который вы уже пытались решить вашу проблему. – Scuzzy

+0

Да, это проблема, лучшим способом было бы ограничить каждый IP за 24 часа или около того, но в этот момент я был бы доволен чем-нибудь – Devin

ответ

3

магазин подсчетом в сессии (в идеале список видео, чтобы они могли смотреть одно и то же видео несколько раз за один сеанс), это может быть аннулировано пользователем, удаляющим файлы cookie. В противном случае, если у ваших пользователей есть учетная запись, они должны войти в систему, сохранить историю того, что они наблюдали против таблицы базы данных.

Edit: Теперь я заметил, что вы используете WordPress, поэтому я не могу»помощь при добавлении его к этому, но вот пример на основе approeach сессии

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

?> 
+0

спасибо Scuzzy, попробуем это :) – Devin

+0

Вы столкнетесь с несколькими проблемы действительно, IP-пользователи могут быть динамическими, они могут быть за NAT, очистка куки, изменение пользовательских агентов (возможно, это не так). Кроме того, поскольку сеанс может длиться только короткое время, вы также можете создать уникальный идентификатор и сохранить его в файле cookie как форму идентификации пользователя, когда после окончания сеанса и использовать его для ограничения. очевидно, пользователи могут очищать файлы cookie, если они достаточно сообразительны, но вы, вероятно, остановите большинство людей. – Scuzzy

+0

хорошо, это путь над моими ограниченными навыками, попытается найти кого-то, способного это сделать. Если вы думаете, что можете сделать это, и есть способ нанять вас, просто lmk, я не уверен, что такое протокол для оплачиваемых работ здесь – Devin

Смежные вопросы