Erst bannerklick dann download!

piti66

Erfahrenes Mitglied
Hallo Leute,

meine Seite hat in 12 Tagen jetzt einen Traffic von 43 GB. Wird langsam ganz schön teuer!

Meine Anfrage! Gibt es einen Möglichkeit, dass man halt erst auf Banner klicken muss und dann Downloaden kann! Mit Javascript geht es ja, aber java will ich nicht.
Habe einen Downloadtracker, wäre ja schön, wenn man dass damit integrieren kann. Dass halt erst ein neues Fenster aufgeht, wo man dann auf den Banner klicken kann und dann startet der Download oder so!

Hat jemand einen Idee!

Downloadscript:

PHP:
<?PHP
$email="deine_email";//bitte hier deine email angeben
$domain = ""; //optional deine domain angeben: muss nicht angegeben werden, taucht im "VON" der email auf!
$dauer = 0;//Dauer der Reloadsperre in Minuten
$dl_to_mail = 1; //Anzahl an DL´s, nach denen eine email geschickt werden soll
 
$ipdatei = "data/ip.txt";
if (!file_exists($ipdatei))
 {
 $fd=fopen($ipdatei,"w+");
 fclose($fd);
}
$file = file("data/links.txt");
foreach($file as $line)
 {
     list($id,$url) = explode("|",$line);
     $down[$id] = $url;
 }
if(empty($_GET['id']))
 {
     echo "Insert ID!";
 }
else
 {
     if(empty($down[$_GET['id']]))
  {
         echo "This ID is not used";
      }
 else
  {
  $ip = $_SERVER['REMOTE_ADDR']; //IP abfragen
  if (($ip == "127.0.0.1") && ($_SERVER['HTTP_X_FORWARDED_FOR'] != ""))
       {
       $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
       }
  $url = $down[$_GET['id']];//downloadurl wird zugewiesen
  $exists = FALSE;//Marker wird gesetzt
  $timestamp = time();//unixtime f&uuml;r IP-Sperre wird ermittelt
  $file = file($ipdatei);
  $ipdatei = fopen($ipdatei,"w+");
  foreach ($file as $line)
   {
   $exp_line = explode("|", $line);
          if (($exp_line[0] == $ip) && ($exp_line[1] == $_GET['id'])) //wenn die Zeile der Schleife die IP beinhaltet
           {
           $exists = TRUE; //hier wird der marker auf true gesetzt, da die IP schon vorkommt
           if(($exp_line[2]+ 60*$dauer) < $timestamp) // IP ist nicht mehr gesperrt
            {
            fputs($ipdatei, "$exp_line[0]|$exp_line[1]|$timestamp\n"); //neue Daten f&uuml;r diese IP werden geschrieben...
            counten($url);//Funktion counten wird aufgerufen und die Downloadurl mitgeliefert
            }
           else //IP ist noch gesperrt
            {
            fputs($ipdatei, "$line");
            echo "<center><font color = \"red\"><b>Du hast gerade eben das file schon gezogen und bist vorerst f&uuml;r $dauer min gesperrt</b></font></center>";
            }
           }
          else //wenn die Zeile der Schleife die IP nicht beinhaltet...
           {
           if(($exp_line[2]+ 60*$dauer) > $timestamp) //und noch eine Sperre f&uuml;r diese Zeile existiert...
            {
            fputs($ipdatei, "$line"); //wird sie nochmal gleich reingeschrieben, ansonsten wird sie gel&ouml;scht!
            }
           }
          }
  if ($exists == FALSE) //hier wird der oben gesetzte Marker abgefragt, wenn er nicht auf TRUE ist, ist die IP neu und wird eingef&uuml;gt
          {
          $id = $_GET['id'];
          fputs($ipdatei, "$ip|$id|$timestamp\n"); //neue Zeile f&uuml;r neue IP wird geschrieben
          counten($url);//Funktion counten wird aufgerufen und die Downloadurl mitgeliefert
          }
  fclose($ipdatei);
  }
 }
function counten($url)
{
global $email, $dl_to_mail,$domain;
Header("Location: ".$url);
header("Expires: Mon, 10 Jan 1970 01:01:01 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
$id=$_GET['id'];//eintrag in counter.txt wird vorbereitet
$date = date("d.m.y");
$time = date("H:i");
$countfile="data/counter.txt";
$treffer=FALSE;
$file = file($countfile);
$fd=fopen($countfile,"w+");
foreach ($file as $line) {
 $exp_line = explode("|", $line);
        if ($exp_line[0] == $id) {
         $count=$exp_line[1];
         $count++;
         $new_line = "$id|$count|$date|$time\n";
               fputs($fd, $new_line);//update alter Eintrag
        }
        else {
         fputs($fd, $line);//update neuer Eintrag
        }
}
fclose($fd);
//folgendes nur, wenn du erst nach einigen DLs eine mail haben willst!
if ($dl_to_mail > 1)
 {
 $maildat = "data/countmail.txt";
 $maildattemp = fopen($maildat, "a+");
     fwrite($maildattemp, "$id|$date|$time\n");
     fclose($maildattemp);
     $inhalt = file($maildat,"r");
        $anzahl = count($inhalt);
        fclose($inhalt);
 if ($anzahl >= $dl_to_mail)
  {
  $maildat = "data/countmail.txt";//hier wird die Datei countmail.txt eingelesen, um die zur email hinzuzuf&uuml;gen
  $maildat=file($maildat);
  foreach ($maildat as $zeile)
     {
    $listlines .= $zeile;
     }
  $header.="From: \"Download-Counter\" $domain\n";
  $header.="MIME-Version: 1.0\n";
  $header.="Content-Type: text/plain;\n";
  $header.="X-Mailer: PHP/".phpversion();
  mail("$email", "Downloadcounter", "$date - $time Uhr\n\n Hinweis vom dlcounter-ROBOT: Es wurden seit der letzten Benachrichtigung weitere $dl_to_mail Downloads gezogen\n\nDiese gliedern sich zeitlich wie folgt:\n$listlines","$header");
  $maildat = "data/countmail.txt";
  $maildattemp=fopen($maildat,"w+");//hier wird die maildat wieder gel&ouml;scht!
  fputs($maildattemp,"");
  fclose($maildattemp);
  }
 }
//folgendes, wenn du bei jedem DL eine Nachricht haben willst!
else
{
$header.="From: \"Download-Counter\" $domain\n";
$header.="MIME-Version: 1.0\n";
$header.="Content-Type: text/plain;\n";
$header.="X-Mailer: PHP/".phpversion();
mail("$email", "Downloadcounter", "Neuer Download\n\nZeit: $date - $time Uhr\nder Download mit der ID $id wurde runtergeladen","$header");
}
}
?>

Danke schon mal

Mfg
 
Also, ich würde das problem folgt lösen.

Ich würde eine Session registrieren, wo beim Klick auf den Banner erst gefüllt wird.

Diese Session wird vor dem Senden der datei an den User überprüft und dann sofort gelöscht.

Kannst natürlich auch ne Sendegeschiwnigkeit einbauen, also wie schnell die Datei an den user gesendet wird.

PHP:
<?

$file = "XYZ.mp3"; // Datei die gesendet werden soll
$speed = 8.5; // Downloadgeschwindigkeit

if(file_exists($file) && is_file($file)) {

   header("Cache-control: private");
   header("Content-Type: application/octet-stream");
   header("Content-Length: ".filesize($file));
   header("Content-Disposition: filename=$file" . "%20");

   flush();

   $fd = fopen($file, "r");
   while(!feof($fd)) {
         echo fread($fd, round($speed*1024));
       flush();
       sleep(1);
   }
   fclose ($fd);

}

?>
 
Nicht böse sein, aber ich verstehe nur Bahnhof. Meine Gebiete liegen mehr im Webdesign und Html! Hab von PHP keine Ahnung!


Kannst es mal für einen laien erklären.

Wo muss es denn hin? In die Downloadtracker Datei?

Mfg
 
Heißt Downloadgeschwindikeit, dass sie nicht auf banner klicken müssen!

Möchte aber gern mit klick. um kosten zu decken, wenn du mich verstehst!

Mfg
 
Hier sei eins gesagt: Manch seltsamer Werbeanbieter sieht sowas als Nötigung zum Klick und verweist auf seine Nutzungsbedingungen.

Kläre vorher mit deinem Werbeanbieter, ob er dieses Verfahren gutheißt.

----
Kaum ein Anbieter wird dagegen sien, aber es gibt halt welche ;)
 
Also pit,

das Problem du denkst ja jetzt an nen normalen abnner mit ca. 6 cent pro klick, da gibbet leider nen hacken, was du brauchst sind sogenannte ForcedBanner (banner die geklickt werden müssen) und die werden ungefähr so bezahlt wie popups.

Schau dich ma hier um: http://www.forcedsponsor.de/

MFG Hawkster
 
Hallo,

hab dass schon geklärt, aber danke für die info!

Kann mir also keiner helfen? Habe feste Werbebanner!

Mfg

bitte ! :(
 
kA obs geht, oder erlaubt ist, aber häng ans Bannerscript noch ein Script das den download beim klick auf den Banner nebenbei startet.

Hier wiederum der Verweis: Fragen obs vom Anbieter akzeptiert wird. Die sind mit ihrem Code da nä(H)mlich sehr eigen.
 
Zurück