PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : jede stunde einem aktiven user 10.000 lose zahlen.



hatty
13.01.2007, 23:47
folgende Datenbank tabelle anlegen:



CREATE TABLE aktivbonus (
uid int(7) NOT NULL default '0',
last_active int(11) NOT NULL default '0'
) TYPE=MyISAM;


dann folgenden cron erstellen.



<?
@require_once ('../lib/functions.lib.php');
db_connect();


$query = db_query(sprintf("SELECT uid FROM vms_werberdaten where umsatz > 0 ORDER BY rand() limit 1"));
while ($row = mysql_fetch_array($query)) {

$buchungs_id = create_code(14);
kontobuchung ('+',10000,$row['uid']);
buchungsliste ($buchungs_id,10000,'1h Aktivbonus',$row['uid']);
db_query (sprintf("DELETE FROM aktivbonus WHERE last_active < %s"
, (time()-3600)
));
db_query(sprintf("insert into 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()
));
db_close();
die('<font color="blue"><b>Dieser Cron ist erfolgreich gelaufen!</b></font>');
?>


bei mir heist der cron aktiv.knt.php und kommt in den ordner crons

und in der Datenbank in der tabelle vms_crons den cron eintragen.

diesen cron dann alle stunde laufen lassen.

jetzt bekommt alle stunde ein aktiver User 10.000 lose wenn man weniger oder mehr zahlen will muss man die 10000 im cron abändern.

Welcher user hat jetzt die 10.000 Lose gewonnen ???? das wollen wir den restlichen usern natürlich zeigen also müssen wir sowas auf unserer seite einbauen:

Jede Stunde 10.000 Lose für einen aktiven User. Gewinner: Lucynka1505 21:22:42

wo ihr das hinbaut ist eure sache hier der code:



<?
$query = db_query("SELECT * FROM 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"].""));
?>
<strong><font size="-3" color="#008000">Jede Stunde 10.000 Lose für einen aktiven User. Gewinner:&nbsp;<? echo $userdaten["nickname"] ?>&nbsp;&nbsp;<? echo date("H:i:s",$row["last_active"]);?></font></strong>
<?
}
?>


dann noch in der funktions.lib.php im ordner lib die funktion refumsatz in



function refumsatz ($buchungssumme,$fuer) {
global $db_prefix;
db_query ("UPDATE vms_werberdaten SET umsatz = umsatz + ".$buchungssumme.", aktivzeit='".time()."' WHERE uid='".$fuer."'");
}


ändern.

das wars und kostet nichts :)


Gruss hatty

Pitti
14.01.2007, 00:38
nettes teil, leider liest er mir nicht die gewinner aus:(

bart27
14.01.2007, 00:54
Hallo,

Danke fürs reinstellen auch das es kostenlos ist. :D
Habe bis jetzt getestet, funktioniert super.
Nur leider liest es die Gewinner nicht aus.
Die Seite wird durch den Befehl nicht mehr richtig angezeigt.

MfG
bart27

hatty
14.01.2007, 01:09
das kann an diesem teicode liegen:



@require_once ('../lib/functions.lib.php');


bei manchen server muss da folgendes rein:



@require_once ($_SERVER['DOCUMENT_ROOT'].'/lib/functions.lib.php');

hatty
14.01.2007, 01:19
einen weiteres problem kann sein das in der Datenbank Tabelle aktivbonus mindesten ein datensatz sein muss dazu auf einfügen klicken dann bei uid und bei last_active 0 eintragen danach einmal den cron laufen lassen.

Bei mir läuft es ohne probleme mir fällt sonst keinen weiteren möglichen Fehler ein.

Gruss hatty

bart27
14.01.2007, 01:22
Wo soll man den Code nun einfügen? 8o

Glaube nicht das es daran liegt, weil wenn ich bei



<?
$query = db_query("SELECT * FROM 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"].""));
?>


die " { " rausnehme zeigt es mir wenigsten den User an der die letzte Stunde gewonnen hat. Aber nicht die Zeit.

Sorry das ich mich hier einbissel doof anstelle habe davon aber kein Plan

hatty
14.01.2007, 01:26
mein fehler also nochmals zum anzeigen folgenden code einbauen hab da bei dem ersten was vergessen:



<?
$query = db_query("SELECT * FROM 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"].""));
?>
<strong><font size="-3" color="#008000">Jede Stunde 10.000 Lose für einen aktiven User. Gewinner:&nbsp;<? echo $userdaten["nickname"] ?>&nbsp;&nbsp;<? echo date("H:i:s",$row["last_active"]);?></font></strong>
<?
}
?>


sorry das ich etwas vergessen hatte.

dragon11
14.01.2007, 01:27
Original von bart27
Wo soll man den Code nun einfügen? 8o

Glaube nicht das es daran liegt, weil wenn ich bei



<?
$query = db_query("SELECT * FROM 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"].""));
?>


die " { " rausnehme zeigt es mir wenigsten den User an der die letzte Stunde gewonnen hat. Aber nicht die Zeit.

Sorry das ich mich hier einbissel doof anstelle habe davon aber kein Plan

sieht so aus, als ob die } fehlt, also so:

<?
$query = db_query("SELECT * FROM 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"].""));
}
?>

hatty
14.01.2007, 01:29
nicht ganz muss nach dem text kommen :) siehe beitrag oben von mir.

gruss hatty

bart27
14.01.2007, 01:46
Ah stimmt habe Dort etwas vergessen, werde es dann testen wenn meine Seite wieder erreichbar ist. ;(
Ist ja schlimm was in den letzten Tagen mit den Servern los ist :(

EDIT: Danke euch für die Hilfe jetzt geht es.

Racheengel
15.01.2007, 13:17
Der Aktivbonus an sich funktioniert prima bei mir... Danke Hatty! Aber was muss ich ändern, wenn ich anstatt der Lose BONUSLOSE auszahlen will??? Ich habe jetzt 'ne halbe Ewigkeit rumprobiert, aber irgendwie komme ich auf keinen Nenner.... Kann mir da jemand helfen oder zumindest einen Tip geben??? Danke!

dragon11
15.01.2007, 13:26
hast du eine function für Bonuslose?
wenn ja im cron die kontobuchung durch die kontobuchungbonuslose (oder wie sie bei Dir heißt) ersetzen.

wenn du keine fuction für die Kontobuchung Bonuslsoe hast, erstellst du sie.
dazu mußt du natürlich ein Feld in deiner tabelle vms_kontodaten haben, dass z. B. bonuslose heißt, indem du folgenden cod in die function.lib.php einfügst:



function kontobuchungbl ($art,$trans_menge,$fuer) {
global $db_prefix;
db_query("UPDATE ".$db_prefix."_kontodaten SET `bonuslose` = `bonuslose` ".$art." ".$trans_menge." WHERE uid=".$fuer."");
}

Racheengel
15.01.2007, 13:32
ich habe das bonusloseaddon installiert, also demzufolge auch eine funktion für bonuslose...

Aber: WAS GENAU muss ich im Cron ändern, damit Bonuslose ausgezahlt werden? Ich habe jetzt ewig rumgetestet, aber der Cron zahlt weiterhin fröhlich Lose aus...

dragon11
15.01.2007, 13:43
im cron ist folgender code für die kontobuchung

kontobuchung ('+',10000,$row['uid']);

diesen erstezt du mit Deiner function für die Bonuslose


@Hatty: vielen Dank für den Code, klappt super!

Racheengel
15.01.2007, 13:47
aber genau DA liegt ja mein problem - ich weiss nicht, was ich da ändern muss, heul...

wie sähe das dann aus?

funktion der bonuslose - ist das die hier:

db_query("UPDATE ".$db_prefix."_kontodaten SET `bonuslose` = `bonuslose` ".$art." ".$trans_menge." WHERE uid=".$fuer."");

NightX
15.01.2007, 14:03
edit

dragon11
15.01.2007, 14:04
ja, das ist das, was in der funktion ausgeführt wird, poste mal den ganzen Abschnitt, so iwe ich oben das gepostet habe aus der function.lib.php

Racheengel
15.01.2007, 14:14
boah, was war ich doch dämlich...!!!

ich habe es abgeändert in

bonuslose ('+',1000,$row['uid']);

und jetzt werden auch bonuslose gutgeschrieben... Danke für Deine Hilfe und die Nerven, die Du dabei gelassen hast -:)

dragon11
15.01.2007, 14:27
oah, was war ich doch dämlich...!!!

ich habe es abgeändert in

bonuslose ('+',1000,$row['uid']);

und jetzt werden auch bonuslose gutgeschrieben... Danke für Deine Hilfe und die Nerven, die Du dabei gelassen hast -smile

kein Problem, Hauptsache es klappt jetzt :D

sonobene
17.01.2007, 19:36
Auf meiner Seite klappt es wunderbar!

Danke vielmals!

Dany
20.01.2007, 21:08
Hab mir den schnipsel gerade angeschaut,
soweit ganz nett, aber wenn ich das richtig gesehen habe, wählt der Schnipsel ja nur Refs aus, da ich aber auf meiner Seite sehr viele aktive User ohne Werber habe, währe das ja recht unfair. von daher währe es doch besser wenn man die daten aus der vms_kontodaten last_aktiv nehmen würde. Und dann halt die User die in den letzten 24 stunden online waren ... nur weiß ich im moment noch nicht wie der code aussehen müßte.

Gruß Dany

NightX
21.01.2007, 00:07
edit

hatty
25.01.2007, 14:40
Original von Dany
Hab mir den schnipsel gerade angeschaut,
soweit ganz nett, aber wenn ich das richtig gesehen habe, wählt der Schnipsel ja nur Refs aus, da ich aber auf meiner Seite sehr viele aktive User ohne Werber habe, währe das ja recht unfair. von daher währe es doch besser wenn man die daten aus der vms_kontodaten last_aktiv nehmen würde. Und dann halt die User die in den letzten 24 stunden online waren ... nur weiß ich im moment noch nicht wie der code aussehen müßte.

Gruß Dany

wenn du dir funktion refumsatz in der funktionslib änderst wie beschrieben wählt er alle user die aktiv waren und nicht nur refs wie du behauptest.



function refumsatz ($buchungssumme,$fuer) {
global $db_prefix;
db_query ("UPDATE vms_werberdaten SET umsatz = umsatz + ".$buchungssumme.", aktivzeit='".time()."' WHERE uid='".$fuer."'");
}



also wurden deine Einwände schon bedacht. den auch user die keinen werber haben, bei denen wird der umsatz nach der änderung gelogt und somit nehmen auch diese user an der verlosung teil.

Gruss hatty

ProxyUser92
14.03.2007, 16:10
Äh, das Addon hab ich für 2 Mio gekauft (kA in welchem Shop), das ist hier also nicht ganz legal schätz ich mal?!

Gremlin
14.03.2007, 17:01
Original von ProxyUser92
Äh, das Addon hab ich für 2 Mio gekauft (kA in welchem Shop), das ist hier also nicht ganz legal schätz ich mal?!

Vielleicht läuft es ja auch in dem Shop nicht ganz legal ab :)

Muecke
14.03.2007, 17:33
Original von Gremlin

Original von ProxyUser92
Äh, das Addon hab ich für 2 Mio gekauft (kA in welchem Shop), das ist hier also nicht ganz legal schätz ich mal?!

Vielleicht läuft es ja auch in dem Shop nicht ganz legal ab :)


will dazu auch mal was schreiben ~gg~

in meinem Shop gibt es einen AktivBonus den es aber schon vor diesem hier gab...

aber meiner is noch anders und ich glaube kaum das hatty sich das abgeschaut hat denn hatty hat schon öfter ma solche Schnippzel gepostet...

also meines Erachtens is der Thread hier okay denn ich glaube ich verkaufe als einziger einen AktivBonus oder hab einfach noch keinen anderen gefunden...


LG Muecke : >

Gremlin
14.03.2007, 17:44
Na wenn das dein Shop ist, dann läuft das schon mit Rechten Dingen zu :D Sorry ;)

winni1
17.03.2007, 21:07
Sag könnte man nicht den Umsatzwert statt 0 auf 10000 oder ähnliches stellen? So das man sagen kann dies muß der User mindest ereicht haben um den Bonus überhaupt zu erhalten. Ich glaube das Teil zahlt hier auch schon bei 0 umsatz liege ich da richtig?

$query = db_query(sprintf("SELECT uid FROM vms_werberdaten where umsatz > 0 ORDER BY rand() limit 1"));

hatty
05.04.2007, 00:13
Original von winni1
Sag könnte man nicht den Umsatzwert statt 0 auf 10000 oder ähnliches stellen? So das man sagen kann dies muß der User mindest ereicht haben um den Bonus überhaupt zu erhalten. Ich glaube das Teil zahlt hier auch schon bei 0 umsatz liege ich da richtig?

$query = db_query(sprintf("SELECT uid FROM vms_werberdaten where umsatz > 0 ORDER BY rand() limit 1"));


bei 0 Umsatz zahlt er nicht weil da steht > 0 das heist grösser null aber er zahlt ab 1 los umsatz...

ja kann man ich habe bei mir den wert auf 15000 gesetzt den es soll ja auch nur der einen Bonus bekommen der spielt oder banner klickt.


hierzu einfach umsatz > 0 abändern in umsatz >= 15000

$query = db_query(sprintf("SELECT uid FROM vms_werberdaten where umsatz >= 50000 ORDER BY rand() limit 1"));

KiLLzOnE
05.04.2007, 00:56
Wirds dem Schnipsel auch für VMS2 geben? Hätte da Interesse dran ^^

KeePon
18.05.2007, 15:58
suche auch den schnippsel fürs vms2

tuker1965
19.05.2007, 06:57
edit

habs hinbekommen

Dk nochmal für den Geilen Code


gruss
tuker1965

tuker1965
20.05.2007, 08:43
Moin@all,
kann es sein das da ein bug drin ist?

Mal an alle progger

weil folgendes.:

teste seit 24 std. darin habe ich 5 fehlbuchungen rückgängig gemacht.

in der db wird ab und zu im aktivbonus ein user obwohl nicht mehr aktiv gezock wurde zurückgehalten.
der erhält die nächsten std immer einen bonus.

gruss
tuker1965

hatty
20.05.2007, 22:10
da wird jede stunde einer gezogen der heute aktiv war und einen umsatz gemacht hat, egal ob er jetzt noch aktiv ist oder nicht. Also ist das vollkommen normal das auch user gezogen werden die jetzt gerade nicht online oder aktiv sind. das ist keine Fehlbuchung. Auch kann ein User am tag mehrmals gezogen werden.

Kein Bug keine fehlbuchung.

gruss hatty

tuker1965
21.05.2007, 07:58
Besten dank für info hatty,ist trotzdem geiler code,

hier mal ein anstoss für die anderen progger.

Besteht die möglichkeit dieses abzuändern,das obwohl letzte std nicht aktiv der user gezogen wird?

Weil 1 mal den Bonus für Aktivität zu bekommen ist ja ok,auch wenn er mehrere male aktiv war und dann mehrere male gezogen wird ist auch ok ,aber wenn er der letzte aktive war immer gezogen werden ,das ist nicht prikelnd.


Sorry Hatty aber nicht jeder webbi hat eine grosse Spiellaune auf seinem Projekt und da kann das teuer werden auf dauer.

Hoffe du verstehst mich.

gruss
tuker1965

tuker1965
21.05.2007, 10:35
Hab da ne idee,
wie müsste der code aussehen ,wenn z.b im aktivbonus eine neue Zeile reinkäme wo er den aktivwert festhält der letzenten std,
und im Cron ein code wo er
a)nach der ausführung resettet
b)bei der neuen ausführung checkt ob ,der wert in der tabelle sich gegenüber neuem wert erhöht hat für neue teilnahme in der std.



Hoffe hab mich da verständlich ausgedrückt,das würde das addon noch irre aufwerten.


gruss
tuker1965

darkness_design
14.09.2007, 00:13
Hi,

habe es mal Testweise eingebaut, läuft auch soweit.... aber..

im cron

<?
@require_once ('../lib/functions.lib.php');
db_connect();


$query = db_query(sprintf("SELECT uid FROM vms_werberdaten where umsatz > 25000 ORDER BY rand() limit 1"));
while ($row = mysql_fetch_array($query)) {

$buchungs_id = create_code(14);
kontobuchung ('+',10000,$row['uid']);
buchungsliste ($buchungs_id,10000,'1h Aktivbonus',$row['uid']);
db_query (sprintf("DELETE FROM aktivbonus WHERE last_active < %s"
, (time()-3600)
));
db_query(sprintf("insert into 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()
));
db_close();
die('<font color="blue"><b>Dieser Cron ist erfolgreich gelaufen!</b></font>');
?>

nun habe ich die "Null" in die >25000 geändert.

Das ist auch soweit ok, doch der User der diesen Wert erreicht hat, bekommt jetzt jede Std. (auch wenn er nicht aktiv ist den Bonus ausgezahlt.

Gibt es da eine Möglichkeit das zu unterbinden ?

Grüße darkness :D

Schmuse_Kater40
23.09.2007, 13:16
Warum kauft ihr euch nicht einfach das Addon für 2 Mio. Lose oder was es jetzt kostet. Da habt ihr keine Probleme mit und es läuft einwandfrei :D

darkness_design
23.09.2007, 13:38
LoL,

ja die habe ich sogar über, wo hast es denn gefunden ?

Grüße darkness :D

Ps: Hat sich erledigt, habs gefunden und gekauft ....

enno_ac
25.09.2007, 01:48
Wo kann man das kaufen?
Link wäre von vorteil.
Thx

Warum kauft ihr euch nicht einfach das Addon für 2 Mio. Lose oder was es jetzt kostet. Da habt ihr keine Probleme mit und es läuft einwandfrei :D

Muecke
25.09.2007, 01:53
Wo kann man das kaufen?
Link wäre von vorteil.
Thx

www.wechselkammer.de/shop

enno_ac
25.09.2007, 09:59
Wo soll das da sein bzw wie nennt es sich?
Ich finde da nichts für das VMS 1
MfG

www.wechselkammer.de/shop

darkness_design
25.09.2007, 16:56
Wo kann man das kaufen?
Link wäre von vorteil.
Thx

Schau mal bei swinxx im shop nach da gibts das für 3.000.000 Lose

Läuft

Grüße darkness

Muecke
25.09.2007, 18:03
Wo soll das da sein bzw wie nennt es sich?
Ich finde da nichts für das VMS 1
MfG



doch doch VMS 1 Sachen hab ich im Shop aber hab auch grad gesehen das ich vergessen habe den Aktivbonus in den Shop zu stellen

LG Muecke : >

enno_ac
25.09.2007, 21:43
Bei mir funktoniert es nicht,cron läuft scheinbar nicht richtig,es kommt nach ausführung keine meldung und es wird kein User angezeigt.
woran kann dies liegen?


doch doch VMS 1 Sachen hab ich im Shop aber hab auch grad gesehen das ich vergessen habe den Aktivbonus in den Shop zu stellen

LG Muecke : >

darkness_design
26.09.2007, 03:12
Bei mir funktoniert es nicht,cron läuft scheinbar nicht richtig,es kommt nach ausführung keine meldung und es wird kein User angezeigt.
woran kann dies liegen?

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();


db_query ("UPDATE ".$db_prefix."_crons SET laufzeit = '".time()."' WHERE bezeichnung = 'Aktivbonus stuendlich'");

das muss dann auch in der DB vms_crons so benannt werden "Aktivbonus stuendlich"

und unter db_close();

die('<font color="green"><b>Cron erfolgreich ausgeführt</b>');

That's all ;-)

Grüße darkness

enno_ac
26.09.2007, 09:42
Jetzt funktoniert es.
Danke :-)
MfG

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();


db_query ("UPDATE ".$db_prefix."_crons SET laufzeit = '".time()."' WHERE bezeichnung = 'Aktivbonus stuendlich'");

das muss dann auch in der DB vms_crons so benannt werden "Aktivbonus stuendlich"

und unter db_close();

die('<font color="green"><b>Cron erfolgreich ausgeführt</b>');

That's all ;-)

Grüße darkness

Girl1986
13.10.2007, 11:54
hallo.
bei mir funktiontiert das immernoch nicht, obwohl ich nach anleitung vogegangen bin

kann mir jemand helfen?

darkness_design
26.10.2007, 20:54
Hi,

zur Info!
Hab noch etwas Geduld, Script wird zur Zeit überarbeitet.

Grüße darkness

Rapper
28.10.2007, 13:06
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

Tschaet
14.01.2008, 22:25
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

Tschaet
16.01.2008, 22:57
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

darkness_design
20.01.2008, 04:41
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

starke
23.01.2008, 17:52
danke, klasse Teil ^^

FLash
04.03.2008, 04:50
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:



<?
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:&nbsp;<? echo $_SESSION['savedaktiv']["nickname"] ?>&nbsp;&nbsp;<? 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..


<?
$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()
));

?>

DJschatz27
21.04.2011, 01:28
Guten Morgen

Weiß einer wie ich es hinbekomme das ich eine Liste hinzufüge wo z.b. die letzten 50 gewonnenen User drin stehen????

jpwfour
21.04.2011, 12:27
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:



$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);
}

DJschatz27
21.04.2011, 14:38
Danke erstmal

und den füg ich im menü zum code denk das müßte richtig sein

RichardR
13.11.2011, 13:11
Habe mir jetzt das Addon aus dem Msxx-Shop gekauft. Leider bringt der Aufruf des Cronjobs nur folgendes:


Fatal error: Call to undefined function head() in /home/kd*****/public_html/*****.de/crons/aktivbonus.php on line 4In der Zeile 4 steht aber nichts :der:
Der Cronjob sieht wie folgt aus:


<?
@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'");

?>


Hoffe auf Hilfe.

Jenny
13.11.2011, 17:25
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

RichardR
13.11.2011, 18:05
Jetzt steht die Ausführzeit richtig dort. Allerdings steht immer noch "Es wurde noch kein Aktivbonus ausgezahlt!" dort.

Jenny
13.11.2011, 18:10
Ist denn schon ein Aktivbonus gezahlt worden?

RichardR
13.11.2011, 18:19
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.

Jenny
13.11.2011, 18:23
Wie soll der Cron denn was einfügen wenn keine ID da ist????:frusty::frusty::frusty:

RichardR
13.11.2011, 18:41
Nee, wenn die ID eingefügt ist, macht er es eben nicht, damit der Admin nichts bekommt :biggrin1: