8800 sujets

Développement web côté serveur, CMS

Bonjour, je voudrais avoir un script qui compte les téléchargement d'une vidéo sur mon site. J'ai essayé d'en chercher, mais tous (enfin ceux que j'ai trouvé) imposent d'avoir le fichier php au même endroit que la vidéo.

Le problème c'est que les vidéos sont sur plusieurs serveurs, donc il m'est impossible d'avoir le fichier et la vidéo au même endroit...

Mon site est entièrement en php, et j'aimerais que mon script fonctionne avec ma base MySql. Quelqu'un connaît-il un script qui pourrait m'intéresser ou si c'est assez simple, pourrait-on me le programmer vite fait ?

Merci beaucoup

PS : autre question comme ça, existe t-il un script permettant de faire afficher sous IE la fenêtre de téléchargement ? En fait quand on fait un lien sur une vidéo, sous IE, celui-ci veut l'ouvrir dans le navigateur. Alors que sous firefox, la fenêtre s'ouvre, ce qui permet de choisir si on veut ouvrir ou enregistrer la vidéo...Je cherche un tel script car beaucoup de personnes sont perdues sous IE lorsque celui-ci essaye de lire la vidéo automatiquement, quand le fichier vidéo est lourd, ça charge, ils pensent alors que ça n'a pas fonctionné et partent... Smiley ohwell
pour ton PS, sans te casser la tete, tu peux écrire un petit message : "clic-droit, enregistrer la cible sous..."

yoh, partisan du moindre effort
Merci je connais Smiley cligne

J'ai besoin de ça car on est pas tous né avec un PC dans les mains, va parler d'une telle manipulation à un newbi, tu verras la tête qu'il te tourne Smiley langue
ponchy a écrit :
PS : autre question comme ça, existe t-il un script permettant de faire afficher sous IE la fenêtre de téléchargement ? En fait quand on fait un lien sur une vidéo, sous IE, celui-ci veut l'ouvrir dans le navigateur. Alors que sous firefox, la fenêtre s'ouvre, ce qui permet de choisir si on veut ouvrir ou enregistrer la vidéo...Je cherche un tel script car beaucoup de personnes sont perdues sous IE lorsque celui-ci essaye de lire la vidéo automatiquement, quand le fichier vidéo est lourd, ça charge, ils pensent alors que ça n'a pas fonctionné et partent... Smiley ohwell


Un tel script, qui aidera en effet peut-être certains utilisateurs, en pénalisera d'autres, qui préfèreraient que ta vidéo s'ouvre dans le navigateur.

Une meilleure solution serait effectivement, comme dit ci-dessus, de ne pas remplacer la pédagogie par la technique, et d'ajouter à ta page le petit texte indiquant qu'en cas de problème, il faut passer par le clic gauche etc. Il ne faut jamais désespérer du supposé newbie ! Smiley cligne
C'est malheureusement ce que j'ai déjà fait, et un tel script ne ferait perdre que 2s à ceux qui veulent voir la vidéo dans le navigateur, pourcentage de gens devant s'élever à 3...
Toujours pour le PS, la solution serait d'utiliser l'attribut type de la balise <a>

<a href="ton_fichier.avi" type="application/octet-stream">Telecharger</a>

Ca ne marchera evidemment pas pour IE Smiley decu (peut-etre IE7 Smiley langue )

La solution qui marchera a coup sur est de passer par un script PHP par exemple :

<?php
$fichier = 'video.avi';

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($fichier));
header('Content-Disposition: attachment; filename='.$fichier);

readfile($fichier);
?>

Mais cette solution est un peu ennuyeuse car les videos sont souvent de gros fichiers et le readfile d'un gros fichier va mettre a genoux ton serveur PHP Smiley decu . Je le déconseille donc, utilise le type dans a et tant pis pour ceux qui n'ont pas un vrai navigateur Smiley biggol
C'est pas mal ce que tu m'as donné, bon sous firefox ça ne change rien, ça marchait déjà.

Sous IE par contre, il ouvre une fenêtre et te demande si tu veux l'ouvrir ou non dans le navigateur, si tu met non, par defaut il enregistre cette info, et ensuite pour chaque vidéo il demande si on veut enregistrer ou ouvrir le fichier...Donc ça fonctionne, c'est cool !

Par contre, quelle incidence ça a sur le serveur ?

PS : je parle du premier lien, pas du script php
Modifié par ponchy (02 Aug 2005 - 11:47)
pour répondre à ta question sur les compteur, j'ai ça :

telecharge.php

<? php>

$fichier= $_SERVER["DOCUMENT_ROOT"].$HTTP_GET_VARS['file'];


if (file_exists($fichier))
{

/* extrait le type de fichier */
$type = strtolower(substr(strrchr($fichier_co,"."),1));

/* verifie si c'est un type midi pour forcer audio */
if ($type=="mid") $type="audio/midi";
else $type="application/".$type;

/* extrait le nom du fichier */
$nom_fichier = basename ($fichier_co);

header("Content-type: ".$type);
header('Content-Disposition: attachment;filename="'.$nom_fichier.'"');

if($lg=readfile($fichier_co))
{
/*compte ton téléchargment comme tu veux .... */
}
}
?>

<a href="telecharge.php?file=fichier_a_telecharger.type">telecharge</a>

Le problème de ce script, c'est que si le client clique sur "annuler",
on compte quand meme

alors j'ai une question, comment savoir que le client a décider d'annuler ??
Il y a bien un moyen simple parce que le telechargement ne s'effectue pas, on a l'impression que le stdout sort nullepart, mais comment le savoir ?

@tomboul

Bonjour,

Merci de prendre le soin de lire les règles et de les appliquer, comme par exemple dire bonjour pour ton premier post et baliser correctement le code que tu proposes dans tes messages, çà ne devrait pas être trop dure tu connais manifestement le bbcode pour les couleurs Smiley cligne .

Merci d'avance pour la modification de ton message.
Bonjour,
a écrit :

Le problème de ce script, c'est que si le client clique sur "annuler",
on compte quand meme

alors j'ai une question, comment savoir que le client a décider d'annuler ??


C'est pas possible, et surtout pas côté serveur.
Il reste peut-être une chance en javascript, et encore... c'est franchement pas sûr.

Mais les annulations au dernier moment ne sont pas si courantes que ça. Si le lien de téléchargement est explicite, avec type et taille du fichier indiqués, l'utilisateur décide en général avant de cliquer.