webForumDet fria alternativet

Problem med UPDATE.

4 svar · 362 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 271 inlägg
#1

Har lite problem med en funktion där användare kan ge poäng till varandra.
Personen får ett meddelande, men poängen uppdateras inte.

Följande kod finns:

$bonus = htmlspecialchars($CURUSER['seedbonus'], 1); 

//=== trade for giving the gift of karma
$points = 0 + $_POST['bonusgift'];
$usernamegift = htmlentities(trim($_POST['username']));
$res = mysql_query("SELECT id, seedbonus, modcomment, username FROM users WHERE username=" . sqlesc($usernamegift));
$arr = mysql_fetch_assoc($res);
$useridgift = $arr['id'];
$userseedbonus = $arr['seedbonus'];
$bonuscomment_gift = $arr['modcomment'];
$usernamegift = $arr['username'];

$check_me = array(100,200,300,400,500,666);
if (!in_array($points, $check_me))
stderr("Error", "I smell a rat!");

if($bonus >= $points){
$points= htmlspecialchars($points,1);
$bonuscomment = gmdate("Y-m-d") . " - Gav bort " .$points. " poäng till $usernamegift .\n " .$bonuscomment;
$bonuscomment_gift = gmdate("Y-m-d") . " - Fick " .$points. " poäng av $CURUSER[username] .\n " .$bonuscomment_gift;
$seedbonus=$bonus-$points;
$giftbonus1=$userseedbonus+$points;
if ($userid==$useridgift){
header("Refresh: 0; url=$BASEURL/mybonus.php?gift_fail=1");
die;
}
if (!$useridgift){
header("Refresh: 0; url=$BASEURL/mybonus.php?gift_fail_user=1");
die;
}
mysql_query("SELECT modcomment,id FROM users WHERE id = '$useridgift'") or sqlerr(__FILE__, __LINE__);
//=== and to post to the person who gets the gift!
mysql_query("UPDATE users SET seedbonus = '$seedbonus', modcomment = '$bonuscomment' WHERE id = '$userid'") or sqlerr(__FILE__, __LINE__);
mysql_query("UPDATE users SET seedbonus = '$giftbonus1', modcomment = '$bonuscomment_gift' WHERE id = '$useridgift'");
//===send message
$subject = sqlesc("Någon gillar dig!");
$added = sqlesc(get_date_time());
$msg = sqlesc("Du har fått $points bonuspoäng av $CURUSER[username]");
mysql_query("INSERT INTO messages (sender, subject, receiver, msg, added) VALUES(0, $subject, $useridgift, $msg, $added)") or sqlerr(__FILE__, __LINE__);

header("Refresh: 0; url=$BASEURL/mybonus.php?gift_success=1&gift_amount_points=$points&usernamegift=$usernamegift&gift_id=$useridgift");
die;
}

Har jag missat något?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Om du rensar bort allt kladd och ser till att skriva ut de färdiga sql-frågorna (vi kan inte gissa vad dina php-variabler innehåller), så blir det lättare för någon att hjälpa dig.

GuldstrandMedlem sedan juli 20041 271 inlägg
#3

@nders skrev:

Om du rensar bort allt kladd och ser till att skriva ut de färdiga sql-frågorna (vi kan inte gissa vad dina php-variabler innehåller), så blir det lättare för någon att hjälpa dig.

Finns inte så mycket att "rensa bort", har dock uppdaterat inlägget.

überfuzzMedlem sedan apr. 2006409 inlägg
#4

Jo, rensa bort som @nders säger. Posta dina querys som strängar i stället.

oskarsMedlem sedan nov. 20051 317 inlägg
#5

...och printa ut SQL-frågan så vi ser hur din PHP-sida skickar den till databasen... :)

124 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)