hiscore テーブルに問題があります。一部のプレーヤーは、可能な限り多くのポイントを非常に速く獲得しています。以下に2つのコードを投稿します。
最初のものは私が現在使用しているもので、問題を引き起こしています:
$name = mysql_real_escape_string($_POST['name']);
$set = mysql_real_escape_string($_POST['set']);
if ($set == 1 && isset($_POST['score']))
{
$score = mysql_real_escape_string($_POST['score']);
$query = mysql_query("UPDATE users SET totalScore=totalScore + '$score' WHERE username='$name'");
if ($query)
{
echo 'success';
}
else {
echo 'error';
}
}
以下のコードでスコアを int としてキャストしようとしましたが、更新結果が膨大な数 (4294967295) になり、totalScore として設定されます。totalScore は int(25) 型であり、attribute を unsigned に設定して、プレーヤーがマイナス側にならないようにしました。
助けてくださいありがとう
$name = mysql_real_escape_string($_POST['name']);
$set = (int)$_POST['set'];
if ($set == 1 && isset($_POST['score']))
{
$score = (int)$_POST['score'];
$query = mysql_query("UPDATE users SET totalScore=totalScore + $score WHERE username='$name'");
if ($query)
{
echo 'success';
}
else {
echo 'error';
}
}