v3arcade deleted user avatar fix(?)
After you delete a user, I have found that if you (or more importantly, a search spider) tries to access the stats link for that deleted user, you likely will get something like this:
Code:
Database error in vBulletin 3.0.7:
Invalid SQL:
SELECT user.avatarid, user.avatarrevision, avatarpath, NOT ISNULL(avatardata) AS hascustom, customavatar.dateline
FROM user AS user
LEFT JOIN avatar AS avatar ON avatar.avatarid = user.avatarid
LEFT JOIN customavatar AS customavatar ON customavatar.userid = user.userid
WHERE user.userid =
mysql error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
mysql error number: 1064
There does not seem to be a check built-in to see if a user is actually a valid user. I have
hopefully found a fix for this with the following:
Find:
PHP Code:
$activitycount = $DB_site->query("
SELECT gamesessions.*, games.title FROM " . TABLE_PREFIX . "gamesessions AS gamesessions
LEFT JOIN " . TABLE_PREFIX . "games AS games ON gamesessions.gamename = games.shortname
WHERE userid=$userid AND valid=1 AND $sessionclause GROUP BY sessionid ORDER BY finish DESC");
and above this add:
PHP Code:
if ($user['username']=="") {
$idname = $vbphrase['user'];
eval(print_standard_error('error_invalidid'));
}
I suspect that the scores for the deleted user might still be there after the user is deleted. If this is correct and vBulletin allows someone else to get this user ID, they might by default get all of the high scores for the games by the previous ID owner. Looking into that.
EDIT: It looks like vB does not recycle user IDs. This SHOULD work to eliminate the error.