PDA

View Full Version : Login by username or email


Marco van Herwaarden
24 Sep 2005, 20:26
This code modification was made as part of a request in this thread: http://www.vbulletin.org/forum/showthread.php?t=95915&page=1&pp=15

All that it does is allow to use the email address instead of the username to be used to login (username also still works).

Since people where stating that it should be released, well here it goes.

1 File edit:
in file includes/functions_login.php, find:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------


and replace by:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------

This will allow logging in with either mail or username.

nexialys
24 Sep 2005, 21:14
good idea, anyway, this is only a if statement to add, so it's not complicated to enhance if needed (like register by email only...)

Marco van Herwaarden
24 Sep 2005, 21:24
email only would even be easier, just replace 1 word in the original file.

Lurk
24 Sep 2005, 21:31
Wow, this is awesome.. except I won't be using it, maybe later. I like the concept and idea, it can be like a passport system if you integrate it into many sites. ;) :p

Marco van Herwaarden
24 Sep 2005, 21:36
Just a pitty it has to be a code change.

deathemperor
25 Sep 2005, 16:07
how about extend this to allow userid logging ?

Marco van Herwaarden
25 Sep 2005, 17:58
How you mean? Log what about a userid?

This is a simple code mod that make it possible to login with email address, there is no logging involved in this, and there won't be also.

nexialys
25 Sep 2005, 18:08
i think he was referring to login via with our userid indead of email or username... this becomes a little useless here... who remembers their userid better than their username?!

Marco van Herwaarden
25 Sep 2005, 21:10
Lol, well logging in with userid could be done the same way, but it won't be easier to remember.

deathemperor
26 Sep 2005, 08:41
i think he was referring to login via with our userid indead of email or username... this becomes a little useless here... who remembers their userid better than their username?!

me and most of my member

ppl who have joined for a long period of time would remember it.

well whatever, just an idea

Marco van Herwaarden
26 Sep 2005, 09:02
just replace email with userid and you're done.

mikehawk
09 Nov 2005, 20:54
Register by email would be good as well...

dcpaq2xx
05 Jan 2006, 23:18
I was doing some playing around with this hack and something that I noticed was that if you have more than one user name assigned to the same email address it cannot tell which one to login as and it logs you in on the first one in the user id list.

Other than that it seems to work fine.

Thank you for taking the time to create this hack Marco, Im still undecided as of right now though If ill be using this hack or not.

Doug

Marco van Herwaarden
19 Jan 2006, 20:30
I was doing some playing around with this hack and something that I noticed was that if you have more than one user name assigned to the same email address it cannot tell which one to login as and it logs you in on the first one in the user id list.
Well that would make sense. I don't think this is the right hack if you allow multiple users (although they are probably all the same person) to share 1 mail address.

Tim Simms
12 May 2006, 19:37
Maybe instead of:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------



...you could do this:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------




I did it on ours, and at least it prevents a shared email address from logging into any of them. Of course, I don't have any feedback to the user, cuz I don't know how... :confused:

Marco van Herwaarden
13 May 2006, 11:01
That is a good suggestion and i might add it to a next (??) release.

Smiry Kin's
25 May 2006, 09:19
does this work on 3.5.4?

BaBa2002
28 May 2006, 09:14
email only would even be easier, just replace 1 word in the original file.
what do you mean with just replace 1 word?
for just email registration? and witch word?

xr8d76
04 Jun 2006, 09:56
where/how do you add on the login boxes, instead of it just showing:

username:
Password:

TO

Username/Email:
Password:

Pls and thx

Smiry Kin's
04 Jun 2006, 10:54
where/how do you add on the login boxes, instead of it just showing:

username:
Password:

TO

Username/Email:
Password:

Pls and thx
search parse "User Name"

maybe?

futuredood
21 Jun 2006, 21:19
how do you change this to ONLY e-mail, and does it work for 3.5.4?

futuredood
22 Jun 2006, 10:02
to note this works with 3.5.4

malmazan
29 Nov 2006, 10:53
These days (3.6.4) it is more like:
Loor for :

Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------



And replace by:



Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------



It's the same thing, though "infractiongroupids, " is added to the query list

OneEyeSleepy
03 Apr 2008, 18:13
Hi, is there anything similar that can be used for vbulletin v3.6.9?

Hasann
03 Apr 2008, 18:25
Heyy Marco does it work for 3.7.x ?

abendagar
05 Apr 2008, 11:56
Any downside to using

if ($vbulletin->userinfo = $vbulletin->db->query_first("SELECT userid, usergroupid, membergroupids, infractiongroupids, username, password, salt FROM " . TABLE_PREFIX . "user WHERE username = '" . $vbulletin->db->escape_string(htmlspecialchars_uni($username)) . "' OR email = '" . $vbulletin->db->escape_string(htmlspecialchars_uni($username)) . "'"))

Isn't it simpler???

malmazan
10 May 2008, 21:38
Heyy Marco does it work for 3.7.x ?

It works

ChrisXX
14 Aug 2008, 19:03
So let me get this straight, if I just change this...



Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------



to this...



Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------



It will force users to login with their email address, instead of their username?

My goal is to make the username benign, and only for display purposes. The reason is I will be integrating VB in with some other apps that require email, and also use a username but only for display purposes.

Am I correct?

My second question then becomes, if two users have the same display name (for vB, username), will it cause problems? If so, is there a way to rectify that?

Thanks much in advance!

Arkham
04 Sep 2008, 00:25
Hi folks -- long time no see...

Just a quick question: Does this hack still work with the current vB release?

jerx
15 Oct 2008, 16:30
Works on vb 3.7.3 pl1. This is the code I used:



Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------



Any downside to using

if ($vbulletin->userinfo = $vbulletin->db->query_first("SELECT userid, usergroupid, membergroupids, infractiongroupids, username, password, salt FROM " . TABLE_PREFIX . "user WHERE username = '" . $vbulletin->db->escape_string(htmlspecialchars_uni($username)) . "' OR email = '" . $vbulletin->db->escape_string(htmlspecialchars_uni($username)) . "'"))

Isn't it simpler???

That works, too. Are there any differences between both versions, eg performance, security or stability wise?

TheFocusElf
18 Dec 2008, 21:47
I am currently using VB 3.74, I have not upgraded to PL1, but I will in a short moment. I don't know how many users have had any resolution to this, and I was nervous for a fraction of a second before I read through the mod and really took a moment to understand what it was doing:

I am a Director of Marketing and training for a modest NFP organization, our initiatives are funded by our member dues, plain and simple. We are planning to open up the site from a pretty non-interactive VB to a defined VB system with users actually entering the system, belonging to member classes, etc. For record keeping, we want our members to log in with their emails, this way, if something changed significantly, they might be inclined to modify their email address in their control panel so that we're all up to date.

So, if you are looking to EXLUSIVELY require your members to log in with their emails (don't forget, this changes the Admin CP log in too), open the prescribed file in the original post, and if the file is otherwise unmodified, scroll down to around line 140, this is where you will find :



Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------

Comment that out with // and substitute the following:

Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------

All of these instructions were contained in the original post, just probably a few of you users, like me, don't really know what all is going on in those lines of code!

Again, this works, and unless VB drastically overhauls the login system, I see this very simple process working for patches to come.

Cheers and Merry Christmas/Holidays and Happy New Year!

sharkee
29 May 2009, 23:31
Great, thanks. Installed.

asiaphoto
12 Jan 2010, 04:41
hi everyone,

now that VB4 is released (and i'm running our forum on VB4)

is anyone able to update this mod? i'm willing to pay for professional service.

see my request here:
http://www.vbulletin.org/forum/showthread.php?p=1953217#post1953217

phoelapyae
30 Nov 2010, 19:26
Can i get for version 4?

malmazan
14 Dec 2010, 18:35
Vote on vB.com to have this feature made standard: http://tracker.vbulletin.com/browse/VBIV-9646

davidthornton
12 Sep 2011, 06:45
Does anyone have this working for v4.x? I'd like to be able to change a v4.x installation to only allow login via email address instead of username (and have the forum only permit one account per email address as well)

imedic
17 Oct 2011, 23:09
Works on vb 3.7.3 pl1. This is the code I used:



Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------





That works, too. Are there any differences between both versions, eg performance, security or stability wise?


I can confirm that ONLY the above code works for 3.8.5 too :)

I add that you also need to change Username to Name/email. Look in language for: <strong>$vbphrase[username]</strong>
Then Look for template register and search in it for: <strong>$vbphrase[username]</strong> and change it to <strong>$vbphrase[user_name]</strong>
This will keep in register template the phrase Username and in login box Name/Email.
If you don't do this modification You will have allot of users registering with email address instead of Username.

Thanks

imedic
10 Dec 2011, 15:15
There is a small bug ( a space between - and > ) and gives an error if you upgrade to 3.8.7 PL2 so here is the working code I use:



Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------

HMBeaty
10 Dec 2011, 17:54
I have not tested this, but in vBulletin 4, try this:

In the file includes/functions_login.php, find:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------

And replace with:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------

malmazan
14 Dec 2011, 21:53
I have not tested this, but in vBulletin 4, try this:

In the file includes/functions_login.php, find:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------

And replace with:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------



Did you change anything with respect to the latest v3 versions? I'm getting this error on v4.1.8:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------

HMBeaty
14 Dec 2011, 22:02
Did you change anything with respect to the latest v3 versions? I'm getting this error on v4.1.8:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------


Only thing that was changed for vB 4 was this:


Code:
---------------
Code is only visible to licensed users, and only when logged into the forums.
---------------


was added to the query

malmazan
15 Dec 2011, 10:55
There is a small bug ( a space between - and > ) and gives an error if you upgrade to 3.8.7 PL2 so here is the working code I use:

I tried that on v4.1.8 and it seems to work fine. Thanks for sharing.