PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Habe immer wieder UID 0 in Ralleys etc.



loseclub
16.08.2007, 15:47
Hallo,

wollte einfach mal wissen woher diese UID 0 kommt, den wie ihr ja alle wisst gibt es keine Klamm ID mit der nummer 0, so dass man dieses Problem beheben kann :-(

Für Ergreifung das Problems sodass keine UID'S mehr erzeugt werden, gibts eine Lose Belohnung ;-)

Gruß Jens

VMS1
16.08.2007, 16:22
Hallo,

das Problem gibt´s auf vielen Seiten. Allerding´s hab ich das mit der UID 0 bis jetzt nur bei der Aktivralley, Mailralley und Bettelralley feststellen können. Dort wird die UID mit an die Ralleyfunktion übergeben. Scheinbar kommt das manchmal nicht richtig an.

Hier mal die Original-Funktion der Aktivralley aus der functions.lib.php:


function aktivralley ($buchungssumme,$fuer) {
global $db_prefix;
// Wenn Aktivralley läuft
$ralleydaten_aktiv = mysql_fetch_array(db_query("SELECT `start`,`ende` FROM ".$db_prefix."_ralleydaten WHERE ralley = 'aktivralley' LIMIT 1"));
if ($ralleydaten_aktiv['start'] <= time() && $ralleydaten_aktiv['ende'] >= time()) {
$aktiveintragen = db_query("SELECT * FROM ".$db_prefix."_aktivralley WHERE uid = '".$fuer."'");
if (!mysql_num_rows($aktiveintragen)) {
db_query ("INSERT INTO ".$db_prefix."_aktivralley (uid,punkte) VALUES ('".$fuer."','".$buchungssumme."')");
} else {
db_query ("UPDATE ".$db_prefix."_aktivralley SET punkte = punkte + ".$buchungssumme." WHERE uid='".$fuer."'");
}
}
}

Wenn man diese Zeile


if ($ralleydaten_aktiv['start'] <= time() && $ralleydaten_aktiv['ende'] >= time())

folgendermassen ändert:


if ($ralleydaten_aktiv['start'] <= time() && $ralleydaten_aktiv['ende'] >= time() && $fuer > 0)

sollte das Problem eigentlich gelöst sein. Dann wird der Rest der Funktion (Klickeintragen usw.) nur noch ausgeführt, wenn die Aktivralley läuft UND die übergebene UID grösser als 0 ist.

Gruß
Marco

eRaaaa
21.08.2007, 12:57
//EDIT

hat sich erledigt, thx !

plopp
27.08.2007, 00:26
uid=0 kommt eigentlich nur rein, wenn die Userid nicht übergeben wurde. Meistens abgelaufene Session oder bei Paidmails eben auch, die Userid aus der Session-variable ausgelesen wird und nicht aus GET.

Wenn du das nicht hinbekommst, melde dich mal ;)