3 votes

limiter l'affichage des vidéos html5 par session ?

Je veux limiter l'affichage des vidéos et des photos par session. Par exemple, un visiteur regarde 3 vidéos et lorsqu'il essaie de regarder une quatrième vidéo, il est redirigé vers une page d'abonnement. Je vais utiliser JWPlayer ou HTML5 natif, peu importe, et cela fonctionnerait dans WP, mais je cherche n'importe quel moyen de le faire avec PHP (je ne suis pas un expert en aucune façon).

Donc, idéalement, ce serait le flux de travail : 1)le visiteur regarde la vidéo1 --> message optionnel --> il vous reste 2 vidéos 2)Le visiteur regarde la vidéo2 --> message optionnel --> il vous reste 1 vidéo 3) Le visiteur regarde la vidéo3 --> message facultatif --> il ne reste plus aucune vidéo. 4)Le visiteur essaie de regarder la vidéo4 --> redirect

Jusqu'à présent, j'ai trouvé des moyens de limiter par bande passante ou par temps (une seule vidéo, puis redirection), mais j'ai besoin de servir exactement 3 vidéos, peu importe le temps ou la taille, donc ces solutions ne fonctionneront pas. Une idée sur la façon d'y parvenir ?

edit : voici un peu de code pour rediriger, je n'ai vraiment rien ajouté car rien ne correspond à ce dont j'ai besoin, mais jetez un oeil :

<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>

4voto

Conspicuus Points 33

Stocker un compte dans la session (idéalement une liste d'identifiants vidéo pour qu'ils puissent regarder la même vidéo plusieurs fois au cours d'une même session), ceci peut être annulé si l'utilisateur efface les cookies. Sinon, si vos utilisateurs ont un compte auquel ils doivent se connecter, stockez un historique de ce qu'ils ont regardé dans une table de base de données.

Edit : J'ai remarqué que vous utilisez wordpress, donc je ne peux pas vous aider à l'ajouter, mais voici un exemple d'approche basée sur les sessions.

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

?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X