Version: 1.00, by Hurricane
Developer Last Online: Sep 2022
Version: 3.0.0
Rating:
Released: 04-10-2004
Last Update: Never
Installs: 9
No support by the author.
Save Prior Email Version: v1.0.1 vB-version: 3.0.0 Developer: Glenn H. Shelton III Install difficulty: Easy File edits: 3 Template edits: 0
Description of the Hack:
This hack allows you to save the prior email address of a user when they change it. This is one of the largest missing features I have found in vBulletin.
The issue I fought with is a user signing up using a legit email, trash posting, then changing the email address to a non-legit email account. This locks
them out as they can not activate the account, however, it does not let you find them easily. This will allow you to have a "legit" contact method.
Bug Fixes 04-11-2004
===========
Changed the original code to stop the "emailold" from being overwritten if the user was in "Awaiting Email Confirmation" group.
Files Have been updated.
HACK INSTALLATION DETAILS: Files modified for this Hack:
profile.php
admin/user.php
New DB columns for this Hack:
user
Remember: If you use it, please click install!
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
Will this only save just the prior one or can it be set up to save ALL they change? Somewtimes they will do more than one if they are really trying to pull something.
OK, here is the fix: (I updated the installer, but here is all you need to change.)
In the original install file, it says:
Code:
Find: (About Line: 330)
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET $newpassword $newemail usergroupid = " . intval($bbuserinfo['usergroupid']) . " WHERE userid = $bbuserinfo[userid]");
Replace With: (Make sure your "Awaiting Email Confirmation" usergroup id is equal to 3)
//Start Save Prior Email v1.0 // Written By: Glenn H. Shelton III
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET $newpassword $newemail $oldemail usergroupid = " . intval($bbuserinfo['usergroupid']) . " WHERE userid = $bbuserinfo[userid]");
//End Save Prior Email v1.0 // Written By: Glenn H. Shelton III
But Now it reads:
Code:
Find: (About Line: 330)
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET $newpassword $newemail usergroupid = " . intval($bbuserinfo['usergroupid']) . " WHERE userid = $bbuserinfo[userid]");
Replace With: (Make sure your "Awaiting Email Confirmation" usergroup id is equal to 3)
//Start Save Prior Email v1.0 // Written By: Glenn H. Shelton III
if ($bbuserinfo['usergroupid'] != 3)
{
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET $newpassword $newemail $oldemail usergroupid = " . intval($bbuserinfo['usergroupid']) . " WHERE userid = $bbuserinfo[userid]");
} else {
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET $newpassword $newemail usergroupid = " . intval($bbuserinfo['usergroupid']) . " WHERE userid = $bbuserinfo[userid]");
}
//End Save Prior Email v1.0 // Written By: Glenn H. Shelton III
@Bob: At this point it only stores the last confirmed email address. If there is enough of a request to store all email addresses of a user I will look into it. But the way it is now, once they confirm their account to post you know it is a valid email. When they change it the first time the "known good" email address is moved to the "emailold" spot and the new email is stored. If that account is not ever confirmed then the "known good" email stored in "emailold" will not be overwritten. If it is confirmed, it will over write the old "known good" with the new "known good" when they change it again.
Might not be a bad idea to have it as a drop down then older email address could be added to it very easily in case you ever run into that. I ran into in on my vB2 board but haven't yet so far on vb3, but I'm sure it's coming.