Quote:
Originally Posted by rjordan
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.
|
I applied the fix for this error but this is the error my arcade.php returns:
Code:
PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in
myISP\LPSForum\arcade.php on line 1664
I need this fix because this is the error that my members are getting:
This one:
Code:
Invalid SQL:
SELECT user.avatarid, user.avatarrevision, avatarpath, NOT ISNULL(avatardata) AS hascustom, customavatar.dateline
FROM vb3_user AS user
LEFT JOIN vb3_avatar AS avatar ON avatar.avatarid = user.avatarid
LEFT JOIN vb3_customavatar AS customavatar ON customavatar.userid = user.userid
WHERE user.userid =
and This one:
Code:
Invalid SQL:
SELECT gamesessions.*,user.username FROM vb3_gamesessions AS gamesessions
LEFT JOIN vb3_user AS user ON gamesessions.userid = user.userid
WHERE vb3_gamesessions.valid=1 AND gamesessions.sessiontype IN (1,2) ORDER BY gamesessions.finish DESC LIMIT 0,1
mysql error: Unknown table 'vb3_gamesessions' in where clause
mysql error number: 1109
I am fairly new to PHP and VB and am quite lost on how to fix these two errors.
Any help is greatly appreicated.
Robin