Vous n'êtes pas connecté.







Salut,
Je cherche un script qui permet de limité le nombre de téléchargement par jour (sur un ftp free). Cela existe t-il ?
Merci 

TOP Hors ligne


oui, ça peut se faire, mais c'est plus ou moins fiable ...
fiable au sens où lorsque qqn clique sur le nom du fichier, cela incrémente le nb de téléchargements, mais tu n'as aucun moyen coté serveur de contrôler que le téléchargement s'est bien effectué ... Par exemple, j'ai une coupure internet en plein pdt mon téléchargement, il faudra que je recommence => potentiellement incrémenter le compteur à nouveau.
FYI RTFM ASAP => Tux : La Légende <=
NewsletTux
TOP Hors ligne







Salut,
Oui en effet se que tu dis n'est pas bête... mais enfaite, peut importe si la personne qui a essayé de DL qqch n'a pas réussi. Je veux juste que la bande passante sortante ne soit trop élevée...sinon free me le fermera tout de suite 

TOP Hors ligne


je n'avais pas vu que tu parlais de FTP ... en http oui on peut compter le nb de téléchargements, en ftp, je ne sais pas ...
et ça veut dire que tu donnes le login et le mot de passe Free pour ce ftp ?
FYI RTFM ASAP => Tux : La Légende <=
NewsletTux
TOP Hors ligne







Dsl, j'ai du mal me faire comprendre
, non c'est bien en http que je parlais, pour un espace chez free (j'ai tjs pris l'habitude d'appeler ça un "ftp free", dsl).

TOP Hors ligne







Bonne nouvelle ! J'ai trouvé un script, en licence GPL, extraordinaire ! 
Le voici :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php /********************************
* Nom : Download Limiter *
* Version : 2.0.0 (beta1) *
* Licence : GPL *
* Necessite : PHP 4.1.0 + *
********************************/
/**
* Listing ( a modifier pour changer le style )
*/
function f_listing($dossieralister) {
// recuperation de la config
$CONFIGURATION=$GLOBALS['CONFIGURATION'];
echo "<html><head><title>".$CONFIGURATION['listingtitre']."</title>";
echo "<style>body{background-color:#afb9c5;";
echo "background-image:url(http://board.emporio.free.fr/style_images/ambience-012/back.gif);}";
echo "a{color:#0B2943}</style></head><body>";
echo "<div style='border:1px solid #26313A;background-color:#F7F7F7;padding:10px;'>";
echo "<div style='text-align:center;font-weight:bold;font-size:130%;padding:10px;'>";
echo $CONFIGURATION['listingtitre']."</div><table border='0' style='width:100%'><tr><td>";
$handle=@opendir($dossieralister);
while ($fichier = @readdir($handle)) {
if(is_file("$dossieralister/$fichier") && !ereg($GLOBALS['EXCLUDE'],$fichier)) {
$URL = $_SERVER['PHP_SELF']."?file=".urlencode($fichier);
echo "<a href=\"$URL\">$fichier</a><br />";
}
}
echo "</td>";
if(!empty($CONFIGURATION['listingimage'])) {
echo "<td style='vertical-align:middle;text-align:center'>";
echo "<img src='".$CONFIGURATION['listingimage']."' alt='' /></td>";
}
echo "</tr></table></div><div style='text-align:center;font-style:italic;font-size:65%;'>";
echo "Powered by Download Limiter ".$GLOBALS['VERSION'];
echo "</div></body></html>";
}
/**
* f_affichemessage_begin , f_affichemessage_end ( a modifier pour changer le style )
*/
function f_affichemessage_begin() {
echo "<html><head><title>Download Limiter 2</title>";
echo "<style>body{background-color:#afb9c5;color:#0B2943;";
echo "background-image:url(http://board.emporio.free.fr/style_images/ambience-012/back.gif);}";
echo "a{color:#0B2943}</style></head><body>";
echo "<table width='100%' height='85%' align='center'><tr><td valign='middle'>";
echo "<table align='center' cellpadding='4' style='border: 1px solid #26313A; background-color: #F7F7F7;";
echo "padding:6px'><tr><td width='100%' align='center'>";
}
function f_affichemessage_end() {
echo "</td></tr></table></td></tr></table></body></html>";
exit();
}
/** Patron des fichiers a exclure */
$EXCLUDE="(^\..*|.*\.(php|php3|php4|php5|asp|html|htm)$)";
/** fichier de configuration du script */
$CONFIGFILE=".htdl".substr($_SERVER["SCRIPT_FILENAME"],strrpos($_SERVER["SCRIPT_FILENAME"],"/")+1);
/** Version */
$VERSION="2.0.0";
function f_assistant_header($titre) {
echo "<table border='0' cellpadding='0' cellspacing='0' width='100%' align='center' ";
echo "style='background-image: url(http://board.emporio.free.fr/style_images/ambience-012/cat_back.gif)'>";
echo "<tr><td width='150' height='27' align='left' valign='top'><img ";
echo "src='http://board.emporio.free.fr/style_images/ambience-012/cat_top_ls.gif' ";
echo "width='150' height='27' alt='' /></td><td width='100%' valign='middle' style='text-align:center;font-weight:bold'>";
echo "$titre</td><td width='150' height='27' align='right' valign='top'><img ";
echo "src='http://board.emporio.free.fr/style_images/ambience-012/cat_top_rs.gif' ";
echo "width='150' height='27' alt='' /></td></tr></table>";
echo "<div style='border:1px solid #26313A;background-color:#F7F7F7;padding :5px;'>";
}
function f_assistant_footer() {
echo "</div>";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'><tr>";
echo "<td width='60' height='14' align='left' valign='top'>";
echo "<img src='http://board.emporio.free.fr/style_images/ambience-012/ls_main_table_bottom.gif' width='70' ";
echo "height='14' alt='' /></td><td height='14' width='100%' style='background-image:";
echo "url(http://board.emporio.free.fr/style_images/ambience-012/extended_main_table_bottom.gif)'>";
echo "<img src='http://board.emporio.free.fr/style_images/ambience-012/clear.gif'";
echo " width='100%' height='14' alt='' /></td><td width='44' height='14' align='right' valign='top'>";
echo "<img src='http://board.emporio.free.fr/style_images/ambience-012/rs_main_table_bottom.gif' width='70' ";
echo "height='14' alt='' /></td></tr></table>";
}
function listedossier_rec($dossier="") {
$handle=opendir("./".$dossier);
while ($folder = readdir($handle)) {
if(!ereg("^\.",$folder) && is_dir($dossier.$folder) ) {
echo "<input type='radio' name='dossier' value='".$dossier.$folder."' />".$dossier.$folder."<br />";
listedossier_rec($dossier.$folder."/");
}
}
}
function f_assisstant($fichierdeconfiguration) {
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">";
echo "<html><head><title>Download Limiter 2</title></head>";
echo "<style>body{font-family: Verdana, Tahoma, Arial, sans-serif;background-color:#ededed;color:#0B2943}";
echo "input,select{background-color:#ededed;color: #0B2943;border:1px solid #0B2943;padding:1px}";
echo "select optgroup{text-align:center;border-bottom:1px dotted #0B2943;}</style>";
echo "<body";
echo "<form method='post' enctype='multipart/form-data' action='".$_SERVER["PHP_SELF"]."' name='frmconfig' ";
echo "onsubmit='javascript:return validForm()'>";
echo "<script type='text/javascript'><!--
function addsite() {
var txt=document.frmconfig.allowedsite.value;
document.frmconfig.allowedsite.value='http://';
document.frmconfig.antileechsiteok.add(new Option(txt, txt), null);
document.frmconfig.antileech.checked=true;
}
function delsite() {
var i=document.frmconfig.antileechsiteok.selectedIndex;
if (i!=-1)
document.frmconfig.antileechsiteok.remove(i);
}
function validForm () {
var indexDossier = -1;
if ( document.frmconfig.dossier.length == null ) { // cas une option
if (document.frmconfig.dossier.checked) indexDossier = 0 ;
}
else { // cas plus d'une
for (var index = 0; index < document.frmconfig.dossier.length; ++index) {
if (document.frmconfig.dossier[index].checked) indexDossier = index;
}
}
if(indexDossier==-1) {
alert('Veuillez s\u00E9lectionner un dossier.');
return false;
}
for(var i=0;i<document.frmconfig.antileechsiteok.length;++i) {
document.frmconfig.antileechsiteok.options[i].selected = true;
}
document.frmconfig.antileechsiteok.name = 'antileechsiteok[]';
return true;
}
// -->
</script>";
f_assistant_header("Dossier à proteger");
echo "Sélectionnez le dossier où se trouvent les ressources à protéger. ";
echo "Ce dossier sera protégé(.htaccess) et ne sera donc accessible que via ce script.<br /><br />";
echo "Sélectionnez le dossier à protéger parmi la liste suivante :<br />";
listedossier_rec();
echo "<br /><span style='font-style:italic'>Si le dossier que vous voulez protéger n'apparaît pas, ";
echo "c'est que le script n'est pas placé au bon endroit.</span>";
f_assistant_footer();
echo "<br />";
f_assistant_header("Quota");
echo "<input type='checkbox' name='quotasglobaux' value='on' />Activer les quotas globaux.";
echo "<p>La taille des fichiers téléchargés est contrôlée.<br />";
echo "Le script bloquera tout téléchargement si le quotat est dépassé pour ";
echo "une période donnée.</p>";
echo "Autoriser <input type='text' name='quotasglobauxtaille' value='2000' size='5' title='Par défaut : 2 Go' /> Mo ";
echo "par tranche de <input type='text' name='quotasglobauxheure' value='6' size='3' title='Par défaut : 6 heures' ";
echo "/> heures.<hr />";
echo "<input type='checkbox' name='quotasuser' value='on' />Activer les quotas utilisateurs.";
echo "<p>Le script contrôle les téléchargements des utilisateurs (via les IPs) et n'autorise ";
echo "qu'une certaine quantité de download par utilisateur et par période.</p>";
echo "Autoriser <input type='text' name='quotasusertaille' value='200' size='5' title='Par défaut : 200 Mo' /> Mo ";
echo "par tranche de <input type='text' name='quotasuserheure' value='6' size='3' title='Par défaut : 6 heures' ";
echo "/> heures et par utilisateur.";
f_assistant_footer();
echo "<br />";
f_assistant_header("Anti-Leech");
echo "<input type='checkbox' name='antileech' value='on' />Activer l'Anti-leech.";
echo "<p>Le script réserve l'acces aux seuls sites autorisés. Les autres ne peuvent pas ";
echo "télécharger les fichiers.</p>";
echo "<table border='0'><tr><td style='vertical-align:top;width:70%'>";
echo "<p><input type='text' name='allowedsite' value='http://' style='width:100%' /></p>";
echo "<p><input type='button' name='btAdd' value='Ajouter >>>' onclick='javascript:addsite();' /></p>";
echo "<p style='text-align:right'><input type='button' name='btDel' value='<<< Supprimer' onclick='javascript:delsite();' ";
echo "/></p></td><td>";
echo "<select size='6' style='width:500px' name='antileechsiteok' multiple='multiple'>";
echo "<optgroup label='Liste des sites autorisés'></optgroup></select>";
echo "</td></table>";
f_assistant_footer();
echo "<br />";
f_assistant_header("Attente");
echo "Ajouter une temporisation de <input type='text' name='attente' value='30' ";
echo "title='Par défaut : 30 secondes' size='3' /> secondes. ( 0 : inactif )";
echo "<p>La temporisation est le temps que doit attendre un utilisateur entre deux téléchargements.</p>";
f_assistant_footer();
echo "<br />";
f_assistant_header("Divers");
echo "<input type='checkbox' name='diverslisting' value='on' />Activer le listing automatique.<br />";
echo "<br />Si le script est appelé sans fichier à télécharger , le script ";
echo "listera le contenu du dossier protégé.<br /><br />Titre à afficher sur la page : ";
echo "<input type='text' name='diverstitre' value='Download Limiter : Listing' size='50' ";
echo "onchange='javascript:document.frmconfig.diverslisting.checked=true;' /><br />";
echo "<br />Afficher une image , un logo ...<br />";
echo "Entrez l'adresse de l'image (laissez vide pour ne pas afficher d'image ) : ";
echo "<input type='text' name='diversimage' value='' size='80' ";
echo "onchange='javascript:document.frmconfig.diverslisting.checked=true;' />";
f_assistant_footer();
echo "<br />";
f_assistant_header("Validation");
echo "<input type='checkbox' name='bbcode' value='on' />Générer le code BBCode des fichiers du ";
echo "répertoire protegé<br />";
echo "<input type='checkbox' name='listeliens' value='on' />Générer la liste des liens des fichiers du ";
echo "répertoire protegé<p style='text-align:center'>";
echo "<input type='submit' value='Envoyer la configuration' /> ";
echo "<input type='reset' value='Ré-initialiser le formulaire' /></p>";
echo "<span style='font-style:italic'>Dans le cas où vous voudriez reconfigurer le script , supprimez le fichier ";
echo "\"$fichierdeconfiguration\" créé et relancez la configuration.</span>";
f_assistant_footer();
echo "</form></body></html>";
exit();
}
function f_saveconfiguration($fichierdeconfiguration) {
// installation du htaccess
$file = fopen($_POST['dossier']."/.htaccess","w") or
die ("Erreur de droit d'ecriture pour le fichier \"".$_POST['dossier']."/.htaccess\" !!!");
fwrite($file,"Order deny,allow\n");
fwrite($file,"Deny from all\n");
fclose($file);
// Sauvegarde du reste de la configuration
$file = fopen($fichierdeconfiguration,"w") or die("Erreur d'ecriture du fichier \"$fichierdeconfiguration\" !!!");
// dossier
fwrite($file,"dossier=".$_POST['dossier']."\n");
// quotat
if(isset($_POST['quotasglobaux']) && $_POST['quotasglobaux'] === "on") {
if (isset($_POST['quotasglobauxtaille']) && is_numeric($_POST['quotasglobauxtaille']))
fwrite($file,"quotasglobaux=". ($_POST['quotasglobauxtaille'] * 1048576) ."\n");
else
fwrite($file,"quotasglobaux=2097152000\n");
if(isset($_POST['quotasglobauxheure']) && is_numeric($_POST['quotasglobauxheure']) && $_POST['quotasglobauxheure'] > 0 )
fwrite($file,"periodeglobale=".$_POST['quotasglobauxheure']."\n");
else
fwrite($file,"periodeglobale=6\n");
}
else {
fwrite($file,"quotasglobaux=-1\n");
fwrite($file,"periodeglobale=0\n");
}
// quotat user
if(isset($_POST['quotasuser']) && $_POST['quotasuser'] === "on") {
if (isset($_POST['quotasusertaille']) && is_numeric($_POST['quotasusertaille']))
fwrite($file,"quotasuser=". ($_POST['quotasusertaille'] * 1048576) ."\n");
else
fwrite($file,"quotasuser=2097152000\n");
if(isset($_POST['quotasuserheure']) && is_numeric($_POST['quotasuserheure']) && $_POST['quotasuserheure'] > 0 )
fwrite($file,"periodeuser=".$_POST['quotasuserheure']."\n");
else
fwrite($file,"periodeuser=6\n");
}
else {
fwrite($file,"quotasuser=-1\n");
fwrite($file,"periodeuser=0\n");
}
// antileech
if(isset($_POST['antileech']) && $_POST['antileech'] === "on" && isset($_POST['antileechsiteok'])) {
fwrite($file,"regexreferer=^(");
$antileechsiteok=$_POST['antileechsiteok'];
for($i=0;$i<count($antileechsiteok);++$i){
fwrite($file,$antileechsiteok[$i]);
if($i<count($antileechsiteok)-1) fwrite($file,"|");
}
fwrite($file,")\n");
}
else fwrite($file,"regexreferer=\n");
// listing
if(isset($_POST['diverslisting']) && $_POST['diverslisting'] === "on" ) {
fwrite($file,"listing=on\n");
fwrite($file,"listingtitre=".$_POST['diverstitre']."\n");
fwrite($file,"listingimage=".$_POST['diversimage']."\n");
}
else {
fwrite($file,"listing=off\n");
fwrite($file,"listingtitre=\n");
fwrite($file,"listingimage=\n");
}
// temporisation
if( isset($_POST['attente']) && is_numeric($_POST['attente']))
fwrite($file,"attente=".$_POST['attente']."\n");
else fwrite($file,"attente=0\n");
fclose($file);
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">";
echo "<html><head><title>Download Limiter 2 : Résultat de la configuration</title></head>";
echo "<style>body{font-family: Verdana, Tahoma, Arial, sans-serif;background-color:#ededed;color:#0B2943}";
echo "input,select{background-color:#ededed;color: #0B2943;border:1px solid #0B2943;padding:1px}</style>";
echo "<body";
f_assistant_header("Résultat de la configuration");
echo "Fichier de configuration généré avec succes.";
echo "<p>Vous devez maintenant créer faire pointer les liens vers ce script pour pouvoir télé";
echo "charger les fichiers.<br />Ces liens doivent être de la forme ";
echo "<tt>http://".$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF']."?file=nomfichier.ext</tt></p>";
echo "<p>ATTENTION : Si les noms de fichiers contiennent des caractères spéciaux";
echo ", ceux-ci doivent être encodés.<br />";
echo "Ex : \"volume 1+volume 2.rar\" devient \"volume+1%2bvolume+2.rar\".</p>";
f_assistant_footer();
if( isset($_POST['bbcode']) && $_POST['bbcode'] === "on") {
echo "<br />";
f_assistant_header("BBCode");
echo "Code BBCode : <textarea style='width:100%' readonly='readonly' rows='30'>";
$handle=@opendir($_POST['dossier']);
while ($fichier = @readdir($handle)) {
if(is_file($_POST['dossier']."/$fichier") && !ereg($GLOBALS['EXCLUDE'],$fichier)) {
echo "[url=http://".$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF']."?file=".urlencode($fichier)."]".$fichier."[/url]\n";
}
}
echo "</textarea>";
f_assistant_footer();
}
if( isset($_POST['listeliens']) && $_POST['listeliens'] === "on") {
echo "<br />";
f_assistant_header("Liste des liens");
echo "Liste des liens : <textarea style='width:100%' readonly='readonly' rows='30'>";
$handle=@opendir($_POST['dossier']);
while ($fichier = @readdir($handle)) {
if(is_file($_POST['dossier']."/$fichier") && !ereg($GLOBALS['EXCLUDE'],$fichier)) {
echo "http://".$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF']."?file=".urlencode($fichier)."\n";
}
}
echo "</textarea>";
f_assistant_footer();
}
echo "</body></html>";
exit();
}
/* charge le fichier de configuration dans un tableau */
function f_chargeconfig($fichierdeconfiguration) {
$conffile = fopen($fichierdeconfiguration,"r");
while (!feof ($conffile)) {
$ligne = fgets($conffile, 1024);
$option = substr($ligne,0,strpos($ligne,"="));
$valeur = substr($ligne,strpos($ligne,"=")+1,strlen($ligne)-strpos($ligne,"=")-2); /* pas de \n */
$tab_opt[$option]=$valeur;
}
fclose($conffile);
return $tab_opt;
}
function f_entrerZC($fichierdinfo) {
// important : gestion des access concurents ( boucle 5 secondes max )
while (is_file($fichierdinfo.".old") && (time()-filemtime($fichierdinfo.".old")<5));
if( is_file($fichierdinfo) ) rename($fichierdinfo,$fichierdinfo.".old");
}
function f_readinfofile($fichierdinfo) {
// recuperation de la config
$CONFIGURATION=$GLOBALS['CONFIGURATION'];
// init tab
$tab_info_ip["DOWNLOADLIMITER"]=array('sommesize'=>0,'firsttime'=>-1);
if( is_file($fichierdinfo.".old")) {
/* ouverture de ce fichier en lecture */
$foldfile = fopen($fichierdinfo.".old","r") or die("Erreur 1");
/* creation d'un nouveau fichier */
$finfofile = fopen($fichierdinfo,"w")or die("Erreur 2");
while (!feof ($foldfile)){
$ligne = fgets($foldfile, 256);
$rewriteneeded=false;
if ($ligne != FALSE) {
list($ip,$size,$time) = split(":",$ligne);
$time=substr($time,0,strlen($time)-1); /* pas de \n */
// periode utilisateur
if( time() - $time < $CONFIGURATION['periodeuser'] * 3600 ) {
if(isset($tab_info_ip[$ip])) {
$tab_info_ip[$ip]['size']+=$size;
if( $tab_info_ip[$ip]['firsttime'] > $time ) $tab_info_ip[$ip]['firsttime']=$time;
}
else {
$tab_info_ip[$ip]['size']=$size;
$tab_info_ip[$ip]['firsttime']=$time;
}
$rewriteneeded=true;
}
// periode globale
if( time() - $time < $CONFIGURATION['periodeglobale'] * 3600 ) {
$tab_info_ip["DOWNLOADLIMITER"]['sommesize']+=$size;
if($tab_info_ip["DOWNLOADLIMITER"]['firsttime'] == -1 || $tab_info_ip["DOWNLOADLIMITER"]['firsttime'] > $time )
$tab_info_ip["DOWNLOADLIMITER"]['firsttime']=$time;
$rewriteneeded=true;
}
// heure du dernier dl pour l'IP
//$tab_info_ip[$ip]['lasttime']=$time;
// reecriture
if($rewriteneeded) fwrite($finfofile,"$ip:$size:$time\n");
}
}
fclose($finfofile);
fclose($foldfile);
}
return $tab_info_ip;
}
function f_sortieZC($fichierdinfo) {
if(is_file($fichierdinfo.".old")) unlink($fichierdinfo.".old");
}
function f_telechargement($dossier,$fichier,$taille) {
/* definition des entetes */
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Cache-control: private",false);
header("Pragma: no-cache");
header("Content-Length: " . $taille);
header("Content-Type: application/force-download");
header("Content-Type: application/download",false);
header("Content-Type: application/octetstream",false);
header("Content-Type: application/octet-stream",false);
header("Content-Disposition: attachment; filename=\"".$fichier."\"");
/* envoie du fichier (via un flux) */
@readfile("$dossier/$fichier") or die("Erreur de droit de lecture de \"$dossier/$fichier\" !!!");
exit();
}
function t_echotime($timeet) {
$_timeet=$timeet;
if ( $_timeet > 3600 ) {
echo floor($_timeet/3600) . "h ";
$_timeet%=3600;
}
if ( $_timeet > 60 ) {
echo floor($_timeet/60) . "m ";
$_timeet%=60;
}
if ( $_timeet > 0 ) {
echo $_timeet . "s";
}
}
/** POINT "MAIN" DU SCRIPT */
if( !is_file($CONFIGFILE) || !is_readable($CONFIGFILE)) {
if( isset($_POST['dossier']) && is_dir("./".$_POST['dossier'])) {
f_saveconfiguration($CONFIGFILE);
}
else f_assisstant($CONFIGFILE);
}
$CONFIGURATION=f_chargeconfig($CONFIGFILE);
// recuperation du parametre file = nom du fichier
$fichier = (isset($_GET['file'])) ? $_GET['file'] : "";
//securite le nom du fichier ne peut contenir de ".."
if (ereg("\.\.",$fichier)) $fichier="";
// So, cas 1 , le parametre file n'existe pas ou est vide
if ( $fichier === "" ) {
// Si le listing est permit : listing
if ( $CONFIGURATION['listing'] === "on" && is_dir($CONFIGURATION['dossier']) ) f_listing($CONFIGURATION['dossier']);
exit();
}
// test de leech
if( $CONFIGURATION['regexreferer'] !== "" && !ereg($CONFIGURATION['regexreferer'],$_SERVER['HTTP_REFERER']) ) {
f_affichemessage_begin();
echo "<p style='font-weight:bold'>Protection Anti-Leech : Access Interdit</p>";
// HTTP_REFERER peut etre masquée par Norton
if ( isset($_SERVER["HTTP________"]) ) {
echo "<p style='font-size:80%;'>Attention : Il semble que vous utilisiez un ";
echo "logiciel de confidentialité<br />qui empeche la vérification de votre provenance.</p>";
}
f_affichemessage_end();
}
// existence du fichier ?
if (!is_file($CONFIGURATION['dossier']."/".$fichier) || ereg($EXCLUDE,$fichier)) {
f_affichemessage_begin();
echo "<p style='font-weight:bold'>Erreur de téléchargement</p>";
echo "<p>Le fichier \"$fichier\" n'éxiste pas.</p>";
f_affichemessage_end();
}
// ip reelle , meme via proxy !
$IP=isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
// nom du fichier d'infos
$INFOFILE=".htdl2infos";
// entrer en zone de concurence
f_entrerZC($INFOFILE); /* concurence */
/* format du fichier */
/* IP:taillefichierdl:timedernieraccess:timefileattente */
$tab_ip_qt_time=f_readinfofile($INFOFILE);
// quota global depasse ?
if($CONFIGURATION['quotasglobaux'] > 0 && $tab_ip_qt_time['DOWNLOADLIMITER']['sommesize'] > $CONFIGURATION['quotasglobaux']) {
f_sortieZC($INFOFILE); /* concurence */
f_affichemessage_begin();
echo "<p style='font-weight:bold'>Quota Dépassé</p>";
echo "<p>la taille maximale de téléchargement autorisé a été dépasée.</p>";
echo "<p>Merci de repasser plus tard ( encore ";
$varTimeToWait = $CONFIGURATION['periodeglobale'] * 3600 - (time() - $tab_ip_qt_time["DOWNLOADLIMITER"]['firsttime']);
t_echotime($varTimeToWait);
echo " )</p>";
f_affichemessage_end();
}
// quota utilisateur depasse ?
if(isset($tab_ip_qt_time[$IP])) {
// quota utilisateur depasse
if($CONFIGURATION['quotasuser'] > 0 && $tab_ip_qt_time[$IP]['size'] > $CONFIGURATION['quotasuser']) {
f_sortieZC($INFOFILE); /* concurence */
f_affichemessage_begin();
echo "<p style='font-weight:bold'>Quota Dépassé</p>";
echo "<p>Vous avez dépassé le quotat de téléchargement<br />";
echo "qui vous était alloué.</p>";
echo "<p>Merci de repasser plus tard ( encore ";
$varTimeToWait = $CONFIGURATION['periodeuser'] * 3600 - (time() - $tab_ip_qt_time[$IP]['firsttime']);
t_echotime($varTimeToWait);
echo " )</p>";
f_affichemessage_end();
}
// attente entre chaque fichier
if($CONFIGURATION['attente'] > 0 && time() - $tab_ip_qt_time[$IP]['lasttime'] < $CONFIGURATION['attente']) {
f_sortieZC($INFOFILE); /* concurence */
f_affichemessage_begin();
echo "<p style='font-weight:bold'>Un fichier à la fois</p>";
echo "<p>Merci de patienter ".$CONFIGURATION['attente']." secondes entre chaque téléchargement.</p>";
f_affichemessage_end();
}
}
// taille du fichier
$filesize = filesize($CONFIGURATION['dossier']."/$fichier");
// sauvegarde des infos de dl
$finfofile = fopen($INFOFILE,"a+");
fwrite($finfofile,"$IP:$filesize:".time()."\n");
fclose($finfofile);
f_sortieZC($INFOFILE);
f_telechargement($CONFIGURATION['dossier'],$fichier,$filesize);
?>
</head>
<body>
<br>
</body>
</html>
TOP Hors ligne


Salut,
J'aimerai savoir ou tu as trouver ce script, le site officiel quoi ?
Merci d'avance.
TOP Hors ligne


pour un script en licence GPL, il pourrait au moins indiquer l'auteur et/ou le site ...
FYI RTFM ASAP => Tux : La Légende <=
NewsletTux
TOP Hors ligne


Ben oui, en général, les auteurs aiment dire aux autres "regarder c'est moi qui a développé ce script" même si c'est du libre
MDR on est quand même fier nous les programmeurs 
Dernière modification par Lo-chan (06/10/07 11:53:05)
TOP Hors ligne







Un post datant de février 2006 ... Youhou !
Mais diiiis donc ! Je pensais que les programmeurs savaient se servir de google
http://www.phpcs.com/codes/PROTEGER-DOS … 5290.aspx#

TOP Hors ligne


Ben écoutes, j'aurais pas poser la question si google m'avait fourni la réponse... Au boulot j'attends pas qu'on réponde à mes questions sur les forums en général... Je pense pas que mon boss serait content d'apprendre que je réglerais les soucis de cette manière. De plus, comment crois-tu que je suis tombée sur ce poste ?
Bref, on dirait que le programmeur (d'après le profil sur code source) a un site officiel. Enfin quand on enlève la tonne de pub, il reste pas grand chose... 
TOP Hors ligne







Pourtant rien qu'avec le nom du script (qui est dans le code source) et le terme "php" j'ai directement trouvé.
Enfin bref, affaire réglée
Bonne continuation.

TOP Hors ligne


Oui c'est vrai mais je te signale que je ne cherchais pas code sources mais le site officiel du programmeur qui ne dois meme etre connu de google...
TOP Hors ligne