ich hol mal diesen alten Thread wieder hervor :idea:
ich hab den code ein bishen erweitert :smilewinkgrin:
und zwar so das eine datenbank abfrage stattfindet wenn der user entweder keine globale variable hat oder die reloadzeit abläuft :smilewinkgrin:
hab das auch bei mir im rechten menü.. musste die meldung wegen der größe abändern .. und hab sie rot gemacht
PHP-Code:
<?
menuehead("Aktivbonus");
if (!isset($_SESSION['aktivb'])) {
$query = db_query("SELECT * FROM ".$db_prefix."_aktivbonus ORDER by last_active DESC LIMIT 1");
while ($row = mysql_fetch_array($query)) {
$userdaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_userdaten WHERE uid=".$row["uid"].""));
$_SESSION['savedaktiv']["nickname"] = $userdaten["nickname"];
$_SESSION['savedaktiv']["last_active"] = $row["last_active"];
}
$_SESSION['aktivb'] = time();
}
if ($_SESSION['aktivb']+360 <= time() ) { // hier die reloadzeit einstellen
$query = db_query("SELECT * FROM ".$db_prefix."_aktivbonus ORDER by last_active DESC LIMIT 1");
while ($row = mysql_fetch_array($query)) {
$userdaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_userdaten WHERE uid=".$row["uid"].""));
$_SESSION['savedaktiv']["nickname"] = $userdaten["nickname"];
$_SESSION['savedaktiv']["last_active"] = $row["last_active"];
}
$_SESSION['aktivb'] = time();
}
?>
<strong><font size="-3" color="#FF0000">Gewinner: <? echo $_SESSION['savedaktiv']["nickname"] ?> <? echo date("H:i:s",$_SESSION['savedaktiv']["last_active"]);?></font></strong>
<?
menuefoot();
?>
die zahl neben auskommentierten gibt die reloadzeit an :ciappa:
Nachtrag: hab den cron auch bishen geändert.. übernehme dafür keine gewährleistung.. ich weiss nicht was passiert wenn kein user online war..
PHP-Code:
<?
$date = time() - 3600;
$query = db_query(sprintf("SELECT uid FROM vms_kontodaten where last_active > '".$date."' ORDER BY rand() limit 1"));
while ($row = mysql_fetch_array($query)) {
$buchungs_id = create_code(14);
bonusbuchung ('+',10000,$row['uid']);
buchungsliste ($buchungs_id,10000,'1h Aktivbonus',$row['uid']);
db_query (sprintf("DELETE FROM ".$db_prefix."_aktivbonus WHERE last_active < %s"
, (time()-3600)
));
db_query(sprintf("insert into ".$db_prefix."_aktivbonus (uid,last_active) values ('%s','%s')"
, addslashes($row['uid'])
, (time()-120)
));
}
// Zeit setzen
db_query (sprintf("UPDATE vms_crons SET laufzeit = %s WHERE bezeichnung = 'Aktiv'"
, time()
));
?>