Annonces


#1 12/02/06 12:31:11

overseer
pplgf
Lieu: Moselle/Vosges
OS: Mac OS X
Date d'inscription: 18/06/05
Messages: 839
Envoyer un MP

  Email

[script php] Quota de téléchargement ?

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

Merci  happy


http://img360.imageshack.us/img360/3237/againstskybloggreen7ku.png

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#2 12/02/06 13:06:15

Malcolm
4d0p73z 14 1337 A7717ud3 !
Equipe Modérateurs
Lieu: unreal://Index.ut2:31337
OS: Linux Debian
Date d'inscription: 03/03/04
Messages: 3432
Site web

Re: [script php] Quota de téléchargement ?

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.


La nature est bien faite : quand mon nez est bouché, ce sont mes pieds qui sentent ...
http://zeffklop.free.fr/singe.gif FYI RTFM ASAP => Tux : La Légende <=
http://www.php-astux.info/images/newslettux2-468x60.pngNewsletTux

Grand défenseur de la Langue Française tongue

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#3 12/02/06 13:15:34

overseer
pplgf
Lieu: Moselle/Vosges
OS: Mac OS X
Date d'inscription: 18/06/05
Messages: 839
Envoyer un MP

  Email

Re: [script php] Quota de téléchargement ?

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  aww


http://img360.imageshack.us/img360/3237/againstskybloggreen7ku.png

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#4 12/02/06 16:57:23

Malcolm
4d0p73z 14 1337 A7717ud3 !
Equipe Modérateurs
Lieu: unreal://Index.ut2:31337
OS: Linux Debian
Date d'inscription: 03/03/04
Messages: 3432
Site web

Re: [script php] Quota de téléchargement ?

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 ?


La nature est bien faite : quand mon nez est bouché, ce sont mes pieds qui sentent ...
http://zeffklop.free.fr/singe.gif FYI RTFM ASAP => Tux : La Légende <=
http://www.php-astux.info/images/newslettux2-468x60.pngNewsletTux

Grand défenseur de la Langue Française tongue

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#5 12/02/06 17:19:31

overseer
pplgf
Lieu: Moselle/Vosges
OS: Mac OS X
Date d'inscription: 18/06/05
Messages: 839
Envoyer un MP

  Email

Re: [script php] Quota de téléchargement ?

Dsl, j'ai du mal me faire comprendre  tongue, 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).


http://img360.imageshack.us/img360/3237/againstskybloggreen7ku.png

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#6 10/03/06 20:27:44

overseer
pplgf
Lieu: Moselle/Vosges
OS: Mac OS X
Date d'inscription: 18/06/05
Messages: 839
Envoyer un MP

  Email

Re: [script php] Quota de téléchargement ?

biggrin Bonne nouvelle ! J'ai trouvé un script, en licence GPL, extraordinaire !  cool

Le voici :

Code:

<!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 &agrave proteger");
  echo "S&eacute;lectionnez le dossier o&ugrave; se trouvent les ressources &agrave; prot&eacute;ger. ";
  echo "Ce dossier sera prot&eacute;g&eacute;(.htaccess) et ne sera donc accessible que via ce script.<br /><br />";
  echo "S&eacute;lectionnez le dossier &agrave; prot&eacute;ger parmi la liste suivante :<br />";
  listedossier_rec();
  echo "<br /><span style='font-style:italic'>Si le dossier que vous voulez prot&eacute;ger n'appara&icirc;t pas, ";
  echo "c'est que le script n'est pas plac&eacute; 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&eacute;l&eacute;charg&eacute;s est contr&ocirc;l&eacute;e.<br />";
  echo "Le script bloquera tout t&eacute;l&eacute;chargement si le quotat est d&eacute;pass&eacute; pour ";
  echo "une p&eacute;riode donn&eacute;e.</p>";
  echo "Autoriser <input type='text' name='quotasglobauxtaille' value='2000' size='5' title='Par d&eacute;faut : 2 Go' /> Mo ";
  echo "par tranche de <input type='text' name='quotasglobauxheure' value='6' size='3' title='Par d&eacute;faut : 6 heures' ";
  echo "/> heures.<hr />";

  echo "<input type='checkbox' name='quotasuser' value='on' />Activer les quotas utilisateurs.";
  echo "<p>Le script contr&ocirc;le les t&eacute;l&eacute;chargements des utilisateurs (via les IPs) et n'autorise ";
  echo "qu'une certaine quantit&eacute; de download par utilisateur et par p&eacute;riode.</p>";
  echo "Autoriser <input type='text' name='quotasusertaille' value='200' size='5' title='Par d&eacute;faut : 200 Mo' /> Mo ";
  echo "par tranche de <input type='text' name='quotasuserheure' value='6' size='3' title='Par d&eacute;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&eacute;serve l'acces aux seuls sites autoris&eacute;s. Les autres ne peuvent pas ";
  echo "t&eacute;l&eacute;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&eacute;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&eacute;faut : 30 secondes' size='3' /> secondes. ( 0 : inactif )";
  echo "<p>La temporisation est le temps que doit attendre un utilisateur entre deux t&eacute;l&eacute;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&eacute; sans fichier &agrave; t&eacute;l&eacute;charger , le script ";
  echo "listera le contenu du dossier prot&eacute;g&eacute;.<br /><br />Titre &agrave; 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&eacute;n&eacute;rer le code BBCode des fichiers du ";
  echo "r&eacute;pertoire proteg&eacute;<br />";
  echo "<input type='checkbox' name='listeliens' value='on' />G&eacute;n&eacute;rer la liste des liens des fichiers du ";
  echo "r&eacute;pertoire proteg&eacute;<p style='text-align:center'>";
  echo "<input type='submit' value='Envoyer la configuration' />&nbsp;&nbsp;";
  echo "<input type='reset' value='R&eacute;-initialiser le formulaire' /></p>";
  echo "<span style='font-style:italic'>Dans le cas o&ugrave; vous voudriez reconfigurer le script , supprimez le fichier ";
  echo "\"$fichierdeconfiguration\" cr&eacute;&eacute; 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&eacute;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&eacute;sultat de la configuration");
  echo "Fichier de configuration g&eacute;n&eacute;r&eacute; avec succes.";
  echo "<p>Vous devez maintenant cr&eacute;er faire pointer les liens vers ce script pour pouvoir t&eacute;l&eacute;";
  echo "charger les fichiers.<br />Ces liens doivent &ecirc;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&egrave;res sp&eacute;ciaux";
  echo ", ceux-ci doivent &ecirc;tre encod&eacute;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&eacute;<br />qui empeche la v&eacute;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&eacute;l&eacute;chargement</p>";
  echo "<p>Le fichier \"$fichier\" n'&eacute;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&eacute;pass&eacute;</p>";
  echo "<p>la taille maximale de t&eacute;l&eacute;chargement autoris&eacute; a &eacute;t&eacute; d&eacute;pas&eacute;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&eacute;pass&eacute;</p>";
    echo "<p>Vous avez d&eacute;pass&eacute; le quotat de t&eacute;l&eacute;chargement<br />";
    echo "qui vous &eacute;tait allou&eacute;.</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 &agrave; la fois</p>";
    echo "<p>Merci de patienter ".$CONFIGURATION['attente']." secondes entre chaque t&eacute;l&eacute;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>

http://img360.imageshack.us/img360/3237/againstskybloggreen7ku.png

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#7 06/10/07 11:25:43

Lo-chan
Nouveau
Lieu: Villeneuve d'Ascq
OS: Windows 2k/NT/XP
Date d'inscription: 06/10/07
Messages: 4
Envoyer un MP

  Email  Site web

Re: [script php] Quota de téléchargement ?

Salut,

J'aimerai savoir ou tu as trouver ce script, le site officiel quoi ?

Merci d'avance.


Lo-chan

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#8 06/10/07 11:35:17

Malcolm
4d0p73z 14 1337 A7717ud3 !
Equipe Modérateurs
Lieu: unreal://Index.ut2:31337
OS: Linux Debian
Date d'inscription: 03/03/04
Messages: 3432
Site web

Re: [script php] Quota de téléchargement ?

pour un script en licence GPL, il pourrait au moins indiquer l'auteur et/ou le site ...


La nature est bien faite : quand mon nez est bouché, ce sont mes pieds qui sentent ...
http://zeffklop.free.fr/singe.gif FYI RTFM ASAP => Tux : La Légende <=
http://www.php-astux.info/images/newslettux2-468x60.pngNewsletTux

Grand défenseur de la Langue Française tongue

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#9 06/10/07 11:44:35

Lo-chan
Nouveau
Lieu: Villeneuve d'Ascq
OS: Windows 2k/NT/XP
Date d'inscription: 06/10/07
Messages: 4
Envoyer un MP

  Email  Site web

Re: [script php] Quota de téléchargement ?

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  smile  MDR on est quand même fier nous les programmeurs  tongue

Dernière modification par Lo-chan (06/10/07 11:53:05)


Lo-chan

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#10 06/10/07 14:38:45

overseer
pplgf
Lieu: Moselle/Vosges
OS: Mac OS X
Date d'inscription: 18/06/05
Messages: 839
Envoyer un MP

  Email

Re: [script php] Quota de téléchargement ?

Un post datant de février 2006 ... Youhou !

Mais diiiis donc ! Je pensais que les programmeurs savaient se servir de google  redface

ar http://www.phpcs.com/codes/PROTEGER-DOS … 5290.aspx#


http://img360.imageshack.us/img360/3237/againstskybloggreen7ku.png

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#11 06/10/07 15:21:59

Lo-chan
Nouveau
Lieu: Villeneuve d'Ascq
OS: Windows 2k/NT/XP
Date d'inscription: 06/10/07
Messages: 4
Envoyer un MP

  Email  Site web

Re: [script php] Quota de téléchargement ?

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


Lo-chan

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#12 06/10/07 15:32:52

overseer
pplgf
Lieu: Moselle/Vosges
OS: Mac OS X
Date d'inscription: 18/06/05
Messages: 839
Envoyer un MP

  Email

Re: [script php] Quota de téléchargement ?

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  wink

Bonne continuation.


http://img360.imageshack.us/img360/3237/againstskybloggreen7ku.png

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#13 07/10/07 01:48:38

Lo-chan
Nouveau
Lieu: Villeneuve d'Ascq
OS: Windows 2k/NT/XP
Date d'inscription: 06/10/07
Messages: 4
Envoyer un MP

  Email  Site web

Re: [script php] Quota de téléchargement ?

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


Lo-chan

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation
Actuellement aucun autre membre et 1 invité sur ce topic
Membres : [S'enregistrer]

Pied de page du Forum

Pub hébergeur :


CtrlAltSuppr.com, forums officiels de JSAND partagés avec Geek&Hype

Powered by PunCAS (JSAND) based on PunBB
© Copyright 2002–2005 Rickard Andersson