php download counter fehler
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
beitrag
control
count
counter
date
datei
eintrag
email
funktion
gel
inhalt
lesen
maker
mimen
plain
pragma
schleifen
uhr
zeile
-
also hab mir nen counter runtergeladen und eingebaut, aba jetzt ?ndert sich nicht die anzah? der downloads wenn ich eine datei runterlade.
hier den quelltext der seite:
<?PHP
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");
?>
<?
function auslesen($id)
{
$idvalue=FALSE;
$datei ="/counter/data/counter.txt";
if (file_exists($datei))
{
$file=file($datei);
$datei = fopen($datei, "r");
foreach ($file as $line)
{
$exp_line = explode("|", $line);
if ($exp_line[0] == $id)
{
$idvalue=TRUE;
$counter=$exp_line[1];
$date=$exp_line[2];
$time=$exp_line[3];
fclose($datei);
echo "$counter download(s) - Letzter Download: $date - $time Uhr";
}
}
if ($idvalue==FALSE)
{
echo "Noch keine Downloads";
}
}
else
{
echo "Noch keine Downloads";
}
}
?>
<html>
<head>
<title>Die offizielle Sneer Fire Website</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-image: url(images/unten_23.gif);
}
.Stil1 {
font-size: 36px;
font-weight: bold;
color: #FF0000;
}
.Stil2 {font-size: 18px; font-weight: bold; color: #000000; }
.Stil3 {color: #000000; font-size: 18px;}
.Stil4 {
font-size: 36px;
font-weight: bold;
}
.Stil5 {font-size: 24px}
-->
</style></head>
<h1 align="center" class="Stil1">Sneer Fire Download!!!</h1>
<p align="center" class="Stil2"> </p>
<p align="center" class="Stil3">Hier könnt ihr euch die <em><strong>BETA-Version</strong></em> von Sneer Fire runterladen!</p>
<p align="center" class="Stil3">Ihr braucht aber auch das RTP des RPG-Maker XP.</p>
<table width="607" border="1" align="center">
<tr>
<td width="262" height="63" class="Stil3"><div align="center" class="Stil4">Dateiname:</div></td>
<td width="152"><span class="Stil4">Downloads:</span></td>
<td width="127"> </td>
</tr>
<tr>
<td height="65"><span class="Stil3">RPG-Maker XP RTP(ca.19,16MB)</span></td>
<td><div align="center"><? auslesen("id=dl1");?></div></td>
<td><div align="center"><a href="http://sneerfire.lima-city.de/counter/count.php?id=dl1" class="Stil5">Download</a></div></td>
</tr>
<tr>
<td height="65"><span class="Stil3">Sneer Fire(ca.2,32MB)</span></td>
<td><div align="center"><? auslesen("id=dl2");?></div></td>
<td><div align="center"><a href="http://sneerfire.lima-city.de/counter/count.php?id=dl2" class="Stil5">Download</a></div></td>
</tr>
</table>
<p align="center" class="Stil3"> </p>
</body>
</html>
//edit: also die site is http://sneerfire.lima-city.de/sneerfire.php
Beitrag ge?ndert am 16.10.2005 21:40 von sneerfire -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
und wie sieht die count.php aus?
-
die count.php sieht so aus:
<?PHP
$email="cb_1992@web.de";//bitte hier deine email angeben
$domain = "http://www.sneer-fire.de.vu"; //optional deine domain angeben: muss nicht angegeben werden, taucht im "VON" der email auf!
$dauer = 10;//Dauer der Reloadsperre in Minuten
$dl_to_mail = 1; //Anzahl an DL?s, nach denen eine email geschickt werden soll
//und jetzt gehts auch schon los...
/////////////////////////////////////////////////////
// //
// tc-txt-dlcounter v2.3 //
// //
// ? 01.04.2004 //
// Torben Berger //
// webmaster@powerbulls.de //
// //
// Wenn du dieses Script benutzt //
// akzeptierst du folgendes: //
// //
// Dieses Script kann beliebig ge?ndert //
// werden, solange das copyright //
// intakt bleibt. //
// //
// Ein Verkauf dieses Scripts oder einer //
// modifizierten Art davon ist nicht erlaubt //
// //
// www.powerbulls.de //
/////////////////////////////////////////////////////
$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?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?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 schon die Datei gezogen, warte noch $dauer min</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?r diese Zeile existiert...
{
fputs($ipdatei, "$line"); //wird sie nochmal gleich reingeschrieben, ansonsten wird sie gel?scht!
}
}
}
if ($exists == FALSE) //hier wird der oben gesetzte Marker abgefragt, wenn er nicht auf TRUE ist, ist die IP neu und wird eingef?gt
{
$id = $_GET['id'];
fputs($ipdatei, "$ip|$id|$timestamp\n"); //neue Zeile f?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?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?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");
}
}
?> -
<?
function auslesen($id)
{
$idvalue=FALSE;
$datei ="/counter/data/counter.txt";
if (file_exists($datei))
{
$file=file($datei);
foreach ($file as $line)
{
$exp_line = explode("|", $line);
if ($exp_line[0] == $id)
{
$idvalue=TRUE;
$counter=$exp_line[1];
$date=$exp_line[2];
$time=$exp_line[3];
echo "$counter download(s) - Letzter Download: $date - $time Uhr";
}
}
if ($idvalue===FALSE)
{
echo "Noch keine Downloads";
}
}
else
{
echo "Schwerer Fehler Datei $datei existiert nicht";
}
}
?>
in sneerfire.php mal das script f?r die funktion auslesen durch diese ?ndern.
vllt. liegt es daran...
den anderen teil gucke ich mir morgen genauer an^^, hab jetzt keine gro?e lust den code auseinander zu fummeln^^ -
Kommt da garkeine fehlermeldung?
-
hab ma die funktion counten bissel umgeschrieben..
habe den teil mit der email g?nzlich weggelassen...
<? function counten($url) { $id = $_GET['id'];//eintrag in counter.txt wird vorbereitet $countfile="data/counter.txt"; $treffer=FALSE; $row = file($countfile); for($i=0; $i < count($row); $i++) { $col = explode("|", $row[$i]); if ($col[0] == $id) { $col[1] = $col[1] + 1; $col[2] = date("d.m.y", time()); $col[3] = date("H:i", time()); $row[$i] = implode("|", $col); $treffer = TRUE; } else { $row[$i] = implode("|", $col); } } $buffer = implode("\\n", $row); if($treffer !== FALSE) // es wurde was g?ndert? als in die datei schreiben { $fp = fopen($countfile, "w");// flock($fp, LOCK_EX); fputs($fp, $buffer); flock($fp, LOCK_UN); fclose($fp); } else { trigger_error("Die $id wurde in der Datei $countfile nicht gefunden!",E_USER_NOTICE); // d?rfte eigentlich nicht vorkommen, da die g?ltigkeit der id schon vorher abgefragt wurde } 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"); } ?>
Beitrag ge?ndert am 17.10.2005 13:57 von kirschbluete -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage