Als erstes brauchen wir ein Tabelle in der datenbank:
Code:
CREATE TABLE vms_bettelreferrercheck (
url_md5 varchar(32) NOT NULL default '',
url varchar(255) NOT NULL default '',
hits int(10) NOT NULL default '0',
an_aus tinyint(2) NOT NULL default '0',
PRIMARY KEY (url_md5),
KEY hits (hits),
KEY url (url)
) TYPE=MyISAM;
dann müssen wir die bettelseite abändern.( bitte vorher eine Kopie von der bettelseite machen falls man die alte Bettelseite wieder nutzen will).
zum abändern /content/betteln.php öffnen und den gesamten inhalt ersetzen mit folgenen inhalt:
PHP-Code:
<?
// SecVMS change begin
$_GET['ref'] = (int)$_GET['ref'];
$bettelreferrer = $_SERVER["HTTP_REFERER"];
$bettelreferrer_array = parse_url($bettelreferrer);
$bettelhost = $bettelreferrer_array["host"];
$update_query = db_query(sprintf("update vms_bettelreferrercheck set hits=hits+1 where url_md5='%s'"
, addslashes(md5($bettelhost))
));
if ( mysql_affected_rows($update_query) == 0 ) {
db_query(sprintf("INSERT INTO vms_bettelreferrercheck (url_md5,url,hits,an_aus) VALUES ('%s','%s','1','0')",
addslashes(md5($bettelhost)),
addslashes($bettelhost)
));
}
// SecVMS change end
$bettelrefdaten = mysql_fetch_array(db_query(sprintf("SELECT * FROM vms_bettelreferrercheck where url= '%s'"
, $bettelhost
)));
if ($bettelrefdaten['an_aus'] == '0') {
$reloadcheck = db_query("SELECT * FROM ".$db_prefix."_reloads WHERE ip = '".$ip."' and tan = 'bettelaufruf' and bis >= '".time()."'");
if (!mysql_num_rows($reloadcheck)) {
$minimum = $pageconfig['min_betteln'];
$maximum = $pageconfig['max_betteln'];
srand((double)microtime()*1000000);
$bettelsumme = rand($minimum*100,$maximum*100)/100;
// Reload setzen und Umsätze schreiben
$new_reload = time()+$pageconfig['reload_betteln'];
db_query("INSERT INTO ".$db_prefix."_reloads (ip,uid,tan,bis) VALUES ('".$ip."','".$_GET['ref']."','bettelaufruf','".$new_reload."')");
db_query("UPDATE ".$db_prefix."_kontodaten SET angebettelt =angebettelt + 1, bv = bv + ".$bettelsumme." WHERE uid = '".$_GET['ref']."'");
bonuslose ('+',$bettelsumme,$_GET['ref']);
$betteltext = '<b>Du hast für den User '.$_GET['ref'].' gerade '.$bettelsumme.' Bonuslose erbettelt!</b>';
} else {
$reloadcheck = mysql_fetch_array($reloadcheck);
$betteltext = '<b><font color="#FF0000">Du bist noch für '. round((($reloadcheck['bis'] - time())/60),0) .' Minuten fürs Betteln gesperrt</font></b>';
}
} else {
$betteltext = '<b><font color="#FF0000">Kein Referrer übergeben oder Eigenklicks oder Referrer gesperrt</font></b>';
}
?>
<?head("Betteln auf OOOOHPS-LOSE");?>
Verdiene auch Du mit!<br>
Melde Dich bei <?=$seitenname;?> an und bewirbe Deinen persönlichen Bettellink, so
verdienst Du deine <?=$waehrung;?> fast wie im Schlaf!<br>
<br>
<div align="center"><?=$betteltext;?></div>
<?foot();?>
<?head("Werbung dieser Seite");
$filename = 'lib/texte/bettelwerbung.txt';
$fp = fopen ($filename, "r");
$inhalt = fread ($fp, filesize ($filename));
fclose ($fp);
$inhalt = str_replace('\\', '', $inhalt);
echo nl2br($inhalt);
foot();?>
dann die betteln.php wieder hochladen. jetzt wüssten schon die referer geloggt werden.
Jetzt zum admin bereich dazu müssen wir eine seite basteln die bettelreferrercheck.php heist.
hier diesen inhalt reinsetzen:
PHP-Code:
<?
if($_POST["update"]){
db_query(sprintf("UPDATE vms_bettelreferrercheck SET an_aus = '%s' where url_md5='%s'"
, $_POST['an_aus']
, $_POST['url_md5']));
}
if($_POST["delete"]){
db_query(sprintf("DELETE FROM vms_bettelreferrercheck where url_md5='%s'"
, $_POST['url_md5']
));
echo $_POST['url_md5'];
db_query("OPTIMIZE TABLE vms_bettelreferrercheck");
}
$bettelrefdaten = mysql_fetch_array(db_query("SELECT * FROM vms_bettelreferrercheck"));
head("Urls Sperren"); ?>
<center><br>
<font size="3"><b>Url Sperren</font>
<table border="1">
<tr><form action="" method="POST">
<td><b>Url MD5:
</td>
<td align="center"><input type="text" name="url_md5" value="">
</td>
</tr>
<tr>
<td><b>an_aus:
</td>
<td align="center">
<select name="an_aus" size="1">
<option value="" SELECTED>wählen</option>
<option value="0">An</option>
<option value="1">Aus</option>
</select>
</td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" name="update" value="Eintragen">
</td>
</tr>
</form></table>
<br>
<? foot();?>
<? head("Urls löschen"); ?>
<center><br>
<font size="3"><b>Url Löschen</font>
<table border="1">
<tr><form action="" method="POST">
<td><b>URL MD5:
</td>
<td align="center"><input type="text" name="url_md5" value="">
</td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" name="delete" value="Löschen">
</td>
</tr>
</form></table>
<br>
<? foot();?>
<?head("Werbung die eingetragen ist");?>
<table align="center" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFC0" width='450'>
<tr bgcolor="#FFFFC0">
<td align="center"><b>URL MD5</b></td>
<td align="center"><b>URL</b></td>
<td align="center"><b>HITS</b></td>
<td align="center"><b>An/Aus</b></td>
</tr>
<?
$query = db_query("SELECT * FROM vms_bettelreferrercheck ORDER by hits DESC");
while ($row = mysql_fetch_array($query)) {
?>
<tr bgcolor="#FFFFC0">
<td align="center"><? echo $row["url_md5"];?></td>
<td align="center"><a href="http://<? echo $row["url"];?>/" target="_blank"><? echo $row["url"];?></a></td>
<td align="center"><? echo number_format($row["hits"],0,",",".");?></td>
<td align="center"><? echo $row["an_aus"];?></td>
</tr>
<?
}
?>
</table>
<? foot();?>
jetzt haben wir unsere bettelreferrercheck.php und laden die unter adminforce/content/ auf dem server.
jetzt setzen wir noch einen link im adminmenue:
Code:
» <a href="?content=/bettelreferrercheck">Bettelcheck</a>
dann sieht das so aus im adminbereich:
jetzt kann man urls sperren 0 ist an und 1 ist aus. schaltet man eine url aus wird der bettelaufruf nicht mehr bezahlt und der user bekommt folgende meldung.
Kein Referrer übergeben oder Eigenklicks oder Referrer gesperrt.
Ist die url nicht gesperrt (0) bekommt der user ganz normal die vergütung.
Alle refferurls sind anklickbar das man die seiten kontrollieren kann.
Ich garantiere nicht das es bei jedem funktioniert der einbau und die nutzung ist auf eigene gefahr. Das Tool wurde von mir geproggt und ist schon seit tagen im einsatz und funktioniert bei mir ohne Fehler.
Viel spass