Hardy
17.03.2008, 11:42
Um das Betteln noch ein wenig datenbank schonender zu machen habe ich die reloads der bettelaufrufe bei mir in eine extra tabelle geschrieben und auch speziell für das betteln die indexe gesetzt.
Wer das ganze verwenden möchte...
SQL Code ausführen:
CREATE TABLE IF NOT EXISTS `vms_reloads_betteln` (
`ip` varchar(15) NOT NULL default '',
`uid` int(7) NOT NULL default '0',
`tan` varchar(32) NOT NULL default '',
`bis` varchar(10) NOT NULL default '',
KEY `bis` (`ip`,`bis`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Folgende bettel.php verwenden um die reloads auch in die richtige tabelle zu schreiben.
<?
$_GET['ref'] = (int)$_GET['ref'];
if ($pageconfig['reload_betteln'] == 0){
$betteltext = '<b>Die Bettelfunktion ist auf dieser Seite deaktiviert';
}else{
if ($_SESSION['uid'] == $_GET['ref'] || $_GET['ref'] == $_COOKIE['uid']){
$betteltext = '<b><font color="#FF0000">Du kannst dich nicht selbst anbetteln!</font></b>';
}else{
$reloadcheck = db_query("SELECT bis FROM ".$db_prefix."_reloads_betteln WHERE ip = '".$ip."' and tan = 'bettelaufruf' and bis >= ".time()." LIMIT 1");
if (!mysql_num_rows($reloadcheck)) {
$minimum = $pageconfig['min_betteln'];
$maximum = $pageconfig['max_betteln'];
srand((double)microtime()*1000000);
$bettelsumme = rand($minimum*100,$maximum*100)/100;
$new_reload = time()+$pageconfig['reload_betteln'];
db_query("INSERT INTO ".$db_prefix."_reloads_betteln (ip,uid,tan,bis) VALUES ('".$ip."','".$_GET['ref']."','bettelaufruf','".$new_reload."')");
db_query("UPDATE ".$db_prefix."_kontodaten SET angebettelt =angebettelt + 1, bv = bv + ".$bettelsumme.", kontostand = kontostand + '".$bettelsumme."' WHERE uid = '".$_GET['ref']."'");
refumsatz ($bettelsumme,$_GET['ref']);
aktivralley ($bettelsumme,$_GET['ref']);
bilanz(0,$bettelsumme);
$betteltext = '<b>Du hast für den User '.$_GET['ref'].' gerade '.$bettelsumme.' '.$waehrung.' 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>';
}
}
}
?>
<?head("Betteln auf ".$seitenname);?>
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();?>
<?
$filename = 'lib/texte/bettelwerbung.txt';
$fp = fopen ($filename, "r");
$inhalt = fread ($fp, filesize ($filename));
fclose ($fp);
$inhalt = str_replace('\\', '', $inhalt);
if ($inhalt != ''){
head("Werbung dieser Seite");
echo nl2br($inhalt);
foot();
}
?>
Wer das ganze verwenden möchte...
SQL Code ausführen:
CREATE TABLE IF NOT EXISTS `vms_reloads_betteln` (
`ip` varchar(15) NOT NULL default '',
`uid` int(7) NOT NULL default '0',
`tan` varchar(32) NOT NULL default '',
`bis` varchar(10) NOT NULL default '',
KEY `bis` (`ip`,`bis`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Folgende bettel.php verwenden um die reloads auch in die richtige tabelle zu schreiben.
<?
$_GET['ref'] = (int)$_GET['ref'];
if ($pageconfig['reload_betteln'] == 0){
$betteltext = '<b>Die Bettelfunktion ist auf dieser Seite deaktiviert';
}else{
if ($_SESSION['uid'] == $_GET['ref'] || $_GET['ref'] == $_COOKIE['uid']){
$betteltext = '<b><font color="#FF0000">Du kannst dich nicht selbst anbetteln!</font></b>';
}else{
$reloadcheck = db_query("SELECT bis FROM ".$db_prefix."_reloads_betteln WHERE ip = '".$ip."' and tan = 'bettelaufruf' and bis >= ".time()." LIMIT 1");
if (!mysql_num_rows($reloadcheck)) {
$minimum = $pageconfig['min_betteln'];
$maximum = $pageconfig['max_betteln'];
srand((double)microtime()*1000000);
$bettelsumme = rand($minimum*100,$maximum*100)/100;
$new_reload = time()+$pageconfig['reload_betteln'];
db_query("INSERT INTO ".$db_prefix."_reloads_betteln (ip,uid,tan,bis) VALUES ('".$ip."','".$_GET['ref']."','bettelaufruf','".$new_reload."')");
db_query("UPDATE ".$db_prefix."_kontodaten SET angebettelt =angebettelt + 1, bv = bv + ".$bettelsumme.", kontostand = kontostand + '".$bettelsumme."' WHERE uid = '".$_GET['ref']."'");
refumsatz ($bettelsumme,$_GET['ref']);
aktivralley ($bettelsumme,$_GET['ref']);
bilanz(0,$bettelsumme);
$betteltext = '<b>Du hast für den User '.$_GET['ref'].' gerade '.$bettelsumme.' '.$waehrung.' 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>';
}
}
}
?>
<?head("Betteln auf ".$seitenname);?>
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();?>
<?
$filename = 'lib/texte/bettelwerbung.txt';
$fp = fopen ($filename, "r");
$inhalt = fread ($fp, filesize ($filename));
fclose ($fp);
$inhalt = str_replace('\\', '', $inhalt);
if ($inhalt != ''){
head("Werbung dieser Seite");
echo nl2br($inhalt);
foot();
}
?>