www.wechselkammer.de/shop
Druckbare Version
Hi,
muss schaun: 01.01.1970 ist meist das erste
und wenn Du den Cron ausführst (manuell im Adminbereich) und das Datum immer noch so steht, ist entweder in der DB vms_crons was falsch eingetragen "Verweiß zum Cron" oder direkt im cron keine "setzte Zeit"
enthalten bzw. vor db_close(); keine Ausgabe angegeben oder weiter oben.
Abhilfe:
setzte in den Cron vor db_close();
das muss dann auch in der DB vms_crons so benannt werden "Aktivbonus stuendlich"PHP-Code:
db_query ("UPDATE ".$db_prefix."_crons SET laufzeit = '".time()."' WHERE bezeichnung = 'Aktivbonus stuendlich'");
und unter db_close();
That's all ;-)PHP-Code:
die('<font color="green"><b>Cron erfolgreich ausgeführt</b>');
Grüße darkness
hallo.
bei mir funktiontiert das immernoch nicht, obwohl ich nach anleitung vogegangen bin
kann mir jemand helfen?
Hi,
zur Info!
Hab noch etwas Geduld, Script wird zur Zeit überarbeitet.
Grüße darkness
Huhu :D
Bevort ich das einbaue ist das auch möglich das auf eine Seite einzubauen die auf eigen Währung basiert? :D
Also geht das dann auch? :D
Hoi..
Ich habe ein kleines Problem mit dem Aktivbonus.
Irgendwann im laufe des Tages wird nichts mehr gebucht,es hat sozusagen "Aussetzer".
Cron lief allerdings,Server hatte zu diesen Zeitpunkten auch keinerlei Probleme.
Hat jemand einen Rat woran das liegen könnte?
Das Problem habe ich beim kostenpflichtigen,wie auch beim kostenlosen Addon.
Gruss
Tschaet
Achtung Doppelpost. *gg*
Ich denke das Problem liegt bei den diversen Cronjobanbieter.
Bei Cronjob.de fällt der Aufruf regelmässig am frühen Abend aus...
Ein anderer Anbieter führte ihn gleich mehrmals doppelt aus,auch sehr nett. *g*
Kennt irgendwer noch Anbieter die vielleicht zuverlässiger sind?
Gruss
Tschaet
Hi,
ja das ist ein allseits bekanntes Problem. Verlassen kann man sich darauf net.
Dann wäre es besser man sucht sich einen Hoster der auch gleichzeitig cronjobs mit anbietet.
Da kann man zu 99% sicher sein das diese ausgeführt werden.
Cronjobs werden bei guten Hostern kostenlos mit angeboten. Da kannst Du dann selber bestimmen wann und wie oft dieser laufen soll.
Aber lasst die Finger von webhosterag
Grüße darkness
danke, klasse Teil ^^
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 :rolleyes:
die zahl neben auskommentierten gibt die reloadzeit an :ciappa: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();
?>
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()
));
?>
Guten Morgen
Weiß einer wie ich es hinbekomme das ich eine Liste hinzufüge wo z.b. die letzten 50 gewonnenen User drin stehen????
So wie ich das sehe, werden im Cron die alten Gewinner aus der Tabelle gelöscht, evtl. muss das auch so sein damit der Rest noch funktioniert :wink:
Am einfachsten wäre es vermutlich, die Gewinner aus der Buchungsliste auszulesen:
PHP-Code:
$sql = db_query('SELECT b.uid, b.buchungszeit, u.nickname
FROM vms_buchungen AS b LEFT JOIN vms_userdaten AS u
ON u.uid=b.uid
WHERE b.verwendungszweck="1h Aktivbonus"
ORDER BY b.buchungszeit DESC
LIMIT 50');
while($row = mysql_fetch_assoc($sql)){
print_a($row);
}
Danke erstmal
und den füg ich im menü zum code denk das müßte richtig sein
Habe mir jetzt das Addon aus dem Msxx-Shop gekauft. Leider bringt der Aufruf des Cronjobs nur folgendes:
In der Zeile 4 steht aber nichts :der:Code:Fatal error: Call to undefined function head() in /home/kd*****/public_html/*****.de/crons/aktivbonus.php on line 4
Der Cronjob sieht wie folgt aus:
Hoffe auf Hilfe.PHP-Code:
<?
@require_once ('../lib/functions.lib.php');
db_connect();
$aktivdaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_aktivbonus ORDER BY 'id' DESC LIMIT 1"));
// Variablen deklarieren
$admin = 138208; // <== Hier Admin ID Eintragen - braucht ja wohl keine Lose
$verguetung = 250000; // <== Hier die Vergütung eintragen die ausgezahlt werden soll !
$vergang = 55 * 60;
$vergang2 = 59 * 60;
$aktuell = time();
$zuletzt = $aktivdaten['zeit'] + $vergang;
$min = $aktuell - $vergang2;
$hoechsteid = $aktivdaten['id'];
// Checken ob genug Zeit vergangen ist ( 55 Minuten )
if ( $aktuell >= $zuletzt ) {
$bedingung1 = true;
} else {
$bedingung1 = false;
}
// Wenns passt einen User suchen der das ganze haben will ;)
if ( $bedingung1 ) {
$res = db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE lastka > '".$min."' AND uid != ".$admin." ORDER BY 'lastka' ASC");
$result = mysql_num_rows($res);
// Es ist mindestens einer da der den Jackpot abgreifen kann..
if ( $result > 0 ) {
$zufall = rand(1,$result);
$count = 1;
// den müssen wir natürlich erstmal suchen..
while ($ausgabe = mysql_fetch_array($res)) {
// Erwischt !
if ( $count == $zufall ) {
$buchungs_id = create_code(14);
db_query("INSERT INTO ".$db_prefix."_aktivbonus SET kid = '".$ausgabe['uid']."', zeit = '".$aktuell."'");
kontobuchung ('+',$verguetung,$ausgabe['uid']);
buchungsliste ($buchungs_id,$verguetung,"Aktivbonusgewinn",$ausgabe['uid']);
}
$count++;
}
// Nun schauen wer mal wieviele Einträge es gibt....
$res2 = db_query("SELECT * FROM ".$db_prefix."_aktivbonus ORDER BY `id` DESC");
$result2 = mysql_num_rows($res2);
$count2 = 1;
// Mehr als 10 also raus damit ! :)
if ($result2 > 10) {
while ($ausgabe2 = mysql_fetch_array($res2)) {
if ( $count2 > 10 ) {
db_query("DELETE FROM ".$db_prefix."_aktivbonus WHERE id = '".$ausgabe2['id']."'") or die(mysql_error());
}
$count2++;
}
}
}
}
// Da war wohl nicht genug Zeit dazwischen...
else {
echo("Der Cron wurde zu früh aufgerufen !");
}
// Zeit setzen
db_query ("UPDATE ".$db_prefix."_crons SET laufzeit = '".time()."' WHERE bezeichnung = 'Aktivbonus der letzten Stunde'");
?>
Nimm mal
@require_once ('../lib/functions.lib.php');
db_connect();
oben raus, ich denke mal das will der nicht haben, weil das Addon ist noch für vms1.1 geschrieben
Jetzt steht die Ausführzeit richtig dort. Allerdings steht immer noch "Es wurde noch kein Aktivbonus ausgezahlt!" dort.
Ist denn schon ein Aktivbonus gezahlt worden?
Ich bin der einzige Benutzer, meine ID habe ich zum Test noch nicht eingefügt. War die ganze Zeit online, habe heute 600 AP. Cronjob wurde ausgeführt.
In der Datenbank wurde kein Eintrag hinzugefügt.
Wie soll der Cron denn was einfügen wenn keine ID da ist????:frusty::frusty::frusty:
Nee, wenn die ID eingefügt ist, macht er es eben nicht, damit der Admin nichts bekommt :biggrin1: